Merge branch 'master' into harmony-v2.8.5
This commit is contained in:
@@ -1141,7 +1141,7 @@ collapse_vars_constants: {
|
||||
function f3(x) {
|
||||
var b = x.prop;
|
||||
sideeffect1();
|
||||
return b + (function() { return -9; })();
|
||||
return b + -9;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1315,3 +1315,31 @@ collapse_vars_regexp: {
|
||||
})();
|
||||
}
|
||||
}
|
||||
|
||||
issue_1537: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
var k = '';
|
||||
for (k in {prop: 'val'}){}
|
||||
}
|
||||
expect: {
|
||||
var k = '';
|
||||
for (k in {prop: 'val'});
|
||||
}
|
||||
}
|
||||
|
||||
issue_1537_for_of: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
}
|
||||
input: {
|
||||
var k = '';
|
||||
for (k of {prop: 'val'}){}
|
||||
}
|
||||
expect: {
|
||||
var k = '';
|
||||
for (k of {prop: 'val'});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,3 +164,53 @@ concat_6: {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
concat_7: {
|
||||
input: {
|
||||
console.log(
|
||||
"" + 1,
|
||||
"" + "1",
|
||||
"" + 1 + 2,
|
||||
"" + 1 + "2",
|
||||
"" + "1" + 2,
|
||||
"" + "1" + "2",
|
||||
"" + (x += "foo")
|
||||
);
|
||||
}
|
||||
expect: {
|
||||
console.log(
|
||||
"" + 1,
|
||||
"1",
|
||||
"" + 1 + 2,
|
||||
1 + "2",
|
||||
"1" + 2,
|
||||
"1" + "2",
|
||||
x += "foo"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
concat_8: {
|
||||
input: {
|
||||
console.log(
|
||||
1 + "",
|
||||
"1" + "",
|
||||
1 + 2 + "",
|
||||
1 + "2" + "",
|
||||
"1" + 2 + "",
|
||||
"1" + "2" + "",
|
||||
(x += "foo") + ""
|
||||
);
|
||||
}
|
||||
expect: {
|
||||
console.log(
|
||||
1 + "",
|
||||
"1",
|
||||
1 + 2 + "",
|
||||
1 + "2",
|
||||
"1" + 2,
|
||||
"1" + "2",
|
||||
x += "foo"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -760,3 +760,24 @@ const_assign: {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
issue_1539: {
|
||||
options = {
|
||||
cascade: true,
|
||||
sequences: true,
|
||||
side_effects: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
function f() {
|
||||
var a, b;
|
||||
a = b = 42;
|
||||
return a;
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
function f() {
|
||||
return 42;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -740,6 +740,29 @@ call_args: {
|
||||
}
|
||||
}
|
||||
|
||||
call_args_drop_param: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
keep_fargs: false,
|
||||
reduce_vars: true,
|
||||
unused: true,
|
||||
}
|
||||
input: {
|
||||
const a = 1;
|
||||
console.log(a);
|
||||
+function(a) {
|
||||
return a;
|
||||
}(a, b);
|
||||
}
|
||||
expect: {
|
||||
const a = 1;
|
||||
console.log(1);
|
||||
+function() {
|
||||
return 1;
|
||||
}(b);
|
||||
}
|
||||
}
|
||||
|
||||
in_boolean_context: {
|
||||
options = {
|
||||
booleans: true,
|
||||
|
||||
@@ -6,3 +6,71 @@ non_ascii_function_identifier_name: {
|
||||
}
|
||||
expect_exact: "function fooλ(δλ){}function λ(δλ){}(function λ(δλ){})();"
|
||||
}
|
||||
|
||||
iifes_returning_constants_keep_fargs_true: {
|
||||
options = {
|
||||
keep_fargs : true,
|
||||
side_effects : true,
|
||||
evaluate : true,
|
||||
unused : true,
|
||||
dead_code : true,
|
||||
conditionals : true,
|
||||
comparisons : true,
|
||||
booleans : true,
|
||||
if_return : true,
|
||||
join_vars : true,
|
||||
reduce_vars : true,
|
||||
cascade : true,
|
||||
}
|
||||
input: {
|
||||
(function(){ return -1.23; }());
|
||||
console.log( function foo(){ return "okay"; }() );
|
||||
console.log( function foo(x, y, z){ return 123; }() );
|
||||
console.log( function(x, y, z){ return z; }() );
|
||||
console.log( function(x, y, z){ if (x) return y; return z; }(1, 2, 3) );
|
||||
console.log( function(x, y){ return x * y; }(2, 3) );
|
||||
console.log( function(x, y){ return x * y; }(2, 3, a(), b()) );
|
||||
}
|
||||
expect: {
|
||||
console.log("okay");
|
||||
console.log(123);
|
||||
console.log(void 0);
|
||||
console.log(function(x,y,z){return 2}(1,2,3));
|
||||
console.log(function(x,y){return 6}(2,3));
|
||||
console.log(function(x, y){return 6}(2,3,a(),b()));
|
||||
}
|
||||
}
|
||||
|
||||
iifes_returning_constants_keep_fargs_false: {
|
||||
options = {
|
||||
keep_fargs : false,
|
||||
side_effects : true,
|
||||
evaluate : true,
|
||||
unused : true,
|
||||
dead_code : true,
|
||||
conditionals : true,
|
||||
comparisons : true,
|
||||
booleans : true,
|
||||
if_return : true,
|
||||
join_vars : true,
|
||||
reduce_vars : true,
|
||||
cascade : true,
|
||||
}
|
||||
input: {
|
||||
(function(){ return -1.23; }());
|
||||
console.log( function foo(){ return "okay"; }() );
|
||||
console.log( function foo(x, y, z){ return 123; }() );
|
||||
console.log( function(x, y, z){ return z; }() );
|
||||
console.log( function(x, y, z){ if (x) return y; return z; }(1, 2, 3) );
|
||||
console.log( function(x, y){ return x * y; }(2, 3) );
|
||||
console.log( function(x, y){ return x * y; }(2, 3, a(), b()) );
|
||||
}
|
||||
expect: {
|
||||
console.log("okay");
|
||||
console.log(123);
|
||||
console.log(void 0);
|
||||
console.log(2);
|
||||
console.log(6);
|
||||
console.log(function(){return 6}(a(),b()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,6 +213,30 @@ evaluate: {
|
||||
a();
|
||||
for(;;)
|
||||
c();
|
||||
d();
|
||||
// rule disabled due to issue_1532
|
||||
do d(); while (false);
|
||||
}
|
||||
}
|
||||
|
||||
issue_1532: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
loops: true,
|
||||
}
|
||||
input: {
|
||||
function f(x, y) {
|
||||
do {
|
||||
if (x) break;
|
||||
foo();
|
||||
} while (false);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
function f(x, y) {
|
||||
do {
|
||||
if (x) break;
|
||||
foo();
|
||||
} while (false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,10 +38,10 @@ negate_iife_3: {
|
||||
conditionals: true
|
||||
};
|
||||
input: {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
(function(){ return t })() ? console.log(true) : console.log(false);
|
||||
}
|
||||
expect: {
|
||||
!function(){ return true }() ? console.log(false) : console.log(true);
|
||||
!function(){ return t }() ? console.log(false) : console.log(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,10 +51,10 @@ negate_iife_3_off: {
|
||||
conditionals: true,
|
||||
};
|
||||
input: {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
(function(){ return t })() ? console.log(true) : console.log(false);
|
||||
}
|
||||
expect: {
|
||||
!function(){ return true }() ? console.log(false) : console.log(true);
|
||||
!function(){ return t }() ? console.log(false) : console.log(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,13 +65,13 @@ negate_iife_4: {
|
||||
sequences: true
|
||||
};
|
||||
input: {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
(function(){ return t })() ? console.log(true) : console.log(false);
|
||||
(function(){
|
||||
console.log("something");
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
!function(){ return true }() ? console.log(false) : console.log(true), function(){
|
||||
!function(){ return t }() ? console.log(false) : console.log(true), function(){
|
||||
console.log("something");
|
||||
}();
|
||||
}
|
||||
@@ -86,7 +86,7 @@ sequence_off: {
|
||||
};
|
||||
input: {
|
||||
function f() {
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
(function(){ return t })() ? console.log(true) : console.log(false);
|
||||
(function(){
|
||||
console.log("something");
|
||||
})();
|
||||
@@ -95,19 +95,19 @@ sequence_off: {
|
||||
(function(){
|
||||
console.log("something");
|
||||
})();
|
||||
(function(){ return true })() ? console.log(true) : console.log(false);
|
||||
(function(){ return t })() ? console.log(true) : console.log(false);
|
||||
}
|
||||
}
|
||||
expect: {
|
||||
function f() {
|
||||
!function(){ return true }() ? console.log(false) : console.log(true), function(){
|
||||
!function(){ return t }() ? console.log(false) : console.log(true), function(){
|
||||
console.log("something");
|
||||
}();
|
||||
}
|
||||
function g() {
|
||||
(function(){
|
||||
console.log("something");
|
||||
})(), function(){ return true }() ? console.log(true) : console.log(false);
|
||||
})(), function(){ return t }() ? console.log(true) : console.log(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,7 +119,7 @@ negate_iife_5: {
|
||||
conditionals: true,
|
||||
};
|
||||
input: {
|
||||
if ((function(){ return true })()) {
|
||||
if ((function(){ return t })()) {
|
||||
foo(true);
|
||||
} else {
|
||||
bar(false);
|
||||
@@ -129,7 +129,7 @@ negate_iife_5: {
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
!function(){ return true }() ? bar(false) : foo(true), function(){
|
||||
!function(){ return t }() ? bar(false) : foo(true), function(){
|
||||
console.log("something");
|
||||
}();
|
||||
}
|
||||
@@ -142,7 +142,7 @@ negate_iife_5_off: {
|
||||
conditionals: true,
|
||||
};
|
||||
input: {
|
||||
if ((function(){ return true })()) {
|
||||
if ((function(){ return t })()) {
|
||||
foo(true);
|
||||
} else {
|
||||
bar(false);
|
||||
@@ -152,7 +152,7 @@ negate_iife_5_off: {
|
||||
})();
|
||||
}
|
||||
expect: {
|
||||
!function(){ return true }() ? bar(false) : foo(true), function(){
|
||||
!function(){ return t }() ? bar(false) : foo(true), function(){
|
||||
console.log("something");
|
||||
}();
|
||||
}
|
||||
|
||||
@@ -563,7 +563,7 @@ inner_var_for: {
|
||||
}
|
||||
}
|
||||
|
||||
inner_var_for_in: {
|
||||
inner_var_for_in_1: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
reduce_vars: true,
|
||||
@@ -589,3 +589,54 @@ inner_var_for_in: {
|
||||
x(1, b, c, d);
|
||||
}
|
||||
}
|
||||
|
||||
inner_var_for_in_2: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
for (var long_name in {})
|
||||
console.log(long_name);
|
||||
}
|
||||
expect: {
|
||||
for (var long_name in {})
|
||||
console.log(long_name);
|
||||
}
|
||||
}
|
||||
|
||||
issue_1533_1: {
|
||||
options = {
|
||||
collapse_vars: true,
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
var id = "";
|
||||
for (id in {break: "me"})
|
||||
console.log(id);
|
||||
}
|
||||
expect: {
|
||||
var id = "";
|
||||
for (id in {break: "me"})
|
||||
console.log(id);
|
||||
}
|
||||
}
|
||||
|
||||
issue_1533_2: {
|
||||
options = {
|
||||
evaluate: true,
|
||||
reduce_vars: true,
|
||||
}
|
||||
input: {
|
||||
var id = "";
|
||||
for (var id in {break: "me"})
|
||||
console.log(id);
|
||||
console.log(id);
|
||||
}
|
||||
expect: {
|
||||
var id = "";
|
||||
for (var id in {break: "me"})
|
||||
console.log(id);
|
||||
console.log(id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user