diff --git a/lib/nodes.js b/lib/nodes.js index a33f636c..6c8a3c54 100644 --- a/lib/nodes.js +++ b/lib/nodes.js @@ -1763,10 +1763,11 @@ return this; }; IfNode.prototype.ensureExpressions = function(node) { - if (!(node instanceof Expressions)) { - node = new Expressions([node]); + if (node instanceof Expressions) { + return node; + } else { + return new Expressions([node]); } - return node; }; // Compile the **IfNode** as a regular *if-else* statement. Flattened chains // force inner *else* bodies into statement form. diff --git a/src/nodes.coffee b/src/nodes.coffee index 54c632c5..698e283c 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -1301,12 +1301,11 @@ exports.IfNode: class IfNode extends BaseNode makeReturn: -> @body: and @ensureExpressions(@body.makeReturn()) - @elseBody: and @ensureExpressions(@elseBody.makeReturn()) + @elseBody: and @ensureExpressions(@elseBody.makeReturn()) this ensureExpressions: (node) -> - node: new Expressions([node]) unless node instanceof Expressions - node + if node instanceof Expressions then node else new Expressions [node] # Compile the **IfNode** as a regular *if-else* statement. Flattened chains # force inner *else* bodies into statement form.