@@ -294,6 +294,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options) {
|
||||
node.redef = true;
|
||||
node.thedef = new_def;
|
||||
node.reference(options);
|
||||
if (node instanceof AST_SymbolConst || node instanceof AST_SymbolLet) new_def.orig.push(node);
|
||||
});
|
||||
if (old_def.lambda) new_def.lambda = true;
|
||||
if (new_def.undeclared) self.variables.set(name, new_def);
|
||||
|
||||
@@ -1045,3 +1045,23 @@ issue_4225: {
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
issue_4229: {
|
||||
options = {
|
||||
ie8: true,
|
||||
side_effects: true,
|
||||
}
|
||||
input: {
|
||||
(function f() {
|
||||
f;
|
||||
const f = 42;
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
(function f() {
|
||||
f;
|
||||
const f = 42;
|
||||
})();
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
@@ -840,3 +840,34 @@ issue_4225: {
|
||||
expect_stdout: true
|
||||
node_version: ">=4"
|
||||
}
|
||||
|
||||
issue_4229: {
|
||||
options = {
|
||||
ie8: true,
|
||||
side_effects: true,
|
||||
}
|
||||
input: {
|
||||
"use strict";
|
||||
try {
|
||||
(function f() {
|
||||
f;
|
||||
let f;
|
||||
})();
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
"use strict";
|
||||
try {
|
||||
(function f() {
|
||||
f;
|
||||
let f;
|
||||
})();
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
node_version: ">=4"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user