Fixing issue #1492: Consecutive semicolons in compiled output in some situations
This commit is contained in:
parent
8fe59ed888
commit
8a4a28bd33
|
@ -254,7 +254,9 @@
|
|||
node = _ref2[_i];
|
||||
node = node.unwrapAll();
|
||||
node = node.unfoldSoak(o) || node;
|
||||
if (top) {
|
||||
if (node instanceof Block) {
|
||||
codes.push(node.compileNode(o));
|
||||
} else if (top) {
|
||||
node.front = true;
|
||||
code = node.compile(o);
|
||||
codes.push(node.isStatement(o) ? code : this.tab + code + ';');
|
||||
|
|
|
@ -214,7 +214,12 @@ exports.Block = class Block extends Base
|
|||
for node in @expressions
|
||||
node = node.unwrapAll()
|
||||
node = (node.unfoldSoak(o) or node)
|
||||
if top
|
||||
if node instanceof Block
|
||||
# This is a nested block. We don't do anything special here like enclose
|
||||
# it in a new scope; we just compile the statements in this block along with
|
||||
# our own
|
||||
codes.push node.compileNode o
|
||||
else if top
|
||||
node.front = true
|
||||
code = node.compile o
|
||||
codes.push if node.isStatement o then code else @tab + code + ';'
|
||||
|
|
|
@ -116,3 +116,10 @@ test "indented heredoc", ->
|
|||
abc
|
||||
""")
|
||||
eq "abc", result
|
||||
|
||||
# Nested blocks caused by paren unwrapping
|
||||
test "#1492: Nested blocks don't cause double semicolons", ->
|
||||
js = CoffeeScript.compile """
|
||||
(0;0)
|
||||
"""
|
||||
eq -1, js.indexOf ';;'
|
||||
|
|
Loading…
Reference in New Issue