Release 2.3.2 (#5110)

* Bump version to 2.3.2

* 2.3.2 changelog

* Update output for 2.3.2
This commit is contained in:
Geoffrey Booth 2018-09-19 23:53:49 -07:00 committed by GitHub
parent b4dceaea67
commit 6e86b67818
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 255 additions and 57 deletions

View File

@ -875,8 +875,11 @@ browsers) or use a proper build chain like Gulp or Webpack.</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">try</span>
<span class="hljs-built_in">require</span> <span class="hljs-string">'babel-core'</span>
<span class="hljs-keyword">catch</span></pre></div></div>
<span class="hljs-built_in">require</span> <span class="hljs-string">'@babel/core'</span>
<span class="hljs-keyword">catch</span>
<span class="hljs-keyword">try</span>
<span class="hljs-built_in">require</span> <span class="hljs-string">'babel-core'</span>
<span class="hljs-keyword">catch</span></pre></div></div>
</li>
@ -892,21 +895,21 @@ locally or globally.</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> <span class="hljs-built_in">require</span>.resolve(<span class="hljs-string">'.'</span>).indexOf(process.cwd()) <span class="hljs-keyword">is</span> <span class="hljs-number">0</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile, you must have babel-core installed:
npm install --save-dev babel-core
And you must save options to configure Babel in one of the places it looks to find its options.
See https://coffeescript.org/#transpilation
'''</span>
<span class="hljs-keyword">else</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile with globally-installed CoffeeScript, you must have babel-core installed globally:
npm install --global babel-core
And you must save options to configure Babel in one of the places it looks to find its options, relative to the file being compiled or to the current folder.
See https://coffeescript.org/#transpilation
'''</span>
process.exit <span class="hljs-number">1</span>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> <span class="hljs-built_in">require</span>.resolve(<span class="hljs-string">'.'</span>).indexOf(process.cwd()) <span class="hljs-keyword">is</span> <span class="hljs-number">0</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile, you must have @babel/core installed:
npm install --save-dev @babel/core
And you must save options to configure Babel in one of the places it looks to find its options.
See https://coffeescript.org/#transpilation
'''</span>
<span class="hljs-keyword">else</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile with globally-installed CoffeeScript, you must have @babel/core installed globally:
npm install --global @babel/core
And you must save options to configure Babel in one of the places it looks to find its options, relative to the file being compiled or to the current folder.
See https://coffeescript.org/#transpilation
'''</span>
process.exit <span class="hljs-number">1</span>
opts.transpile = {} <span class="hljs-keyword">unless</span> <span class="hljs-keyword">typeof</span> opts.transpile <span class="hljs-keyword">is</span> <span class="hljs-string">'object'</span></pre></div></div>

View File

@ -442,6 +442,7 @@ wrapped in braces: E.g <code>a = b if do -&gt; f a is 1</code>, <code>if f (a) -
Yield: [
o <span class="hljs-string">'YIELD'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span>, <span class="hljs-keyword">new</span> Value <span class="hljs-keyword">new</span> Literal <span class="hljs-string">''</span>
o <span class="hljs-string">'YIELD Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'YIELD INDENT Object OUTDENT'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'YIELD FROM Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1.</span>concat($<span class="hljs-number">2</span>), $<span class="hljs-number">3</span>
]</pre></div></div>
@ -1733,7 +1734,8 @@ rules are necessary.</p>
o <span class="hljs-string">'- Expression'</span>, (<span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op <span class="hljs-string">'-'</span>, $<span class="hljs-number">2</span>), prec: <span class="hljs-string">'UNARY_MATH'</span>
o <span class="hljs-string">'+ Expression'</span>, (<span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op <span class="hljs-string">'+'</span>, $<span class="hljs-number">2</span>), prec: <span class="hljs-string">'UNARY_MATH'</span>
o <span class="hljs-string">'AWAIT Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span> , $<span class="hljs-number">2</span>
o <span class="hljs-string">'AWAIT Expression'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'AWAIT INDENT Object OUTDENT'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op $<span class="hljs-number">1</span>, $<span class="hljs-number">3</span>
o <span class="hljs-string">'-- SimpleAssignable'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op <span class="hljs-string">'--'</span>, $<span class="hljs-number">2</span>
o <span class="hljs-string">'++ SimpleAssignable'</span>, <span class="hljs-function">-&gt;</span> <span class="hljs-keyword">new</span> Op <span class="hljs-string">'++'</span>, $<span class="hljs-number">2</span>

View File

@ -128,8 +128,11 @@ helpers = CoffeeScript.helpers
CoffeeScript.transpile = <span class="hljs-function"><span class="hljs-params">(js, options)</span> -&gt;</span>
<span class="hljs-keyword">try</span>
babel = <span class="hljs-built_in">require</span> <span class="hljs-string">'babel-core'</span>
<span class="hljs-keyword">catch</span></pre></div></div>
babel = <span class="hljs-built_in">require</span> <span class="hljs-string">'@babel/core'</span>
<span class="hljs-keyword">catch</span>
<span class="hljs-keyword">try</span>
babel = <span class="hljs-built_in">require</span> <span class="hljs-string">'babel-core'</span>
<span class="hljs-keyword">catch</span></pre></div></div>
</li>
@ -145,7 +148,7 @@ earlier if they dont have Babel installed.</p>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> Error <span class="hljs-string">'To use the transpile option, you must have the \'babel-core\' module installed'</span>
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> Error <span class="hljs-string">'To use the transpile option, you must have the \'@babel/core\' module installed'</span>
babel.transform js, options</pre></div></div>
</li>

View File

@ -465,6 +465,8 @@ what CoffeeScript would normally interpret as calls to functions named
@tokens.length &gt; <span class="hljs-number">1</span> <span class="hljs-keyword">and</span> @tokens[@tokens.length - <span class="hljs-number">2</span>][<span class="hljs-number">0</span>] <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> [<span class="hljs-string">'.'</span>, <span class="hljs-string">'?.'</span>, <span class="hljs-string">'@'</span>]
@error <span class="hljs-string">"'<span class="hljs-subst">#{prev[<span class="hljs-number">1</span>]}</span>' cannot be used as a keyword, or as a function call
without parentheses"</span>, prev[<span class="hljs-number">2</span>]
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> prev[<span class="hljs-number">0</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'.'</span> <span class="hljs-keyword">and</span> @tokens.length &gt; <span class="hljs-number">1</span> <span class="hljs-keyword">and</span> (prevprev = @tokens[@tokens.length - <span class="hljs-number">2</span>])[<span class="hljs-number">0</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'UNARY'</span> <span class="hljs-keyword">and</span> prevprev[<span class="hljs-number">1</span>] <span class="hljs-keyword">is</span> <span class="hljs-string">'new'</span>
prevprev[<span class="hljs-number">0</span>] = <span class="hljs-string">'IDENTIFIER'</span>
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> @tokens.length &gt; <span class="hljs-number">2</span>
prevprev = @tokens[@tokens.length - <span class="hljs-number">2</span>]
<span class="hljs-keyword">if</span> prev[<span class="hljs-number">0</span>] <span class="hljs-keyword">in</span> [<span class="hljs-string">'@'</span>, <span class="hljs-string">'THIS'</span>] <span class="hljs-keyword">and</span> prevprev <span class="hljs-keyword">and</span> prevprev.spaced <span class="hljs-keyword">and</span>

View File

@ -2117,6 +2117,7 @@ evaluate anything twice when building the soak chain.</p>
</div>
<div class="content"><div class='highlight'><pre> compileNode: <span class="hljs-function"><span class="hljs-params">(o)</span> -&gt;</span>
@checkNewTarget o
@base.front = @front
props = @properties
<span class="hljs-keyword">if</span> props.length <span class="hljs-keyword">and</span> @base.cached?</pre></div></div>
@ -2147,7 +2148,15 @@ Example:
<span class="hljs-keyword">for</span> prop <span class="hljs-keyword">in</span> props
fragments.push (prop.compileToFragments o)...
fragments</pre></div></div>
fragments
checkNewTarget: <span class="hljs-function"><span class="hljs-params">(o)</span> -&gt;</span>
<span class="hljs-keyword">return</span> <span class="hljs-keyword">unless</span> @base <span class="hljs-keyword">instanceof</span> IdentifierLiteral <span class="hljs-keyword">and</span> @base.value <span class="hljs-keyword">is</span> <span class="hljs-string">'new'</span> <span class="hljs-keyword">and</span> @properties.length
<span class="hljs-keyword">if</span> @properties[<span class="hljs-number">0</span>] <span class="hljs-keyword">instanceof</span> Access <span class="hljs-keyword">and</span> @properties[<span class="hljs-number">0</span>].name.value <span class="hljs-keyword">is</span> <span class="hljs-string">'target'</span>
<span class="hljs-keyword">unless</span> o.scope.parent?
@error <span class="hljs-string">"new.target can only occur inside functions"</span>
<span class="hljs-keyword">else</span>
@error <span class="hljs-string">"the only valid meta property for new is new.target"</span></pre></div></div>
</li>
@ -7071,7 +7080,8 @@ and using @body.compileNode. <code>StringWithInterpolations.compileNode</code> i
<span class="hljs-keyword">else</span>
fragments.push @makeCode <span class="hljs-string">'$'</span> <span class="hljs-keyword">unless</span> @csx
code = element.compileToFragments(o, LEVEL_PAREN)
<span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> @isNestedTag(element) <span class="hljs-keyword">or</span> code.some(<span class="hljs-function"><span class="hljs-params">(fragment)</span> -&gt;</span> fragment.comments?)
<span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> @isNestedTag(element) <span class="hljs-keyword">or</span>
code.some(<span class="hljs-function"><span class="hljs-params">(fragment)</span> -&gt;</span> fragment.comments?.some(<span class="hljs-function"><span class="hljs-params">(comment)</span> -&gt;</span> comment.here <span class="hljs-keyword">is</span> <span class="hljs-literal">no</span>))
code = @wrapInBraces code</pre></div></div>
</li>
@ -7085,8 +7095,10 @@ and using @body.compileNode. <code>StringWithInterpolations.compileNode</code> i
</div>
<p>Flag the <code>{</code> and <code>}</code> fragments as having been generated by this
<code>StringWithInterpolations</code> node, so that <code>compileComments</code> knows
to treat them as bounds. Dont trust <code>fragment.type</code>, which can
report minified variable names when this compiler is minified.</p>
to treat them as bounds. But the braces are unnecessary if all of
the enclosed comments are <code>/* */</code> comments. Dont trust
<code>fragment.type</code>, which can report minified variable names when
this compiler is minified.</p>
</div>

View File

@ -699,19 +699,22 @@ undeclared variable <code>__</code>.</p>
CoffeeScript.register()
process.argv = [<span class="hljs-string">'coffee'</span>].concat process.argv[<span class="hljs-number">2.</span>.]
<span class="hljs-keyword">if</span> opts.transpile
transpile = {}
<span class="hljs-keyword">try</span>
transpile = {}
transpile.transpile = <span class="hljs-built_in">require</span>(<span class="hljs-string">'babel-core'</span>).transform
transpile.transpile = <span class="hljs-built_in">require</span>(<span class="hljs-string">'@babel/core'</span>).transform
<span class="hljs-keyword">catch</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile with an interactive REPL, babel-core must be installed either in the current folder or globally:
npm install --save-dev babel-core
or
npm install --global babel-core
And you must save options to configure Babel in one of the places it looks to find its options.
See https://coffeescript.org/#transpilation
'''</span>
process.exit <span class="hljs-number">1</span>
<span class="hljs-keyword">try</span>
transpile.transpile = <span class="hljs-built_in">require</span>(<span class="hljs-string">'babel-core'</span>).transform
<span class="hljs-keyword">catch</span>
<span class="hljs-built_in">console</span>.error <span class="hljs-string">'''
To use --transpile with an interactive REPL, @babel/core must be installed either in the current folder or globally:
npm install --save-dev @babel/core
or
npm install --global @babel/core
And you must save options to configure Babel in one of the places it looks to find its options.
See https://coffeescript.org/#transpilation
'''</span>
process.exit <span class="hljs-number">1</span>
transpile.options =
filename: path.resolve process.cwd(), <span class="hljs-string">'&lt;repl&gt;'</span></pre></div></div>

File diff suppressed because one or more lines are too long

View File

@ -693,7 +693,7 @@ textarea {
<section id="introduction">
<p><strong>CoffeeScript is a little language that compiles into JavaScript.</strong> Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.</p>
<p>The golden rule of CoffeeScript is: <em>“Its just JavaScript.”</em> The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly from CoffeeScript (and vice-versa). The compiled output is readable, pretty-printed, and tends to run as fast or faster than the equivalent handwritten JavaScript.</p>
<p><strong>Latest Version:</strong> <a href="https://github.com/jashkenas/coffeescript/tarball/2.3.1">2.3.1</a></p>
<p><strong>Latest Version:</strong> <a href="https://github.com/jashkenas/coffeescript/tarball/2.3.2">2.3.2</a></p>
<blockquote class="uneditable-code-block"><pre><code class="language-bash"><span class="comment"># Install locally for a project:</span>
npm install --save-dev coffeescript
@ -4845,7 +4845,7 @@ The CoffeeScript logo is available in SVG for use in presentations.</li>
</section>
<section id="annotated-source">
<h2>Annotated Source</h2>
<p>You can browse the CoffeeScript 2.3.1 source in readable, annotated form <a href="annotated-source/">here</a>. You can also jump directly to a particular source file:</p>
<p>You can browse the CoffeeScript 2.3.2 source in readable, annotated form <a href="annotated-source/">here</a>. You can also jump directly to a particular source file:</p>
<ul>
<li><a href="annotated-source/grammar.html">Grammar Rules — src/grammar</a></li>
<li><a href="annotated-source/lexer.html">Lexing Tokens — src/lexer</a></li>
@ -5523,6 +5523,17 @@ x = <span class="number">2</span> + <span class="number">2</span>
<section id="changelog">
<h2>Changelog</h2>
<section id="2.3.2">
<h3><a href="https://github.com/jashkenas/coffeescript/compare/2.3.1...2.3.2">2.3.2</a>
<span class="timestamp"> &mdash; <time datetime="2018-09-19">2018-09-19</time></span>
</h3><ul>
<li>Babel 7 is now supported. With version 7, the Babel team moved from <code>babel-core</code> on NPM to <code>@babel/core</code>. Now the CoffeeScript <code>--transpile</code> option will first search for <code>@babel/core</code> (Babel versions 7 and above) and then search for <code>babel-core</code> (versions 6 and below) to try to find an installed version of Babel to use for transpilation.</li>
<li>The syntax <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target"><code>new.target</code></a> is now supported.</li>
<li>You can now follow the keyword <code>yield</code> with an indented object, like has already been allowed for <code>return</code> and other keywords.</li>
<li>Previously, any comments inside a JSX tag or attribute would cause interpolation braces (<code>{</code> and <code>}</code>) to be output. This is only necessary for line (<code>#</code>, or <code>//</code> in JavaScript) comments, not here (<code>###</code>, or <code>/* */</code>) comments; so now the compiler checks if all the comments that would trigger the braces are here comments, and if so it doesnt generate the unnecessary interpolation braces.</li>
</ul>
</section>
<section id="2.3.1">
<h3><a href="https://github.com/jashkenas/coffeescript/compare/2.3.0...2.3.1">2.3.1</a>
<span class="timestamp"> &mdash; <time datetime="2018-05-21">2018-05-21</time></span>

View File

@ -1552,6 +1552,14 @@ test "async methods in classes", ->
eq await Child.static(), 1
eq await new Child().method(), 2
test "#3199: await multiline implicit object", ->
do ->
y =
if no then await
type: 'a'
msg: 'b'
eq undefined, y
</script>
<script type="text/x-coffeescript" class="test" id="async_iterators">
# This is always fulfilled.
@ -3515,6 +3523,29 @@ test "#4868: Incorrect Cant call super with @params error", ->
d = new (new D).c
eq 3, d.a
test "#4609: Support new.target", ->
class A
constructor: ->
@calledAs = new.target.name
class B extends A
b = new B
eq b.calledAs, 'B'
newTarget = null
Foo = ->
newTarget = !!new.target
Foo()
eq newTarget, no
newTarget = null
new Foo()
eq newTarget, yes
</script>
<script type="text/x-coffeescript" class="test" id="cluster">
# Cluster Module
@ -4673,7 +4704,7 @@ transpile = (method, code, options = {}) ->
options.bare = yes
options.transpile =
# Target Internet Explorer 6, which supports no ES2015+ features.
presets: [['env', {targets: browsers: ['ie 6']}]]
presets: [['@babel/env', {targets: browsers: ['ie 6']}]]
CoffeeScript[method] code, options
@ -4839,6 +4870,7 @@ test "#3306: trailing comma in a function call in the last line", ->
''', '''
foo(bar);
'''
</script>
<script type="text/x-coffeescript" class="test" id="comprehensions">
# Comprehensions
@ -7480,6 +7512,47 @@ test '#4686: comments inside interpolations that also contain CSX attributes', -
</div>;
'''
test '#5086: comments inside CSX tags but outside interpolations', ->
eqJS '''
<div>
<div ###comment### attribute={value} />
</div>
''', '''
<div>
<div /*comment*/attribute={value} />
</div>;
'''
test '#5086: comments inside CSX attributes but outside interpolations', ->
eqJS '''
<div>
<div attribute={###attr comment### value} />
</div>
''', '''
<div>
<div attribute={/*attr comment*/value} />
</div>;
'''
test '#5086: comments inside nested CSX tags and attributes but outside interpolations', ->
eqJS '''
<div>
<div>
<div>
<div ###comment### attribute={###attr comment### value} />
</div>
</div>
</div>
''', '''
<div>
<div>
<div>
<div /*comment*/attribute={/*attr comment*/value} />
</div>
</div>
</div>;
'''
# https://reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html
test 'JSX fragments: empty fragment', ->
eqJS '''
@ -9377,6 +9450,50 @@ test "#3199: error message for throw indented comprehension", ->
^
'''
test "#3199: error message for yield indented non-object", ->
assertErrorFormat '''
->
yield
1
''', '''
[stdin]:3:5: error: unexpected number
1
^
'''
test "#3199: error message for yield indented comprehension", ->
assertErrorFormat '''
->
yield
x for x in [1, 2, 3]
''', '''
[stdin]:3:5: error: unexpected identifier
x for x in [1, 2, 3]
^
'''
test "#3199: error message for await indented non-object", ->
assertErrorFormat '''
->
await
1
''', '''
[stdin]:3:5: error: unexpected number
1
^
'''
test "#3199: error message for await indented comprehension", ->
assertErrorFormat '''
->
await
x for x in [1, 2, 3]
''', '''
[stdin]:3:5: error: unexpected identifier
x for x in [1, 2, 3]
^
'''
test "#3098: suppressed newline should be unsuppressed by semicolon", ->
assertErrorFormat '''
a = ; 5
@ -9445,6 +9562,24 @@ test "#3933: prevent implicit calls when cotrol flow is missing `THEN`", ->
^^
'''
test "`new.target` outside of a function", ->
assertErrorFormat '''
new.target
''', '''
[stdin]:1:1: error: new.target can only occur inside functions
new.target
^^^^^^^^^^
'''
test "`new.target` is only allowed meta property", ->
assertErrorFormat '''
-> new.something
''', '''
[stdin]:1:4: error: the only valid meta property for new is new.target
-> new.something
^^^^^^^^^^^^^
'''
</script>
<script type="text/x-coffeescript" class="test" id="eval">
if vm = require? 'vm'
@ -10108,6 +10243,22 @@ test "#3199: throw multiline implicit object", ->
msg: 'b'
eq undefined, y
y = do ->
yield
type: 'a'
msg: 'b'
if no then yield
type: 'c'
msg: 'd'
1
{value, done} = y.next()
ok value.type is 'a' and done is no
{value, done} = y.next()
ok value is 1 and done is yes
test "#4576: multiple row function chaining", ->
->
eq @a, 3

View File

@ -0,0 +1,8 @@
```
releaseHeader('2018-09-19', '2.3.2', '2.3.1')
```
* Babel 7 is now supported. With version 7, the Babel team moved from `babel-core` on NPM to `@babel/core`. Now the CoffeeScript `--transpile` option will first search for `@babel/core` (Babel versions 7 and above) and then search for `babel-core` (versions 6 and below) to try to find an installed version of Babel to use for transpilation.
* The syntax [`new.target`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target) is now supported.
* You can now follow the keyword `yield` with an indented object, like has already been allowed for `return` and other keywords.
* Previously, any comments inside a JSX tag or attribute would cause interpolation braces (`{` and `}`) to be output. This is only necessary for line (`#`, or `//` in JavaScript) comments, not here (`###`, or `/* */`) comments; so now the compiler checks if all the comments that would trigger the braces are here comments, and if so it doesnt generate the unnecessary interpolation braces.

View File

@ -207,6 +207,9 @@
</section>
<section id="changelog">
<%= htmlFor('changelog') %>
<section id="2.3.2">
<%= htmlFor('changelog/2.3.2') %>
</section>
<section id="2.3.1">
<%= htmlFor('changelog/2.3.1') %>
</section>

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// This **Browser** compatibility layer extends core CoffeeScript functions
// to make things work smoothly when compiling code directly in the browser.

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// `cake` is a simplified version of [Make](http://www.gnu.org/software/make/)
// ([Rake](http://rake.rubyforge.org/), [Jake](https://github.com/280north/jake))

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// CoffeeScript can be used both on the server, as a command-line compiler based
// on Node.js/V8, or to run CoffeeScript directly in the browser. This module

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// The `coffee` utility. Handles command-line compilation of CoffeeScript
// into various forms: saved into `.js` files or printed to stdout

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// The CoffeeScript parser is generated by [Jison](https://github.com/zaach/jison)
// from this grammar file. Jison is a bottom-up parser generator, similar in

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// This file contains the common helper functions that we'd like to share among
// the **Lexer**, **Rewriter**, and the **Nodes**. Merge objects, flatten

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// Node.js Implementation
var CoffeeScript, ext, fs, helpers, i, len, path, ref, universalCompile, vm,

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// The CoffeeScript Lexer. Uses a series of token-matching regexes to attempt
// matches against the beginning of the source code. When a match is found,

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// `nodes.coffee` contains all of the node classes for the syntax tree. Most
// nodes are created as the result of actions in the [grammar](grammar.html),

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
var LONG_FLAG, MULTI_FLAG, OPTIONAL, OptionParser, SHORT_FLAG, buildRule, buildRules, normalizeArguments, repeat,
splice = [].splice;

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, getRootModule, helpers, i, len, loadFile, path, ref;

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
var CoffeeScript, addHistory, addMultilineHandler, fs, getCommandId, merge, nodeREPL, path, replDefaults, runInContext, sawSIGINT, transpile, updateSyntaxError, vm;

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// The CoffeeScript language has a good deal of optional syntax, implicit syntax,
// and shorthand syntax. This can greatly complicate a grammar and bloat

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// The **Scope** class regulates lexical scoping within CoffeeScript. As you
// generate code, you create a tree of scopes in the same shape as the nested

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 2.3.1
// Generated by CoffeeScript 2.3.2
(function() {
// Source maps allow JavaScript runtimes to match running JavaScript back to
// the original source code that corresponds to it. This can be minified

View File

@ -8,7 +8,7 @@
"compiler"
],
"author": "Jeremy Ashkenas",
"version": "2.3.1",
"version": "2.3.2",
"license": "MIT",
"engines": {
"node": ">=6"