1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00

#3819 changelog docs

This commit is contained in:
Jeremy Ashkenas 2015-01-30 11:14:03 -05:00
parent 3fd004b852
commit a3096eab91
6 changed files with 40 additions and 36 deletions

View file

@ -1216,6 +1216,8 @@ Expressions
</li> </li>
<li> <li>
Changed strategy for the generation of internal compiler variable names. Changed strategy for the generation of internal compiler variable names.
Note that this means that <tt>@example</tt> function parameters are no longer
available as naked <tt>example</tt> variables within the function body.
</li> </li>
<li> <li>
Fixed REPL compatibility with latest versions of Node and Io.js. Fixed REPL compatibility with latest versions of Node and Io.js.

View file

@ -1,11 +1,11 @@
// Generated by CoffeeScript 1.9.0 // Generated by CoffeeScript 1.9.0
var Animal, Horse, Snake, sam, tom, var Animal, Horse, Snake, sam, tom,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, _extends = function(child, parent) { for (var key in parent) { if (_hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
__hasProp = {}.hasOwnProperty; _hasProp = {}.hasOwnProperty;
Animal = (function() { Animal = (function() {
function Animal(_at_name) { function Animal(_name) {
this.name = _at_name; this.name = _name;
} }
Animal.prototype.move = function(meters) { Animal.prototype.move = function(meters) {
@ -17,7 +17,7 @@ Animal = (function() {
})(); })();
Snake = (function(_super) { Snake = (function(_super) {
__extends(Snake, _super); _extends(Snake, _super);
function Snake() { function Snake() {
return Snake.__super__.constructor.apply(this, arguments); return Snake.__super__.constructor.apply(this, arguments);
@ -33,7 +33,7 @@ Snake = (function(_super) {
})(Animal); })(Animal);
Horse = (function(_super) { Horse = (function(_super) {
__extends(Horse, _super); _extends(Horse, _super);
function Horse() { function Horse() {
return Horse.__super__.constructor.apply(this, arguments); return Horse.__super__.constructor.apply(this, arguments);

View file

@ -1,6 +1,6 @@
// Generated by CoffeeScript 1.9.0 // Generated by CoffeeScript 1.9.0
var cubes, list, math, num, number, opposite, race, square, var cubes, list, math, num, number, opposite, race, square,
__slice = [].slice; _slice = [].slice;
number = 42; number = 42;
@ -26,7 +26,7 @@ math = {
race = function() { race = function() {
var runners, winner; var runners, winner;
winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : []; winner = arguments[0], runners = 2 <= arguments.length ? _slice.call(arguments, 1) : [];
return print(winner, runners); return print(winner, runners);
}; };

View file

@ -1,7 +1,7 @@
// Generated by CoffeeScript 1.9.0 // Generated by CoffeeScript 1.9.0
var close, contents, open, tag, _i, _ref, var close, contents, open, tag, _i, _ref,
__slice = [].slice; _slice = [].slice;
tag = "<impossible>"; tag = "<impossible>";
_ref = tag.split(""), open = _ref[0], contents = 3 <= _ref.length ? __slice.call(_ref, 1, _i = _ref.length - 1) : (_i = 1, []), close = _ref[_i++]; _ref = tag.split(""), open = _ref[0], contents = 3 <= _ref.length ? _slice.call(_ref, 1, _i = _ref.length - 1) : (_i = 1, []), close = _ref[_i++];

View file

@ -1,12 +1,12 @@
// Generated by CoffeeScript 1.9.0 // Generated by CoffeeScript 1.9.0
var awardMedals, contenders, gold, rest, silver, var awardMedals, contenders, gold, rest, silver,
__slice = [].slice; _slice = [].slice;
gold = silver = rest = "unknown"; gold = silver = rest = "unknown";
awardMedals = function() { awardMedals = function() {
var first, others, second; var first, others, second;
first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? __slice.call(arguments, 2) : []; first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? _slice.call(arguments, 2) : [];
gold = first; gold = first;
silver = second; silver = second;
return rest = others; return rest = others;

View file

@ -151,7 +151,7 @@ alert <span class="string">"I knew it!"</span> <span class="keyword">if</span> e
<span class="comment"># Array comprehensions:</span> <span class="comment"># Array comprehensions:</span>
cubes = (math.cube num <span class="keyword">for</span> num <span class="keyword">in</span> list) cubes = (math.cube num <span class="keyword">for</span> num <span class="keyword">in</span> list)
</code></pre><pre><code><span class="keyword">var</span> cubes, list, math, num, number, opposite, race, square, </code></pre><pre><code><span class="keyword">var</span> cubes, list, math, num, number, opposite, race, square,
__slice = [].slice; _slice = [].slice;
number = <span class="number">42</span>; number = <span class="number">42</span>;
@ -177,7 +177,7 @@ math = {
race = <span class="function"><span class="keyword">function</span><span class="params">()</span> {</span> race = <span class="function"><span class="keyword">function</span><span class="params">()</span> {</span>
<span class="keyword">var</span> runners, winner; <span class="keyword">var</span> runners, winner;
winner = <span class="built_in">arguments</span>[<span class="number">0</span>], runners = <span class="number">2</span> &lt;= <span class="built_in">arguments</span>.length ? __slice.call(<span class="built_in">arguments</span>, <span class="number">1</span>) : []; winner = <span class="built_in">arguments</span>[<span class="number">0</span>], runners = <span class="number">2</span> &lt;= <span class="built_in">arguments</span>.length ? _slice.call(<span class="built_in">arguments</span>, <span class="number">1</span>) : [];
<span class="keyword">return</span> print(winner, runners); <span class="keyword">return</span> print(winner, runners);
}; };
@ -195,7 +195,7 @@ cubes = (<span class="function"><span class="keyword">function</span><span class
<span class="keyword">return</span> _results; <span class="keyword">return</span> _results;
})(); })();
</code></pre><script>window.example1 = "# Assignment:\nnumber = 42\nopposite = true\n\n# Conditions:\nnumber = -42 if opposite\n\n# Functions:\nsquare = (x) -> x * x\n\n# Arrays:\nlist = [1, 2, 3, 4, 5]\n\n# Objects:\nmath =\n root: Math.sqrt\n square: square\n cube: (x) -> x * square x\n\n# Splats:\nrace = (winner, runners...) ->\n print winner, runners\n\n# Existence:\nalert \"I knew it!\" if elvis?\n\n# Array comprehensions:\ncubes = (math.cube num for num in list)\n"</script><div class='minibutton ok' onclick='javascript: var cubes, list, math, num, number, opposite, race, square, </code></pre><script>window.example1 = "# Assignment:\nnumber = 42\nopposite = true\n\n# Conditions:\nnumber = -42 if opposite\n\n# Functions:\nsquare = (x) -> x * x\n\n# Arrays:\nlist = [1, 2, 3, 4, 5]\n\n# Objects:\nmath =\n root: Math.sqrt\n square: square\n cube: (x) -> x * square x\n\n# Splats:\nrace = (winner, runners...) ->\n print winner, runners\n\n# Existence:\nalert \"I knew it!\" if elvis?\n\n# Array comprehensions:\ncubes = (math.cube num for num in list)\n"</script><div class='minibutton ok' onclick='javascript: var cubes, list, math, num, number, opposite, race, square,
__slice = [].slice; _slice = [].slice;
number = 42; number = 42;
@ -221,7 +221,7 @@ math = {
race = function() { race = function() {
var runners, winner; var runners, winner;
winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : []; winner = arguments[0], runners = 2 <= arguments.length ? _slice.call(arguments, 1) : [];
return print(winner, runners); return print(winner, runners);
}; };
@ -807,13 +807,13 @@ alert <span class="string">"The Field: "</span> + rest
</code></pre><pre><code><span class="keyword">var</span> awardMedals, contenders, gold, rest, silver, </code></pre><pre><code><span class="keyword">var</span> awardMedals, contenders, gold, rest, silver,
__slice = [].slice; _slice = [].slice;
gold = silver = rest = <span class="string">"unknown"</span>; gold = silver = rest = <span class="string">"unknown"</span>;
awardMedals = <span class="function"><span class="keyword">function</span><span class="params">()</span> {</span> awardMedals = <span class="function"><span class="keyword">function</span><span class="params">()</span> {</span>
<span class="keyword">var</span> first, others, second; <span class="keyword">var</span> first, others, second;
first = <span class="built_in">arguments</span>[<span class="number">0</span>], second = <span class="built_in">arguments</span>[<span class="number">1</span>], others = <span class="number">3</span> &lt;= <span class="built_in">arguments</span>.length ? __slice.call(<span class="built_in">arguments</span>, <span class="number">2</span>) : []; first = <span class="built_in">arguments</span>[<span class="number">0</span>], second = <span class="built_in">arguments</span>[<span class="number">1</span>], others = <span class="number">3</span> &lt;= <span class="built_in">arguments</span>.length ? _slice.call(<span class="built_in">arguments</span>, <span class="number">2</span>) : [];
gold = first; gold = first;
silver = second; silver = second;
<span class="keyword">return</span> rest = others; <span class="keyword">return</span> rest = others;
@ -829,13 +829,13 @@ alert(<span class="string">"Silver: "</span> + silver);
alert(<span class="string">"The Field: "</span> + rest); alert(<span class="string">"The Field: "</span> + rest);
</code></pre><script>window.example8 = "gold = silver = rest = \"unknown\"\n\nawardMedals = (first, second, others...) ->\n gold = first\n silver = second\n rest = others\n\ncontenders = [\n \"Michael Phelps\"\n \"Liu Xiang\"\n \"Yao Ming\"\n \"Allyson Felix\"\n \"Shawn Johnson\"\n \"Roman Sebrle\"\n \"Guo Jingjing\"\n \"Tyson Gay\"\n \"Asafa Powell\"\n \"Usain Bolt\"\n]\n\nawardMedals contenders...\n\nalert \"Gold: \" + gold\nalert \"Silver: \" + silver\nalert \"The Field: \" + rest\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example8);'>load</div><div class='minibutton ok' onclick='javascript: var awardMedals, contenders, gold, rest, silver, </code></pre><script>window.example8 = "gold = silver = rest = \"unknown\"\n\nawardMedals = (first, second, others...) ->\n gold = first\n silver = second\n rest = others\n\ncontenders = [\n \"Michael Phelps\"\n \"Liu Xiang\"\n \"Yao Ming\"\n \"Allyson Felix\"\n \"Shawn Johnson\"\n \"Roman Sebrle\"\n \"Guo Jingjing\"\n \"Tyson Gay\"\n \"Asafa Powell\"\n \"Usain Bolt\"\n]\n\nawardMedals contenders...\n\nalert \"Gold: \" + gold\nalert \"Silver: \" + silver\nalert \"The Field: \" + rest\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example8);'>load</div><div class='minibutton ok' onclick='javascript: var awardMedals, contenders, gold, rest, silver,
__slice = [].slice; _slice = [].slice;
gold = silver = rest = "unknown"; gold = silver = rest = "unknown";
awardMedals = function() { awardMedals = function() {
var first, others, second; var first, others, second;
first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? __slice.call(arguments, 2) : []; first = arguments[0], second = arguments[1], others = 3 <= arguments.length ? _slice.call(arguments, 2) : [];
gold = first; gold = first;
silver = second; silver = second;
return rest = others; return rest = others;
@ -1501,12 +1501,12 @@ tom.move()
</code></pre><pre><code><span class="keyword">var</span> Animal, Horse, Snake, sam, tom, </code></pre><pre><code><span class="keyword">var</span> Animal, Horse, Snake, sam, tom,
__extends = <span class="function"><span class="keyword">function</span><span class="params">(child, parent)</span> {</span> <span class="keyword">for</span> (<span class="keyword">var</span> key <span class="keyword">in</span> parent) { <span class="keyword">if</span> (__hasProp.call(parent, key)) child[key] = parent[key]; } <span class="function"><span class="keyword">function</span> <span class="title">ctor</span><span class="params">()</span> {</span> <span class="keyword">this</span>.constructor = child; } ctor.prototype = parent.prototype; child.prototype = <span class="keyword">new</span> ctor(); child.__super__ = parent.prototype; <span class="keyword">return</span> child; }, _extends = <span class="function"><span class="keyword">function</span><span class="params">(child, parent)</span> {</span> <span class="keyword">for</span> (<span class="keyword">var</span> key <span class="keyword">in</span> parent) { <span class="keyword">if</span> (_hasProp.call(parent, key)) child[key] = parent[key]; } <span class="function"><span class="keyword">function</span> <span class="title">ctor</span><span class="params">()</span> {</span> <span class="keyword">this</span>.constructor = child; } ctor.prototype = parent.prototype; child.prototype = <span class="keyword">new</span> ctor(); child.__super__ = parent.prototype; <span class="keyword">return</span> child; },
__hasProp = {}.hasOwnProperty; _hasProp = {}.hasOwnProperty;
Animal = (<span class="function"><span class="keyword">function</span><span class="params">()</span> {</span> Animal = (<span class="function"><span class="keyword">function</span><span class="params">()</span> {</span>
<span class="function"><span class="keyword">function</span> <span class="title">Animal</span><span class="params">(_at_name)</span> {</span> <span class="function"><span class="keyword">function</span> <span class="title">Animal</span><span class="params">(_name)</span> {</span>
<span class="keyword">this</span>.name = _at_name; <span class="keyword">this</span>.name = _name;
} }
Animal.prototype.move = <span class="function"><span class="keyword">function</span><span class="params">(meters)</span> {</span> Animal.prototype.move = <span class="function"><span class="keyword">function</span><span class="params">(meters)</span> {</span>
@ -1518,7 +1518,7 @@ Animal = (<span class="function"><span class="keyword">function</span><span clas
})(); })();
Snake = (<span class="function"><span class="keyword">function</span><span class="params">(_super)</span> {</span> Snake = (<span class="function"><span class="keyword">function</span><span class="params">(_super)</span> {</span>
__extends(Snake, _super); _extends(Snake, _super);
<span class="function"><span class="keyword">function</span> <span class="title">Snake</span><span class="params">()</span> {</span> <span class="function"><span class="keyword">function</span> <span class="title">Snake</span><span class="params">()</span> {</span>
<span class="keyword">return</span> Snake.__super__.constructor.apply(<span class="keyword">this</span>, <span class="built_in">arguments</span>); <span class="keyword">return</span> Snake.__super__.constructor.apply(<span class="keyword">this</span>, <span class="built_in">arguments</span>);
@ -1534,7 +1534,7 @@ Snake = (<span class="function"><span class="keyword">function</span><span class
})(Animal); })(Animal);
Horse = (<span class="function"><span class="keyword">function</span><span class="params">(_super)</span> {</span> Horse = (<span class="function"><span class="keyword">function</span><span class="params">(_super)</span> {</span>
__extends(Horse, _super); _extends(Horse, _super);
<span class="function"><span class="keyword">function</span> <span class="title">Horse</span><span class="params">()</span> {</span> <span class="function"><span class="keyword">function</span> <span class="title">Horse</span><span class="params">()</span> {</span>
<span class="keyword">return</span> Horse.__super__.constructor.apply(<span class="keyword">this</span>, <span class="built_in">arguments</span>); <span class="keyword">return</span> Horse.__super__.constructor.apply(<span class="keyword">this</span>, <span class="built_in">arguments</span>);
@ -1557,12 +1557,12 @@ sam.move();
tom.move(); tom.move();
</code></pre><script>window.example23 = "class Animal\n constructor: (@name) ->\n\n move: (meters) ->\n alert @name + \" moved #{meters}m.\"\n\nclass Snake extends Animal\n move: ->\n alert \"Slithering...\"\n super 5\n\nclass Horse extends Animal\n move: ->\n alert \"Galloping...\"\n super 45\n\nsam = new Snake \"Sammy the Python\"\ntom = new Horse \"Tommy the Palomino\"\n\nsam.move()\ntom.move()\n\n\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example23);'>load</div><div class='minibutton ok' onclick='javascript: var Animal, Horse, Snake, sam, tom, </code></pre><script>window.example23 = "class Animal\n constructor: (@name) ->\n\n move: (meters) ->\n alert @name + \" moved #{meters}m.\"\n\nclass Snake extends Animal\n move: ->\n alert \"Slithering...\"\n super 5\n\nclass Horse extends Animal\n move: ->\n alert \"Galloping...\"\n super 45\n\nsam = new Snake \"Sammy the Python\"\ntom = new Horse \"Tommy the Palomino\"\n\nsam.move()\ntom.move()\n\n\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example23);'>load</div><div class='minibutton ok' onclick='javascript: var Animal, Horse, Snake, sam, tom,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, _extends = function(child, parent) { for (var key in parent) { if (_hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
__hasProp = {}.hasOwnProperty; _hasProp = {}.hasOwnProperty;
Animal = (function() { Animal = (function() {
function Animal(_at_name) { function Animal(_name) {
this.name = _at_name; this.name = _name;
} }
Animal.prototype.move = function(meters) { Animal.prototype.move = function(meters) {
@ -1574,7 +1574,7 @@ Animal = (function() {
})(); })();
Snake = (function(_super) { Snake = (function(_super) {
__extends(Snake, _super); _extends(Snake, _super);
function Snake() { function Snake() {
return Snake.__super__.constructor.apply(this, arguments); return Snake.__super__.constructor.apply(this, arguments);
@ -1590,7 +1590,7 @@ Snake = (function(_super) {
})(Animal); })(Animal);
Horse = (function(_super) { Horse = (function(_super) {
__extends(Horse, _super); _extends(Horse, _super);
function Horse() { function Horse() {
return Horse.__super__.constructor.apply(this, arguments); return Horse.__super__.constructor.apply(this, arguments);
@ -1757,17 +1757,17 @@ _ref = futurists.poet, name = _ref.name, (_ref1 = _ref.address, street = _ref1[0
</code></pre><pre><code><span class="keyword">var</span> close, contents, open, tag, _i, _ref, </code></pre><pre><code><span class="keyword">var</span> close, contents, open, tag, _i, _ref,
__slice = [].slice; _slice = [].slice;
tag = <span class="string">"&lt;impossible&gt;"</span>; tag = <span class="string">"&lt;impossible&gt;"</span>;
_ref = tag.split(<span class="string">""</span>), open = _ref[<span class="number">0</span>], contents = <span class="number">3</span> &lt;= _ref.length ? __slice.call(_ref, <span class="number">1</span>, _i = _ref.length - <span class="number">1</span>) : (_i = <span class="number">1</span>, []), close = _ref[_i++]; _ref = tag.split(<span class="string">""</span>), open = _ref[<span class="number">0</span>], contents = <span class="number">3</span> &lt;= _ref.length ? _slice.call(_ref, <span class="number">1</span>, _i = _ref.length - <span class="number">1</span>) : (_i = <span class="number">1</span>, []), close = _ref[_i++];
</code></pre><script>window.example28 = "tag = \"<impossible>\"\n\n[open, contents..., close] = tag.split(\"\")\n\n\n\n\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example28);'>load</div><div class='minibutton ok' onclick='javascript: var close, contents, open, tag, _i, _ref, </code></pre><script>window.example28 = "tag = \"<impossible>\"\n\n[open, contents..., close] = tag.split(\"\")\n\n\n\n\n\n\n"</script><div class='minibutton load' onclick='javascript: loadConsole(example28);'>load</div><div class='minibutton ok' onclick='javascript: var close, contents, open, tag, _i, _ref,
__slice = [].slice; _slice = [].slice;
tag = "<impossible>"; tag = "<impossible>";
_ref = tag.split(""), open = _ref[0], contents = 3 <= _ref.length ? __slice.call(_ref, 1, _i = _ref.length - 1) : (_i = 1, []), close = _ref[_i++]; _ref = tag.split(""), open = _ref[0], contents = 3 <= _ref.length ? _slice.call(_ref, 1, _i = _ref.length - 1) : (_i = 1, []), close = _ref[_i++];
;alert(contents.join(""));'>run: contents.join("")</div><br class='clear' /></div> ;alert(contents.join(""));'>run: contents.join("")</div><br class='clear' /></div>
<p> <p>
Expansion can be used to retrieve elements from the end of an array without having to assign the rest of its values. It works in function parameter lists as well. Expansion can be used to retrieve elements from the end of an array without having to assign the rest of its values. It works in function parameter lists as well.
@ -2508,6 +2508,8 @@ task(<span class="string">'build:parser'</span>, <span class="string">'rebuild t
</li> </li>
<li> <li>
Changed strategy for the generation of internal compiler variable names. Changed strategy for the generation of internal compiler variable names.
Note that this means that <tt>@example</tt> function parameters are no longer
available as naked <tt>example</tt> variables within the function body.
</li> </li>
<li> <li>
Fixed REPL compatibility with latest versions of Node and Io.js. Fixed REPL compatibility with latest versions of Node and Io.js.