fix corner case in ie8 (#4230)

fixes #4229
This commit is contained in:
Alex Lam S.L
2020-10-19 23:13:23 +01:00
committed by GitHub
parent 8ecaa40c6e
commit 256950c2c0
3 changed files with 52 additions and 0 deletions

View File

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

View File

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

View File

@@ -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"
}