fix corner case in ie8 (#3487)

fixes #3486
This commit is contained in:
Alex Lam S.L
2019-10-16 12:18:27 +08:00
committed by GitHub
parent 8ff9a3c8fb
commit 1549db70e6
2 changed files with 52 additions and 2 deletions

View File

@@ -194,7 +194,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
if (node instanceof AST_SymbolCatch) {
var scope = node.thedef.defun;
if (scope.name instanceof AST_SymbolLambda && scope.name.name == node.name) {
scope = scope.parent_scope;
scope = scope.parent_scope.resolve();
}
redefine(node, scope);
return true;
@@ -202,7 +202,11 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
if (node instanceof AST_SymbolLambda) {
var def = node.thedef;
redefine(node, node.scope.parent_scope.resolve());
if (def.init) node.thedef.init = def.init;
if (typeof node.thedef.init !== "undefined") {
node.thedef.init = false;
} else if (def.init) {
node.thedef.init = def.init;
}
return true;
}
}));

View File

@@ -1841,3 +1841,49 @@ issue_3484_2_ie8_toplevel: {
}
expect_stdout: "number number"
}
issue_3486: {
options = {
conditionals: true,
ie8: false,
reduce_vars: true,
}
input: {
(function a() {
(function a(a) {
console.log(a ? "FAIL" : "PASS");
})();
})();
}
expect: {
(function a() {
(function a(a) {
console.log(a ? "FAIL" : "PASS");
})();
})();
}
expect_stdout: "PASS"
}
issue_3486_ie8: {
options = {
conditionals: true,
ie8: true,
reduce_vars: true,
}
input: {
(function a() {
(function a(a) {
console.log(a ? "FAIL" : "PASS");
})();
})();
}
expect: {
(function a() {
(function a(a) {
console.log(a ? "FAIL" : "PASS");
})();
})();
}
expect_stdout: "PASS"
}