test for falsy nodes in tail call transformer subtransform
This commit is contained in:
parent
45b70d7fba
commit
edc8bee38e
@ -132,6 +132,8 @@ TailCallTransformer.prototype.run = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
TailCallTransformer.prototype.subTransform = function (node) {
|
TailCallTransformer.prototype.subTransform = function (node) {
|
||||||
|
if (!node) return;
|
||||||
|
|
||||||
var handler = this["subTransform" + node.type];
|
var handler = this["subTransform" + node.type];
|
||||||
if (handler) return handler.call(this, node);
|
if (handler) return handler.call(this, node);
|
||||||
};
|
};
|
||||||
@ -324,8 +326,10 @@ var secondPass = {
|
|||||||
var thirdPass = {
|
var thirdPass = {
|
||||||
enter: function (node, parent, scope, state) {
|
enter: function (node, parent, scope, state) {
|
||||||
if (!t.isExpressionStatement(node)) return;
|
if (!t.isExpressionStatement(node)) return;
|
||||||
|
|
||||||
var expr = node.expression;
|
var expr = node.expression;
|
||||||
if (!t.isAssignmentExpression(expr)) return;
|
if (!t.isAssignmentExpression(expr)) return;
|
||||||
|
|
||||||
if (!state.needsThis && expr.left === state.getThisId()) {
|
if (!state.needsThis && expr.left === state.getThisId()) {
|
||||||
this.remove();
|
this.remove();
|
||||||
} else if (!state.needsArguments && expr.left === state.getArgumentsId() && t.isArrayExpression(expr.right)) {
|
} else if (!state.needsArguments && expr.left === state.getArgumentsId() && t.isArrayExpression(expr.right)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user