Skip to content

Commit 89fe966

Browse files
committed
1 parent 7c6f378 commit 89fe966

File tree

2 files changed

+4
-56
lines changed

2 files changed

+4
-56
lines changed

lib/coffeescript/nodes.js

+2-32
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/nodes.coffee

+2-24
Original file line numberDiff line numberDiff line change
@@ -3647,7 +3647,7 @@ exports.For = class For extends While
36473647
body = Block.wrap [new If @guard, body] if @guard
36483648
if @pattern
36493649
body.expressions.unshift new Assign @name, if @from then new IdentifierLiteral kvar else new Literal "#{svar}[#{kvar}]"
3650-
defPartFragments = [].concat @makeCode(defPart), @pluckDirectCall(o, body)
3650+
36513651
varPart = "\n#{idt1}#{namePart};" if namePart
36523652
if @object
36533653
forPartFragments = [@makeCode("#{kvar} in #{svar}")]
@@ -3658,36 +3658,14 @@ exports.For = class For extends While
36583658
if bodyFragments and bodyFragments.length > 0
36593659
bodyFragments = [].concat @makeCode('\n'), bodyFragments, @makeCode('\n')
36603660

3661-
fragments = []
3662-
if defPartFragments? and fragmentsToText(defPartFragments) isnt ''
3663-
fragments = fragments.concat defPartFragments
3661+
fragments = [@makeCode(defPart)]
36643662
fragments.push @makeCode(resultPart) if resultPart
36653663
fragments = fragments.concat @makeCode(@tab), @makeCode( 'for ('),
36663664
forPartFragments, @makeCode(") {#{guardPart}#{varPart}"), bodyFragments,
36673665
@makeCode(@tab), @makeCode('}')
36683666
fragments.push @makeCode(returnResult) if returnResult
36693667
fragments
36703668

3671-
pluckDirectCall: (o, body) ->
3672-
defs = []
3673-
for expr, idx in body.expressions
3674-
expr = expr.unwrapAll()
3675-
continue unless expr instanceof Call
3676-
val = expr.variable?.unwrapAll()
3677-
continue unless (val instanceof Code) or
3678-
(val instanceof Value and
3679-
val.base?.unwrapAll() instanceof Code and
3680-
val.properties.length is 1 and
3681-
val.properties[0].name?.value in ['call', 'apply'])
3682-
fn = val.base?.unwrapAll() or val
3683-
ref = new IdentifierLiteral o.scope.freeVariable 'fn'
3684-
base = new Value ref
3685-
if val.base
3686-
[val.base, base] = [base, val]
3687-
body.expressions[idx] = new Call base, expr.args
3688-
defs = defs.concat @makeCode(@tab), (new Assign(ref, fn).compileToFragments(o, LEVEL_TOP)), @makeCode(';\n')
3689-
defs
3690-
36913669
#### Switch
36923670

36933671
# A JavaScript *switch* statement. Converts into a returnable expression on-demand.

0 commit comments

Comments
 (0)