support const (#4190)
This commit is contained in:
@@ -76,9 +76,8 @@ asm_mixed: {
|
||||
start = start | 0;
|
||||
end = end | 0;
|
||||
var sum = 0.0, p = 0, q = 0;
|
||||
for (p = start << 3, q = end << 3; (p | 0) < (q | 0); p = p + 8 | 0) {
|
||||
for (p = start << 3, q = end << 3; (p | 0) < (q | 0); p = p + 8 | 0)
|
||||
sum = sum + +log(values[p >> 3]);
|
||||
}
|
||||
return +sum;
|
||||
}
|
||||
function geometricMean(start, end) {
|
||||
@@ -91,7 +90,8 @@ asm_mixed: {
|
||||
function no_asm_GeometricMean(stdlib, foreign, buffer) {
|
||||
function logSum(start, end) {
|
||||
start |= 0, end |= 0;
|
||||
for (var sum = 0, p = 0, q = 0, p = start << 3, q = end << 3; (0 | p) < (0 | q); p = p + 8 | 0) sum += +log(values[p >> 3]);
|
||||
for (var sum = 0, p = 0, q = 0, p = start << 3, q = end << 3; (0 | p) < (0 | q); p = p + 8 | 0)
|
||||
sum += +log(values[p >> 3]);
|
||||
return +sum;
|
||||
}
|
||||
function geometricMean(start, end) {
|
||||
|
||||
@@ -346,9 +346,8 @@ collapse_vars_if: {
|
||||
return "x" != "Bar" + x / 4 ? g9 : g5;
|
||||
}
|
||||
function f3(x) {
|
||||
if (x) {
|
||||
if (x)
|
||||
return 1;
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
@@ -4192,9 +4191,8 @@ issue_2436_11: {
|
||||
if (isCollection(arg1)) {
|
||||
var size = arg1, max = arg2, min = 0, res = _randomDataForMatrix(size.valueOf(), min, max, _randomInt);
|
||||
return size && true === size.isMatrix ? matrix(res) : res;
|
||||
} else {
|
||||
} else
|
||||
return _randomInt(min = arg1, max = arg2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4310,9 +4308,8 @@ issue_2497: {
|
||||
function sample() {
|
||||
if (true)
|
||||
for (var i = 0; i < 1; ++i)
|
||||
for (var k = 0; k < 1; ++k) {
|
||||
for (var k = 0; k < 1; ++k)
|
||||
value = (value = 1) ? value + 1 : 0;
|
||||
}
|
||||
else
|
||||
for (i = 0; i < 1; ++i)
|
||||
for (k = 0; k < 1; ++k)
|
||||
|
||||
@@ -55,14 +55,15 @@ ifs_3_should_warn: {
|
||||
}
|
||||
input: {
|
||||
var x, y;
|
||||
if (x && !(x + "1") && y) { // 1
|
||||
// 1
|
||||
if (x && !(x + "1") && y) {
|
||||
var qq;
|
||||
foo();
|
||||
} else {
|
||||
bar();
|
||||
}
|
||||
|
||||
if (x || !!(x + "1") || y) { // 2
|
||||
// 2
|
||||
if (x || !!(x + "1") || y) {
|
||||
foo();
|
||||
} else {
|
||||
var jj;
|
||||
@@ -71,9 +72,27 @@ ifs_3_should_warn: {
|
||||
}
|
||||
expect: {
|
||||
var x, y;
|
||||
var qq; bar(); // 1
|
||||
var jj; foo(); // 2
|
||||
// 1
|
||||
var qq; bar();
|
||||
// 2
|
||||
foo(); var jj;
|
||||
}
|
||||
expect_warnings: [
|
||||
"WARN: + in boolean context always true [test/compress/conditionals.js:3,18]",
|
||||
"WARN: Boolean && always false [test/compress/conditionals.js:3,12]",
|
||||
"WARN: Condition left of && always false [test/compress/conditionals.js:3,12]",
|
||||
"WARN: Condition always false [test/compress/conditionals.js:3,12]",
|
||||
"WARN: Dropping unreachable code [test/compress/conditionals.js:3,34]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/conditionals.js:4,12]",
|
||||
"WARN: + in boolean context always true [test/compress/conditionals.js:10,19]",
|
||||
"WARN: Boolean || always true [test/compress/conditionals.js:10,12]",
|
||||
"WARN: Condition left of || always true [test/compress/conditionals.js:10,12]",
|
||||
"WARN: Condition always true [test/compress/conditionals.js:10,12]",
|
||||
"WARN: Dropping unreachable code [test/compress/conditionals.js:12,15]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/conditionals.js:13,12]",
|
||||
"WARN: Dropping side-effect-free statement [test/compress/conditionals.js:3,12]",
|
||||
"WARN: Dropping side-effect-free statement [test/compress/conditionals.js:10,12]",
|
||||
]
|
||||
}
|
||||
|
||||
ifs_4: {
|
||||
|
||||
667
test/compress/const.js
Normal file
667
test/compress/const.js
Normal file
@@ -0,0 +1,667 @@
|
||||
mangle_catch_1: {
|
||||
mangle = {}
|
||||
input: {
|
||||
try {
|
||||
throw "eeeee";
|
||||
} catch (c) {
|
||||
const e = typeof d;
|
||||
}
|
||||
console.log(typeof a, typeof b);
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
throw "eeeee";
|
||||
} catch (e) {
|
||||
const o = typeof d;
|
||||
}
|
||||
console.log(typeof a, typeof b);
|
||||
}
|
||||
expect_stdout: "undefined undefined"
|
||||
}
|
||||
|
||||
mangle_catch_2: {
|
||||
mangle = {}
|
||||
input: {
|
||||
console.log(function f() {
|
||||
try {} catch (e) {
|
||||
const f = 0;
|
||||
}
|
||||
}());
|
||||
}
|
||||
expect: {
|
||||
console.log(function o() {
|
||||
try {} catch (c) {
|
||||
const o = 0;
|
||||
}
|
||||
}());
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
retain_block: {
|
||||
options = {}
|
||||
input: {
|
||||
{
|
||||
const a = "FAIL";
|
||||
}
|
||||
var a = "PASS";
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = "FAIL";
|
||||
}
|
||||
var a = "PASS";
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
if_dead_branch: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
dead_code: true,
|
||||
evaluate: true,
|
||||
}
|
||||
input: {
|
||||
console.log(function() {
|
||||
if (0) {
|
||||
const a = 0;
|
||||
}
|
||||
return typeof a;
|
||||
}());
|
||||
}
|
||||
expect: {
|
||||
console.log(function() {
|
||||
0;
|
||||
{
|
||||
const a = void 0;
|
||||
}
|
||||
return typeof a;
|
||||
}());
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
merge_vars_1: {
|
||||
options = {
|
||||
merge_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
const a = console;
|
||||
console.log(typeof a);
|
||||
var b = typeof a;
|
||||
console.log(b);
|
||||
}
|
||||
expect: {
|
||||
const a = console;
|
||||
console.log(typeof a);
|
||||
var b = typeof a;
|
||||
console.log(b);
|
||||
}
|
||||
expect_stdout: [
|
||||
"object",
|
||||
"object",
|
||||
]
|
||||
}
|
||||
|
||||
merge_vars_2: {
|
||||
options = {
|
||||
inline: true,
|
||||
merge_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
var a = 0;
|
||||
(function() {
|
||||
var b = function f() {
|
||||
const c = a && f;
|
||||
c.var += 0;
|
||||
}();
|
||||
console.log(b);
|
||||
})(1 && --a);
|
||||
}
|
||||
expect: {
|
||||
var a = 0;
|
||||
1 && --a,
|
||||
b = function f() {
|
||||
const c = a && f;
|
||||
c.var += 0;
|
||||
}(),
|
||||
void console.log(b);
|
||||
var b;
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
merge_vars_3: {
|
||||
options = {
|
||||
merge_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = 0;
|
||||
var b = console;
|
||||
console.log(typeof b);
|
||||
}
|
||||
var a = 1;
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = 0;
|
||||
var b = console;
|
||||
console.log(typeof b);
|
||||
}
|
||||
var a = 1;
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
reduce_merge_vars: {
|
||||
options = {
|
||||
merge_vars: true,
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
const a = console;
|
||||
console.log(typeof a);
|
||||
var b = typeof a;
|
||||
console.log(b);
|
||||
}
|
||||
expect: {
|
||||
var b = console;
|
||||
console.log(typeof b);
|
||||
b = typeof b;
|
||||
console.log(b);
|
||||
}
|
||||
expect_stdout: [
|
||||
"object",
|
||||
"object",
|
||||
]
|
||||
}
|
||||
|
||||
use_before_init_1: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
a = "foo";
|
||||
const a = "bar";
|
||||
}
|
||||
expect: {
|
||||
a = "foo";
|
||||
const a = "bar";
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
use_before_init_2: {
|
||||
options = {
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
try {
|
||||
a = "foo";
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = "bar";
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
a = "foo";
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = "bar";
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
use_before_init_3: {
|
||||
options = {
|
||||
side_effects: true,
|
||||
}
|
||||
input: {
|
||||
try {
|
||||
a;
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = 42;
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
a;
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = 42;
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
use_before_init_4: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
try {
|
||||
console.log(a);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = "FAIL";
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
console.log(a);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
const a = "FAIL";
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
collapse_block: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
pure_getters: "strict",
|
||||
unsafe: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
}
|
||||
expect_stdout: "object"
|
||||
}
|
||||
|
||||
reduce_block_1: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
}
|
||||
expect_stdout: "object"
|
||||
}
|
||||
|
||||
reduce_block_1_toplevel: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
var a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
expect_stdout: "object"
|
||||
}
|
||||
|
||||
reduce_block_2: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
reduce_block_2_toplevel: {
|
||||
options = {
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const a = typeof console;
|
||||
console.log(a);
|
||||
}
|
||||
console.log(typeof a);
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
hoist_props_1: {
|
||||
options = {
|
||||
hoist_props: true,
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const o = {
|
||||
p: "PASS",
|
||||
};
|
||||
console.log(o.p);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
{
|
||||
const o = {
|
||||
p: "PASS",
|
||||
};
|
||||
console.log(o.p);
|
||||
}
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
hoist_props_2: {
|
||||
options = {
|
||||
hoist_props: true,
|
||||
passes: 2,
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
}
|
||||
input: {
|
||||
{
|
||||
const o = {
|
||||
p: "PASS",
|
||||
};
|
||||
console.log(o.p);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
var o_p = "PASS";
|
||||
console.log(o_p);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
loop_block_1: {
|
||||
options = {
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
do {
|
||||
const o = console;
|
||||
console.log(typeof o.log);
|
||||
} while (!console);
|
||||
}
|
||||
expect: {
|
||||
do {
|
||||
const o = console;
|
||||
console.log(typeof o.log);
|
||||
} while (!console);
|
||||
}
|
||||
expect_stdout: "function"
|
||||
}
|
||||
|
||||
loop_block_2: {
|
||||
options = {
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
do {
|
||||
const o = {};
|
||||
(function() {
|
||||
console.log(typeof this, o.p++);
|
||||
})();
|
||||
} while (!console);
|
||||
}
|
||||
expect: {
|
||||
do {
|
||||
const o = {};
|
||||
(function() {
|
||||
console.log(typeof this, o.p++);
|
||||
})();
|
||||
} while (!console);
|
||||
}
|
||||
expect_stdout: "object NaN"
|
||||
}
|
||||
|
||||
do_continue: {
|
||||
options = {
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
try {
|
||||
do {
|
||||
{
|
||||
const a = 0;
|
||||
continue;
|
||||
}
|
||||
} while ([ A ]);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
do {
|
||||
const a = 0;
|
||||
continue;
|
||||
} while ([ A ]);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
catch_ie8_1: {
|
||||
options = {
|
||||
ie8: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
try {} catch (a) {}
|
||||
console.log(function a() {
|
||||
const a = 0;
|
||||
}());
|
||||
}
|
||||
expect: {
|
||||
try {} catch (a) {}
|
||||
console.log(function a() {
|
||||
}());
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
catch_ie8_2: {
|
||||
options = {
|
||||
dead_code: true,
|
||||
ie8: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
try {} catch (a) {
|
||||
const b = 0;
|
||||
}
|
||||
try {} catch (b) {}
|
||||
console.log(function() {
|
||||
return this;
|
||||
}().b);
|
||||
}
|
||||
expect: {
|
||||
console.log(function() {
|
||||
return this;
|
||||
}().b);
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
dead_block_after_return: {
|
||||
options = {
|
||||
dead_code: true,
|
||||
}
|
||||
input: {
|
||||
(function(a) {
|
||||
console.log(a);
|
||||
return;
|
||||
{
|
||||
const a = 0;
|
||||
}
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
(function(a) {
|
||||
console.log(a);
|
||||
return;
|
||||
{
|
||||
const a = void 0;
|
||||
}
|
||||
})();
|
||||
}
|
||||
expect_stdout: true
|
||||
}
|
||||
|
||||
const_to_var_scope_adjustment: {
|
||||
options = {
|
||||
conditionals: true,
|
||||
inline: true,
|
||||
reduce_vars: true,
|
||||
toplevel: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
for (var k in [ 42 ])
|
||||
console.log(function f() {
|
||||
if (k) {
|
||||
const a = 0;
|
||||
}
|
||||
}());
|
||||
}
|
||||
expect: {
|
||||
for (var k in [ 42 ])
|
||||
console.log(void (k && 0));
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
|
||||
do_if_continue_1: {
|
||||
options = {
|
||||
if_return: true,
|
||||
}
|
||||
input: {
|
||||
do {
|
||||
if (console) {
|
||||
console.log("PASS");
|
||||
{
|
||||
const a = 0;
|
||||
var b;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} while (b);
|
||||
}
|
||||
expect: {
|
||||
do {
|
||||
if (!console);
|
||||
else {
|
||||
console.log("PASS");
|
||||
{
|
||||
const a = 0;
|
||||
var b;
|
||||
}
|
||||
}
|
||||
} while (b);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
do_if_continue_2: {
|
||||
options = {
|
||||
if_return: true,
|
||||
}
|
||||
input: {
|
||||
do {
|
||||
if (console) {
|
||||
console.log("PASS");
|
||||
{
|
||||
const a = 0;
|
||||
A = 0;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} while (A);
|
||||
}
|
||||
expect: {
|
||||
do {
|
||||
if (!console);
|
||||
else {
|
||||
console.log("PASS");
|
||||
{
|
||||
const a = 0;
|
||||
A = 0;
|
||||
}
|
||||
}
|
||||
} while (A);
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
drop_unused: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
side_effects: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f(a) {
|
||||
const b = a, c = b;
|
||||
0 && c.p++;
|
||||
}
|
||||
console.log(f());
|
||||
}
|
||||
expect: {
|
||||
function f(a) {
|
||||
const b = a;
|
||||
b;
|
||||
}
|
||||
console.log(f());
|
||||
}
|
||||
expect_stdout: "undefined"
|
||||
}
|
||||
@@ -59,6 +59,11 @@ dead_code_2_should_warn: {
|
||||
f();
|
||||
}
|
||||
expect_stdout: true
|
||||
expect_warnings: [
|
||||
"WARN: Dropping unreachable code [test/compress/dead-code.js:8,12]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/dead-code.js:10,16]",
|
||||
"WARN: Dropping unreachable code [test/compress/dead-code.js:10,16]",
|
||||
]
|
||||
node_version: "<=4"
|
||||
}
|
||||
|
||||
@@ -89,11 +94,23 @@ dead_code_constant_boolean_should_warn_more: {
|
||||
function bar() {}
|
||||
// nothing for the while
|
||||
// as for the for, it should keep:
|
||||
var moo;
|
||||
var x = 10, y;
|
||||
var moo;
|
||||
bar();
|
||||
}
|
||||
expect_stdout: true
|
||||
expect_warnings: [
|
||||
"WARN: + in boolean context always true [test/compress/dead-code.js:1,33]",
|
||||
"WARN: Boolean || always true [test/compress/dead-code.js:1,16]",
|
||||
"WARN: Dropping unreachable code [test/compress/dead-code.js:1,45]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/dead-code.js:3,12]",
|
||||
"WARN: Boolean expression always true [test/compress/dead-code.js:6,47]",
|
||||
"WARN: Boolean && always false [test/compress/dead-code.js:6,28]",
|
||||
"WARN: Dropping unreachable code [test/compress/dead-code.js:6,63]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/dead-code.js:9,12]",
|
||||
"WARN: Dropping side-effect-free statement [test/compress/dead-code.js:1,15]",
|
||||
"WARN: Dropping side-effect-free statement [test/compress/dead-code.js:6,28]",
|
||||
]
|
||||
node_version: "<=4"
|
||||
}
|
||||
|
||||
|
||||
@@ -90,13 +90,13 @@ non_hoisted_function_after_return_2a: {
|
||||
"WARN: Declarations in unreachable code! [test/compress/issue-1034.js:7,16]",
|
||||
"WARN: Dropping unused variable a [test/compress/issue-1034.js:4,20]",
|
||||
"WARN: Dropping unused function nope [test/compress/issue-1034.js:11,21]",
|
||||
"INFO: pass 0: last_count: Infinity, count: 36",
|
||||
"INFO: pass 0: last_count: Infinity, count: 35",
|
||||
"WARN: Dropping unreachable code [test/compress/issue-1034.js:9,12]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/issue-1034.js:9,12]",
|
||||
"WARN: Dropping unreachable code [test/compress/issue-1034.js:12,12]",
|
||||
"INFO: Dropping unused variable b [test/compress/issue-1034.js:7,20]",
|
||||
"INFO: Dropping unused variable c [test/compress/issue-1034.js:9,16]",
|
||||
"INFO: pass 1: last_count: 36, count: 18",
|
||||
"INFO: pass 1: last_count: 35, count: 18",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -248,13 +248,13 @@ non_hoisted_function_after_return_2a_strict: {
|
||||
"WARN: Declarations in unreachable code! [test/compress/issue-1034.js:8,16]",
|
||||
"WARN: Dropping unused variable a [test/compress/issue-1034.js:5,20]",
|
||||
"WARN: Dropping unused function nope [test/compress/issue-1034.js:12,21]",
|
||||
"INFO: pass 0: last_count: Infinity, count: 47",
|
||||
"INFO: pass 0: last_count: Infinity, count: 46",
|
||||
"WARN: Dropping unreachable code [test/compress/issue-1034.js:10,12]",
|
||||
"WARN: Declarations in unreachable code! [test/compress/issue-1034.js:10,12]",
|
||||
"WARN: Dropping unreachable code [test/compress/issue-1034.js:13,12]",
|
||||
"INFO: Dropping unused variable b [test/compress/issue-1034.js:8,20]",
|
||||
"INFO: Dropping unused variable c [test/compress/issue-1034.js:10,16]",
|
||||
"INFO: pass 1: last_count: 47, count: 29",
|
||||
"INFO: pass 1: last_count: 46, count: 29",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -547,8 +547,8 @@ dead_code_condition: {
|
||||
console.log(a);
|
||||
}
|
||||
expect: {
|
||||
var c;
|
||||
var a = 0, b = 5;
|
||||
var c;
|
||||
a += 1, 0,
|
||||
console.log(a);
|
||||
}
|
||||
@@ -1197,3 +1197,28 @@ issue_4182_2: {
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
do_continue: {
|
||||
options = {
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
try {
|
||||
do {
|
||||
continue;
|
||||
} while ([ A ]);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
try {
|
||||
do {
|
||||
continue;
|
||||
} while ([ A ]);
|
||||
} catch (e) {
|
||||
console.log("PASS");
|
||||
}
|
||||
}
|
||||
expect_stdout: "PASS"
|
||||
}
|
||||
|
||||
@@ -848,9 +848,8 @@ collapse_vars_1_true: {
|
||||
}
|
||||
expect: {
|
||||
function f(a, b) {
|
||||
for (;;) {
|
||||
for (;;)
|
||||
if (a.g() || b.p) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user