From 82c21a901e68c351c13da5d6c6bce019db155339 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 13 May 2015 00:11:19 +0100 Subject: [PATCH] clean up es6.tailCall thirdPass visitor --- .../transformation/transformers/es6/tail-call.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/babel/transformation/transformers/es6/tail-call.js b/src/babel/transformation/transformers/es6/tail-call.js index fb75fd03bc..84ce823dad 100644 --- a/src/babel/transformation/transformers/es6/tail-call.js +++ b/src/babel/transformation/transformers/es6/tail-call.js @@ -75,14 +75,11 @@ var secondPass = { // optimizes recursion by removing `this` and `arguments` if they aren't used var thirdPass = { - ExpressionStatement(node, parent, scope, state) { - var expr = node.expression; - if (!t.isAssignmentExpression(expr)) return; - - if (!state.needsThis && expr.left === state.getThisId()) { + AssignmentExpression(node, parent, scope, state) { + if (!state.needsThis && node.left === state.getThisId()) { this.remove(); - } else if (!state.needsArguments && expr.left === state.getArgumentsId() && t.isArrayExpression(expr.right)) { - return map(expr.right.elements, function (elem) { + } else if (!state.needsArguments && node.left === state.getArgumentsId() && t.isArrayExpression(node.right)) { + return map(node.right.elements, function (elem) { return t.expressionStatement(elem); }); }