enable collapse_vars & reduce_vars by default

- fix corner cases in `const` optimisation
- deprecate `/*@const*/`

fixes #1497
closes #1498
This commit is contained in:
alexlamsl
2017-02-24 01:46:57 +08:00
parent 1e51586996
commit 4e49302916
8 changed files with 56 additions and 25 deletions

View File

@@ -12,6 +12,7 @@ issue_1191: {
join_vars : true,
sequences : false,
collapse_vars : false,
reduce_vars : true,
}
input: {
function foo(rot) {
@@ -43,6 +44,7 @@ issue_1194: {
join_vars : true,
sequences : false,
collapse_vars : false,
reduce_vars : true,
}
input: {
function f1() {const a = "X"; return a + a;}
@@ -70,6 +72,7 @@ issue_1396: {
join_vars : true,
sequences : false,
collapse_vars : false,
reduce_vars : true,
}
input: {
function foo(a) {
@@ -140,6 +143,7 @@ regexp_literal_not_const: {
join_vars : true,
sequences : false,
collapse_vars : false,
reduce_vars : true,
}
input: {
(function(){

View File

@@ -94,7 +94,8 @@ dead_code_const_declaration: {
loops : true,
booleans : true,
conditionals : true,
evaluate : true
evaluate : true,
reduce_vars : true,
};
input: {
var unused;
@@ -119,7 +120,8 @@ dead_code_const_annotation: {
loops : true,
booleans : true,
conditionals : true,
evaluate : true
evaluate : true,
reduce_vars : true,
};
input: {
var unused;
@@ -167,7 +169,8 @@ dead_code_const_annotation_complex_scope: {
loops : true,
booleans : true,
conditionals : true,
evaluate : true
evaluate : true,
reduce_vars : true,
};
input: {
var unused_var;
@@ -201,6 +204,5 @@ dead_code_const_annotation_complex_scope: {
var beef = 'good';
var meat = 'beef';
var pork = 'bad';
'good' === pork && console.log('reached, not const');
}
}

View File

@@ -648,3 +648,34 @@ drop_value: {
foo(), bar();
}
}
const_assign: {
options = {
evaluate: true,
reduce_vars: true,
unused: true,
}
input: {
function f() {
const b = 2;
return 1 + b;
}
function g() {
const b = 2;
b = 3;
return 1 + b;
}
}
expect: {
function f() {
return 3;
}
function g() {
const b = 2;
b = 3;
return 1 + b;
}
}
}

View File

@@ -602,6 +602,7 @@ unsafe_prototype_function: {
call_args: {
options = {
evaluate: true,
reduce_vars: true,
}
input: {
const a = 1;

View File

@@ -13,7 +13,8 @@ const_declaration: {
const_pragma: {
options = {
evaluate: true
evaluate: true,
reduce_vars: true,
};
input: {
@@ -27,7 +28,8 @@ const_pragma: {
// for completeness' sake
not_const: {
options = {
evaluate: true
evaluate: true,
reduce_vars: true,
};
input: {