@@ -194,7 +194,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
|
|||||||
if (node instanceof AST_SymbolCatch) {
|
if (node instanceof AST_SymbolCatch) {
|
||||||
var scope = node.thedef.defun;
|
var scope = node.thedef.defun;
|
||||||
if (scope.name instanceof AST_SymbolLambda && scope.name.name == node.name) {
|
if (scope.name instanceof AST_SymbolLambda && scope.name.name == node.name) {
|
||||||
scope = scope.parent_scope;
|
scope = scope.parent_scope.resolve();
|
||||||
}
|
}
|
||||||
redefine(node, scope);
|
redefine(node, scope);
|
||||||
return true;
|
return true;
|
||||||
@@ -202,7 +202,11 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
|
|||||||
if (node instanceof AST_SymbolLambda) {
|
if (node instanceof AST_SymbolLambda) {
|
||||||
var def = node.thedef;
|
var def = node.thedef;
|
||||||
redefine(node, node.scope.parent_scope.resolve());
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -1841,3 +1841,49 @@ issue_3484_2_ie8_toplevel: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "number number"
|
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"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user