collapse_vars: Do not consider RegExp literals to be constants

Fixes #1100
This commit is contained in:
kzc
2016-05-26 14:47:16 -04:00
parent 1e390269d4
commit 09d5707a8a
2 changed files with 57 additions and 1 deletions

View File

@@ -1153,3 +1153,59 @@ collapse_vars_short_circuited_conditions: {
}
}
collapse_vars_regexp: {
options = {
collapse_vars: true,
loops: false,
sequences: true,
dead_code: true,
conditionals: true,
comparisons: true,
evaluate: true,
booleans: true,
unused: true,
hoist_funs: true,
keep_fargs: true,
if_return: true,
join_vars: true,
cascade: true,
side_effects: true,
}
input: {
function f1() {
var k = 9;
var rx = /[A-Z]+/;
return [rx, k];
}
function f2() {
var rx = /[abc123]+/;
return function(s) {
return rx.exec(s);
};
}
(function(){
var result;
var s = 'acdabcdeabbb';
var rx = /ab*/g;
while (result = rx.exec(s)) {
console.log(result[0]);
}
})();
}
expect: {
function f1() {
return [/[A-Z]+/, 9];
}
function f2() {
var rx = /[abc123]+/;
return function(s) {
return rx.exec(s);
};
}
(function(){
var result, rx = /ab*/g;
while (result = rx.exec('acdabcdeabbb'))
console.log(result[0]);
})();
}
}