improve inline efficiency (#2924)

This commit is contained in:
Alex Lam S.L
2018-02-17 02:37:13 +08:00
committed by GitHub
parent a2a9459684
commit d626e9bf19
3 changed files with 28 additions and 33 deletions

View File

@@ -4487,6 +4487,8 @@ merge(Compressor.prototype, {
})) {
return false;
}
} else if (line instanceof AST_EmptyStatement) {
continue;
} else if (stat) {
return false;
} else {

View File

@@ -292,11 +292,12 @@ issue_2084: {
}
expect: {
var c = 0;
!function(c) {
c = 1 + c,
!function() {
var c;
c = 1 + (c = -1),
c = 1 + (c = 0),
0 !== 23..toString() && (c = 1 + c);
}(-1),
}(),
console.log(c);
}
expect_stdout: "0"
@@ -1051,11 +1052,9 @@ issue_2616: {
}
expect: {
var c = "FAIL";
(function() {
!function(NaN) {
(true << NaN) - 0/0 || (c = "PASS");
}([]);
})();
!function(NaN) {
(true << NaN) - 0/0 || (c = "PASS");
}([]);
console.log(c);
}
expect_stdout: "PASS"
@@ -1086,13 +1085,11 @@ issue_2620_1: {
}
expect: {
var c = "FAIL";
(function() {
(function(a) {
if (function(a) {
a && a();
}(), a) c = "PASS";
})(1);
})(),
!function(a) {
if (function(a) {
a && a();
}(), a) c = "PASS";
}(1),
console.log(c);
}
expect_stdout: "PASS"
@@ -1160,18 +1157,16 @@ issue_2620_3: {
}
expect: {
var c = "FAIL";
(function() {
(function(a, NaN) {
(function() {
switch (a) {
case a:
break;
case c = "PASS", NaN:
break;
}
})();
})(NaN);
})();
!function(a, NaN) {
(function() {
switch (a) {
case a:
break;
case c = "PASS", NaN:
break;
}
})();
}(NaN);
console.log(c);
}
expect_stdout: "PASS"
@@ -1341,11 +1336,9 @@ issue_2630_4: {
}
expect: {
var x = 3, a = 1, b = 2;
(function() {
(function() {
while (--x >= 0 && void (b += ++a));
})();
})();
!function() {
while (--x >= 0 && void (b += ++a));
}();
console.log(a);
}
expect_stdout: "2"

View File

@@ -226,7 +226,7 @@ describe("minify", function() {
content: "inline"
}
});
assert.strictEqual(result.code, "var bar=function(){return function(bar){return bar}}();");
assert.strictEqual(result.code, "var bar=function(bar){return bar};");
assert.strictEqual(warnings.length, 1);
assert.strictEqual(warnings[0], "inline source map not found");
} finally {