clean up es6.tailCall thirdPass visitor

This commit is contained in:
Sebastian McKenzie 2015-05-13 00:11:19 +01:00
parent e1c83144c1
commit 82c21a901e

View File

@ -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);
});
}