extend function inlining safety checks (#2430)

This commit is contained in:
Alex Lam S.L
2017-11-05 06:18:45 +08:00
committed by GitHub
parent a8aa28a7a6
commit 5b4b07e9a7
3 changed files with 167 additions and 27 deletions

View File

@@ -3397,6 +3397,10 @@ issue_2423_1: {
p();
p();
}
expect_stdout: [
"1",
"1",
]
}
issue_2423_2: {
@@ -3417,6 +3421,10 @@ issue_2423_2: {
p();
p();
}
expect_stdout: [
"1",
"1",
]
}
issue_2423_3: {
@@ -3433,12 +3441,14 @@ issue_2423_3: {
expect: {
(function() { console.log(function() { return 1; }()); })();
}
expect_stdout: "1"
}
issue_2423_4: {
options = {
inline: true,
reduce_vars: true,
side_effects: true,
toplevel: true,
unused: true,
}
@@ -3448,6 +3458,87 @@ issue_2423_4: {
p();
}
expect: {
void console.log(1);
console.log(1);
}
expect_stdout: "1"
}
issue_2423_5: {
options = {
inline: true,
passes: 2,
reduce_vars: true,
side_effects: true,
toplevel: true,
unused: true,
}
input: {
function x() {
y();
}
function y() {
console.log(1);
}
function z() {
function y() {
console.log(2);
}
x();
}
z();
z();
}
expect: {
function z() {
console.log(1);
}
z();
z();
}
expect_stdout: [
"1",
"1",
]
}
issue_2423_6: {
options = {
inline: true,
passes: 2,
reduce_vars: true,
side_effects: true,
toplevel: true,
unused: true,
}
input: {
function x() {
y();
}
function y() {
console.log(1);
}
function z() {
function y() {
console.log(2);
}
x();
y();
}
z();
z();
}
expect: {
function z(){
console.log(1);
console.log(2);
}
z();
z();
}
expect_stdout: [
"1",
"2",
"1",
"2",
]
}