aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ast.js16
-rw-r--r--lib/compress.js19
-rw-r--r--lib/mozilla-ast.js6
-rw-r--r--lib/output.js3
-rw-r--r--lib/parse.js22
-rw-r--r--lib/scope.js7
-rw-r--r--test/compress/collapse_vars.js56
-rw-r--r--test/compress/const.js166
-rw-r--r--test/compress/dead-code.js125
-rw-r--r--test/compress/drop-unused.js64
-rw-r--r--test/compress/evaluate.js9
-rw-r--r--test/compress/global_defs.js4
-rw-r--r--test/compress/issue-1041.js13
-rw-r--r--test/compress/issue-1588.js12
-rw-r--r--test/compress/issue-208.js6
-rw-r--r--test/compress/loops.js44
-rw-r--r--test/compress/reduce_vars.js8
-rw-r--r--test/compress/sequences.js24
-rw-r--r--test/input/invalid/const.js8
-rw-r--r--test/mocha/cli.js15
20 files changed, 36 insertions, 591 deletions
diff --git a/lib/ast.js b/lib/ast.js
index 962c8f7b..57956233 100644
--- a/lib/ast.js
+++ b/lib/ast.js
@@ -495,10 +495,10 @@ var AST_Finally = DEFNODE("Finally", null, {
$documentation: "A `finally` node; only makes sense as part of a `try` statement"
}, AST_Block);
-/* -----[ VAR/CONST ]----- */
+/* -----[ VAR ]----- */
var AST_Definitions = DEFNODE("Definitions", "definitions", {
- $documentation: "Base class for `var` or `const` nodes (variable declarations/initializations)",
+ $documentation: "Base class for `var` nodes (variable declarations/initializations)",
$propdoc: {
definitions: "[AST_VarDef*] array of variable definitions"
},
@@ -516,14 +516,10 @@ var AST_Var = DEFNODE("Var", null, {
$documentation: "A `var` statement"
}, AST_Definitions);
-var AST_Const = DEFNODE("Const", null, {
- $documentation: "A `const` statement"
-}, AST_Definitions);
-
var AST_VarDef = DEFNODE("VarDef", "name value", {
$documentation: "A variable declaration; only appears in a AST_Definitions node",
$propdoc: {
- name: "[AST_SymbolVar|AST_SymbolConst] name of the variable",
+ name: "[AST_SymbolVar] name of the variable",
value: "[AST_Node?] initializer, or null of there's no initializer"
},
_walk: function(visitor) {
@@ -728,17 +724,13 @@ var AST_SymbolAccessor = DEFNODE("SymbolAccessor", null, {
}, AST_Symbol);
var AST_SymbolDeclaration = DEFNODE("SymbolDeclaration", "init", {
- $documentation: "A declaration symbol (symbol in var/const, function name or argument, symbol in catch)",
+ $documentation: "A declaration symbol (symbol in var, function name or argument, symbol in catch)",
}, AST_Symbol);
var AST_SymbolVar = DEFNODE("SymbolVar", null, {
$documentation: "Symbol defining a variable",
}, AST_SymbolDeclaration);
-var AST_SymbolConst = DEFNODE("SymbolConst", null, {
- $documentation: "A constant declaration"
-}, AST_SymbolDeclaration);
-
var AST_SymbolFunarg = DEFNODE("SymbolFunarg", null, {
$documentation: "Symbol naming a function argument",
}, AST_SymbolVar);
diff --git a/lib/compress.js b/lib/compress.js
index 1ded032b..892bceef 100644
--- a/lib/compress.js
+++ b/lib/compress.js
@@ -479,8 +479,7 @@ merge(Compressor.prototype, {
if (def.fixed === false) return false;
if (def.fixed != null && (!value || def.references.length > 0)) return false;
return !def.orig.some(function(sym) {
- return sym instanceof AST_SymbolConst
- || sym instanceof AST_SymbolDefun
+ return sym instanceof AST_SymbolDefun
|| sym instanceof AST_SymbolLambda;
});
}
@@ -497,7 +496,7 @@ merge(Compressor.prototype, {
def.escaped = false;
if (def.scope.uses_eval) {
def.fixed = false;
- } else if (!def.global || def.orig[0] instanceof AST_SymbolConst || compressor.toplevel(def)) {
+ } else if (!def.global || compressor.toplevel(def)) {
def.fixed = undefined;
} else {
def.fixed = false;
@@ -531,14 +530,6 @@ merge(Compressor.prototype, {
return lhs instanceof AST_SymbolRef && lhs.definition().orig[0] instanceof AST_SymbolLambda;
}
- function is_reference_const(ref) {
- if (!(ref instanceof AST_SymbolRef)) return false;
- var orig = ref.definition().orig;
- for (var i = orig.length; --i >= 0;) {
- if (orig[i] instanceof AST_SymbolConst) return true;
- }
- }
-
function find_variable(compressor, name) {
var scope, i = 0;
while (scope = compressor.parent(i++)) {
@@ -804,8 +795,7 @@ merge(Compressor.prototype, {
return make_node(AST_SymbolRef, expr.name, expr.name);
}
} else {
- var lhs = expr[expr instanceof AST_Assign ? "left" : "expression"];
- return !is_reference_const(lhs) && lhs;
+ return expr[expr instanceof AST_Assign ? "left" : "expression"];
}
}
@@ -1988,7 +1978,6 @@ merge(Compressor.prototype, {
&& node instanceof AST_Assign
&& node.operator == "="
&& node.left instanceof AST_SymbolRef
- && !is_reference_const(node.left)
&& scope === self) {
node.right.walk(tw);
return true;
@@ -3194,7 +3183,7 @@ merge(Compressor.prototype, {
&& (left.operator == "++" || left.operator == "--")) {
left = left.expression;
} else left = null;
- if (!left || is_lhs_read_only(left) || is_reference_const(left)) {
+ if (!left || is_lhs_read_only(left)) {
expressions[++i] = cdr;
continue;
}
diff --git a/lib/mozilla-ast.js b/lib/mozilla-ast.js
index e97d6191..7d246758 100644
--- a/lib/mozilla-ast.js
+++ b/lib/mozilla-ast.js
@@ -172,7 +172,7 @@
});
},
VariableDeclaration: function(M) {
- return new (M.kind === "const" ? AST_Const : AST_Var)({
+ return new AST_Var({
start : my_start_token(M),
end : my_end_token(M),
definitions : M.declarations.map(from_moz)
@@ -208,7 +208,7 @@
Identifier: function(M) {
var p = FROM_MOZ_STACK[FROM_MOZ_STACK.length - 2];
return new ( p.type == "LabeledStatement" ? AST_Label
- : p.type == "VariableDeclarator" && p.id === M ? (p.kind == "const" ? AST_SymbolConst : AST_SymbolVar)
+ : p.type == "VariableDeclarator" && p.id === M ? AST_SymbolVar
: p.type == "FunctionExpression" ? (p.id === M ? AST_SymbolLambda : AST_SymbolFunarg)
: p.type == "FunctionDeclaration" ? (p.id === M ? AST_SymbolDefun : AST_SymbolFunarg)
: p.type == "CatchClause" ? AST_SymbolCatch
@@ -331,7 +331,7 @@
def_to_moz(AST_Definitions, function To_Moz_VariableDeclaration(M) {
return {
type: "VariableDeclaration",
- kind: M instanceof AST_Const ? "const" : "var",
+ kind: "var",
declarations: M.definitions.map(to_moz)
};
});
diff --git a/lib/output.js b/lib/output.js
index 33f4c533..0b98825f 100644
--- a/lib/output.js
+++ b/lib/output.js
@@ -1033,9 +1033,6 @@ function OutputStream(options) {
DEFPRINT(AST_Var, function(self, output){
self._do_print(output, "var");
});
- DEFPRINT(AST_Const, function(self, output){
- self._do_print(output, "const");
- });
function parenthesize_for_noin(node, output, noin) {
if (!noin) node.print(output);
diff --git a/lib/parse.js b/lib/parse.js
index 3493f8e6..c432ad7a 100644
--- a/lib/parse.js
+++ b/lib/parse.js
@@ -916,9 +916,6 @@ function parse($TEXT, options) {
case "var":
return tmp = var_(), semicolon(), tmp;
- case "const":
- return tmp = const_(), semicolon(), tmp;
-
case "with":
if (S.input.has_directive("use strict")) {
croak("Strict mode may not include a with statement");
@@ -1153,16 +1150,13 @@ function parse($TEXT, options) {
});
};
- function vardefs(no_in, in_const) {
+ function vardefs(no_in) {
var a = [];
for (;;) {
a.push(new AST_VarDef({
start : S.token,
- name : as_symbol(in_const ? AST_SymbolConst : AST_SymbolVar),
- value : is("operator", "=")
- ? (next(), expression(false, no_in))
- : in_const && S.input.has_directive("use strict")
- ? croak("Missing initializer in const declaration") : null,
+ name : as_symbol(AST_SymbolVar),
+ value : is("operator", "=") ? (next(), expression(false, no_in)) : null,
end : prev()
}));
if (!is("punc", ","))
@@ -1175,15 +1169,7 @@ function parse($TEXT, options) {
var var_ = function(no_in) {
return new AST_Var({
start : prev(),
- definitions : vardefs(no_in, false),
- end : prev()
- });
- };
-
- var const_ = function() {
- return new AST_Const({
- start : prev(),
- definitions : vardefs(false, true),
+ definitions : vardefs(no_in),
end : prev()
});
};
diff --git a/lib/scope.js b/lib/scope.js
index c8d7c6bb..ea08d775 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -156,8 +156,7 @@ AST_Toplevel.DEFMETHOD("figure_out_scope", function(options){
// later.
(node.scope = defun.parent_scope).def_function(node);
}
- else if (node instanceof AST_SymbolVar
- || node instanceof AST_SymbolConst) {
+ else if (node instanceof AST_SymbolVar) {
defun.def_variable(node);
if (defun !== scope) {
node.mark_enclosed(options);
@@ -268,7 +267,7 @@ AST_Scope.DEFMETHOD("init_scope_vars", function(parent_scope){
AST_Lambda.DEFMETHOD("init_scope_vars", function(){
AST_Scope.prototype.init_scope_vars.apply(this, arguments);
this.uses_arguments = false;
- this.def_variable(new AST_SymbolConst({
+ this.def_variable(new AST_SymbolFunarg({
name: "arguments",
start: this.start,
end: this.end
@@ -491,8 +490,6 @@ AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options){
}
else if (node instanceof AST_Var)
base54.consider("var");
- else if (node instanceof AST_Const)
- base54.consider("const");
else if (node instanceof AST_Lambda)
base54.consider("function");
else if (node instanceof AST_For)
diff --git a/test/compress/collapse_vars.js b/test/compress/collapse_vars.js
index 0d578d7d..90d7ac93 100644
--- a/test/compress/collapse_vars.js
+++ b/test/compress/collapse_vars.js
@@ -583,8 +583,8 @@ collapse_vars_assignment: {
return a = a;
}
function f1(c) {
- const a = 3 / c;
- const b = 1 - a;
+ var a = 3 / c;
+ var b = 1 - a;
return b;
}
function f2(c) {
@@ -724,10 +724,10 @@ collapse_vars_misc1: {
return t;
}
function f1(x) { var y = 5 - x; return y; }
- function f2(x) { const z = foo(), y = z / (5 - x); return y; }
+ function f2(x) { var z = foo(), y = z / (5 - x); return y; }
function f3(x) { var z = foo(), y = (5 - x) / z; return y; }
function f4(x) { var z = foo(), y = (5 - u) / z; return y; }
- function f5(x) { const z = foo(), y = (5 - window.x) / z; return y; }
+ function f5(x) { var z = foo(), y = (5 - window.x) / z; return y; }
function f6() { var b = window.a * window.z; return b && zap(); }
function f7() { var b = window.a * window.z; return b + b; }
function f8() { var b = window.a * window.z; var c = b + 5; return b + c; }
@@ -744,7 +744,7 @@ collapse_vars_misc1: {
function f2(x) { return foo() / (5 - x) }
function f3(x) { return (5 - x) / foo() }
function f4(x) { var z = foo(); return (5 - u) / z }
- function f5(x) { const z = foo(); return (5 - window.x) / z }
+ function f5(x) { var z = foo(); return (5 - window.x) / z }
function f6() { return window.a * window.z && zap() }
function f7() { var b = window.a * window.z; return b + b }
function f8() { var b = window.a * window.z; return b + (b + 5) }
@@ -2186,49 +2186,3 @@ compound_assignment: {
}
expect_stdout: "4"
}
-
-reassign_const_1: {
- options = {
- collapse_vars: true,
- }
- input: {
- function f() {
- const a = 1;
- a = 2;
- return a;
- }
- console.log(f());
- }
- expect: {
- function f() {
- const a = 1;
- a = 2;
- return a;
- }
- console.log(f());
- }
- expect_stdout: true
-}
-
-reassign_const_2: {
- options = {
- collapse_vars: true,
- }
- input: {
- function f() {
- const a = 1;
- ++a;
- return a;
- }
- console.log(f());
- }
- expect: {
- function f() {
- const a = 1;
- ++a;
- return a;
- }
- console.log(f());
- }
- expect_stdout: true
-}
diff --git a/test/compress/const.js b/test/compress/const.js
deleted file mode 100644
index a88d5946..00000000
--- a/test/compress/const.js
+++ /dev/null
@@ -1,166 +0,0 @@
-issue_1191: {
- options = {
- evaluate : true,
- booleans : true,
- comparisons : true,
- dead_code : true,
- conditionals : true,
- side_effects : true,
- unused : true,
- hoist_funs : true,
- if_return : true,
- join_vars : true,
- sequences : false,
- collapse_vars : false,
- reduce_vars : true,
- }
- input: {
- function foo(rot) {
- const rotTol = 5;
- if (rot < -rotTol || rot > rotTol)
- bar();
- baz();
- }
- }
- expect: {
- function foo(rot) {
- (rot < -5 || rot > 5) && bar();
- baz();
- }
- }
-}
-
-issue_1194: {
- options = {
- evaluate : true,
- booleans : true,
- comparisons : true,
- dead_code : true,
- conditionals : true,
- side_effects : true,
- unused : true,
- hoist_funs : true,
- if_return : true,
- join_vars : true,
- sequences : false,
- collapse_vars : false,
- reduce_vars : true,
- }
- input: {
- function f1() {const a = "X"; return a + a;}
- function f2() {const aa = "X"; return aa + aa;}
- function f3() {const aaa = "X"; return aaa + aaa;}
- }
- expect: {
- function f1(){return"XX"}
- function f2(){return"XX"}
- function f3(){return"XX"}
- }
-}
-
-issue_1396: {
- options = {
- evaluate : true,
- booleans : true,
- comparisons : true,
- dead_code : true,
- conditionals : true,
- side_effects : true,
- unused : true,
- hoist_funs : true,
- if_return : true,
- join_vars : true,
- sequences : false,
- collapse_vars : false,
- reduce_vars : true,
- }
- input: {
- function foo(a) {
- const VALUE = 1;
- console.log(2 | VALUE);
- console.log(VALUE + 1);
- console.log(VALUE);
- console.log(a & VALUE);
- }
- function bar() {
- const s = "01234567890123456789";
- console.log(s + s + s + s + s);
-
- const CONSTANT = "abc";
- console.log(CONSTANT + CONSTANT + CONSTANT + CONSTANT + CONSTANT);
- }
- }
- expect: {
- function foo(a) {
- console.log(3);
- console.log(2);
- console.log(1);
- console.log(1 & a);
- }
- function bar() {
- const s = "01234567890123456789";
- console.log(s + s + s + s + s);
-
- console.log("abcabcabcabcabc");
- }
- }
-}
-
-unused_regexp_literal: {
- options = {
- evaluate : true,
- booleans : true,
- comparisons : true,
- dead_code : true,
- conditionals : true,
- side_effects : true,
- unused : true,
- hoist_funs : true,
- if_return : true,
- join_vars : true,
- sequences : false,
- collapse_vars : false,
- }
- input: {
- function f(){ var a = /b/; }
- }
- expect: {
- function f(){}
- }
-}
-
-regexp_literal_not_const: {
- options = {
- evaluate : true,
- booleans : true,
- comparisons : true,
- dead_code : true,
- conditionals : true,
- side_effects : true,
- unused : true,
- hoist_funs : true,
- if_return : true,
- join_vars : true,
- sequences : false,
- collapse_vars : false,
- reduce_vars : true,
- }
- input: {
- (function(){
- var result;
- const s = 'acdabcdeabbb';
- const REGEXP_LITERAL = /ab*/g;
- while (result = REGEXP_LITERAL.exec(s)) {
- console.log(result[0]);
- }
- })();
- }
- expect: {
- (function() {
- var result;
- const REGEXP_LITERAL = /ab*/g;
- while (result = REGEXP_LITERAL.exec("acdabcdeabbb")) console.log(result[0]);
- })();
- }
- expect_stdout: true
-}
diff --git a/test/compress/dead-code.js b/test/compress/dead-code.js
index bb72451c..31d0664a 100644
--- a/test/compress/dead-code.js
+++ b/test/compress/dead-code.js
@@ -90,131 +90,6 @@ dead_code_constant_boolean_should_warn_more: {
expect_stdout: true
}
-dead_code_const_declaration: {
- options = {
- dead_code : true,
- loops : true,
- booleans : true,
- conditionals : true,
- evaluate : true,
- reduce_vars : true,
- };
- input: {
- var unused;
- const CONST_FOO = false;
- if (CONST_FOO) {
- console.log("unreachable");
- var moo;
- function bar() {}
- }
- }
- expect: {
- var unused;
- const CONST_FOO = !1;
- var moo;
- function bar() {}
- }
- expect_stdout: true
-}
-
-dead_code_const_annotation: {
- options = {
- dead_code : true,
- loops : true,
- booleans : true,
- conditionals : true,
- evaluate : true,
- reduce_vars : true,
- toplevel : true,
- };
- input: {
- var unused;
- /** @const */ var CONST_FOO_ANN = false;
- if (CONST_FOO_ANN) {
- console.log("unreachable");
- var moo;
- function bar() {}
- }
- }
- expect: {
- var unused;
- var CONST_FOO_ANN = !1;
- var moo;
- function bar() {}
- }
- expect_stdout: true
-}
-
-dead_code_const_annotation_regex: {
- options = {
- dead_code : true,
- loops : true,
- booleans : true,
- conditionals : true,
- evaluate : true
- };
- input: {
- var unused;
- // @constraint this shouldn't be a constant
- var CONST_FOO_ANN = false;
- if (CONST_FOO_ANN) {
- console.log("reachable");
- }
- }
- expect: {
- var unused;
- var CONST_FOO_ANN = !1;
- CONST_FOO_ANN && console.log('reachable');
- }
- expect_stdout: true
-}
-
-dead_code_const_annotation_complex_scope: {
- options = {
- dead_code : true,
- loops : true,
- booleans : true,
- conditionals : true,
- evaluate : true,
- reduce_vars : true,
- toplevel : true,
- };
- input: {
- var unused_var;
- /** @const */ var test = 'test';
- // @const
- var CONST_FOO_ANN = false;
- var unused_var_2;
- if (CONST_FOO_ANN) {
- console.log("unreachable");
- var moo;
- function bar() {}
- }
- if (test === 'test') {
- var beef = 'good';
- /** @const */ var meat = 'beef';
- var pork = 'bad';
- if (meat === 'pork') {
- console.log('also unreachable');
- } else if (pork === 'good') {
- console.log('reached, not const');
- }
- }
- }
- expect: {
- var unused_var;
- var test = 'test';
- var CONST_FOO_ANN = !1;
- var unused_var_2;
- var moo;
- function bar() {}
- var beef = 'good';
- var meat = 'beef';
- var pork = 'bad';
- }
- expect_stdout: true
-}
-
try_catch_finally: {
options = {
conditionals: true,
diff --git a/test/compress/drop-unused.js b/test/compress/drop-unused.js
index 96bd336c..2ef6f796 100644
--- a/test/compress/drop-unused.js
+++ b/test/compress/drop-unused.js
@@ -649,37 +649,6 @@ drop_value: {
}
}
-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;
- }
- }
-}
-
issue_1539: {
options = {
cascade: true,
@@ -816,10 +785,6 @@ issue_1709: {
var x = 1;
return x;
}(),
- function y() {
- const y = 2;
- return y;
- }(),
function z() {
function z() {}
return z;
@@ -833,10 +798,6 @@ issue_1709: {
return x;
}(),
function() {
- const y = 2;
- return y;
- }(),
- function() {
function z() {}
return z;
}()
@@ -1147,28 +1108,3 @@ var_catch_toplevel: {
}();
}
}
-
-reassign_const: {
- options = {
- cascade: true,
- sequences: true,
- side_effects: true,
- unused: true,
- }
- input: {
- function f() {
- const a = 1;
- a = 2;
- return a;
- }
- console.log(f());
- }
- expect: {
- function f() {
- const a = 1;
- return a = 2, a;
- }
- console.log(f());
- }
- expect_stdout: true
-}
diff --git a/test/compress/evaluate.js b/test/compress/evaluate.js
index 585ee2b9..b8077564 100644
--- a/test/compress/evaluate.js
+++ b/test/compress/evaluate.js
@@ -645,16 +645,17 @@ call_args: {
options = {
evaluate: true,
reduce_vars: true,
+ toplevel: true,
}
input: {
- const a = 1;
+ var a = 1;
console.log(a);
+function(a) {
return a;
}(a);
}
expect: {
- const a = 1;
+ var a = 1;
console.log(1);
+(1, 1);
}
@@ -666,17 +667,17 @@ call_args_drop_param: {
evaluate: true,
keep_fargs: false,
reduce_vars: true,
+ toplevel: true,
unused: true,
}
input: {
- const a = 1;
+ var a = 1;
console.log(a);
+function(a) {
return a;
}(a, b);
}
expect: {
- const a = 1;
console.log(1);
+(b, 1);
}
diff --git a/test/compress/global_defs.js b/test/compress/global_defs.js
index f1ba8f32..bfd1d5f6 100644
--- a/test/compress/global_defs.js
+++ b/test/compress/global_defs.js
@@ -120,7 +120,7 @@ mixed: {
properties: true,
}
input: {
- const FOO = { BAR: 0 };
+ var FOO = { BAR: 0 };
console.log(FOO.BAR);
console.log(++CONFIG.DEBUG);
console.log(++CONFIG.VALUE);
@@ -130,7 +130,7 @@ mixed: {
console.log(CONFIG);
}
expect: {
- const FOO = { BAR: 0 };
+ var FOO = { BAR: 0 };
console.log("moo");
console.log(++CONFIG.DEBUG);
console.log(++CONFIG.VALUE);
diff --git a/test/compress/issue-1041.js b/test/compress/issue-1041.js
index cdbc22cc..cc351405 100644
--- a/test/compress/issue-1041.js
+++ b/test/compress/issue-1041.js
@@ -1,16 +1,3 @@
-const_declaration: {
- options = {
- evaluate: true
- };
-
- input: {
- const goog = goog || {};
- }
- expect: {
- const goog = goog || {};
- }
-}
-
const_pragma: {
options = {
evaluate: true,
diff --git a/test/compress/issue-1588.js b/test/compress/issue-1588.js
index 4e20a21d..187d9f6c 100644
--- a/test/compress/issue-1588.js
+++ b/test/compress/issue-1588.js
@@ -85,15 +85,3 @@ unsafe_undefined: {
}
expect_stdout: true
}
-
-runtime_error: {
- input: {
- const a = 1;
- console.log(a++);
- }
- expect: {
- const a = 1;
- console.log(a++);
- }
- expect_stdout: true
-}
diff --git a/test/compress/issue-208.js b/test/compress/issue-208.js
index fb9861f6..faaf4139 100644
--- a/test/compress/issue-208.js
+++ b/test/compress/issue-208.js
@@ -38,7 +38,7 @@ mixed: {
}
}
input: {
- const ENV = 3;
+ var ENV = 3;
var FOO = 4;
f(ENV * 10);
--FOO;
@@ -49,7 +49,7 @@ mixed: {
x = DEBUG;
}
expect: {
- const ENV = 3;
+ var ENV = 3;
var FOO = 4;
f(10);
--FOO;
@@ -60,7 +60,7 @@ mixed: {
x = 0;
}
expect_warnings: [
- 'WARN: global_defs ENV redefined [test/compress/issue-208.js:41,14]',
+ 'WARN: global_defs ENV redefined [test/compress/issue-208.js:41,12]',
'WARN: global_defs FOO redefined [test/compress/issue-208.js:42,12]',
'WARN: global_defs FOO redefined [test/compress/issue-208.js:44,10]',
'WARN: global_defs DEBUG redefined [test/compress/issue-208.js:45,8]',
diff --git a/test/compress/loops.js b/test/compress/loops.js
index 4d354bcf..89c7e7e9 100644
--- a/test/compress/loops.js
+++ b/test/compress/loops.js
@@ -146,50 +146,6 @@ parse_do_while_without_semicolon: {
}
}
-
-keep_collapse_const_in_own_block_scope: {
- options = {
- join_vars: true,
- loops: true
- }
- input: {
- var i=2;
- const c=5;
- while(i--)
- console.log(i);
- console.log(c);
- }
- expect: {
- var i=2;
- const c=5;
- for(;i--;)
- console.log(i);
- console.log(c);
- }
- expect_stdout: true
-}
-
-keep_collapse_const_in_own_block_scope_2: {
- options = {
- join_vars: true,
- loops: true
- }
- input: {
- const c=5;
- var i=2; // Moves to loop, while it did not in previous test
- while(i--)
- console.log(i);
- console.log(c);
- }
- expect: {
- const c=5;
- for(var i=2;i--;)
- console.log(i);
- console.log(c);
- }
- expect_stdout: true
-}
-
evaluate: {
options = {
loops: true,
diff --git a/test/compress/reduce_vars.js b/test/compress/reduce_vars.js
index d3b3d425..a0433b5d 100644
--- a/test/compress/reduce_vars.js
+++ b/test/compress/reduce_vars.js
@@ -2190,10 +2190,11 @@ issue_1814_1: {
options = {
evaluate: true,
reduce_vars: true,
+ toplevel: true,
unused: true,
}
input: {
- const a = 42;
+ var a = 42;
!function() {
var b = a;
!function(a) {
@@ -2202,7 +2203,6 @@ issue_1814_1: {
}();
}
expect: {
- const a = 42;
!function() {
!function(a) {
console.log(a++, 42);
@@ -2216,10 +2216,11 @@ issue_1814_2: {
options = {
evaluate: true,
reduce_vars: true,
+ toplevel: true,
unused: true,
}
input: {
- const a = "32";
+ var a = "32";
!function() {
var b = a + 1;
!function(a) {
@@ -2228,7 +2229,6 @@ issue_1814_2: {
}();
}
expect: {
- const a = "32";
!function() {
!function(a) {
console.log(a++, "321");
diff --git a/test/compress/sequences.js b/test/compress/sequences.js
index 9edf627e..10492565 100644
--- a/test/compress/sequences.js
+++ b/test/compress/sequences.js
@@ -710,27 +710,3 @@ issue_27: {
})(jQuery);
}
}
-
-reassign_const: {
- options = {
- cascade: true,
- sequences: true,
- side_effects: true,
- }
- input: {
- function f() {
- const a = 1;
- a++;
- return a;
- }
- console.log(f());
- }
- expect: {
- function f() {
- const a = 1;
- return a++, a;
- }
- console.log(f());
- }
- expect_stdout: true
-}
diff --git a/test/input/invalid/const.js b/test/input/invalid/const.js
deleted file mode 100644
index 7a2bfd3d..00000000
--- a/test/input/invalid/const.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function f() {
- const a;
-}
-
-function g() {
- "use strict";
- const a;
-}
diff --git a/test/mocha/cli.js b/test/mocha/cli.js
index 8cf53ab4..38f61f39 100644
--- a/test/mocha/cli.js
+++ b/test/mocha/cli.js
@@ -379,21 +379,6 @@ describe("bin/uglifyjs", function () {
done();
});
});
- it("Should throw syntax error (const a)", function(done) {
- var command = uglifyjscmd + ' test/input/invalid/const.js';
-
- exec(command, function (err, stdout, stderr) {
- assert.ok(err);
- assert.strictEqual(stdout, "");
- assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
- "Parse error at test/input/invalid/const.js:7,11",
- " const a;",
- " ^",
- "ERROR: Missing initializer in const declaration"
- ].join("\n"));
- done();
- });
- });
it("Should throw syntax error (delete x)", function(done) {
var command = uglifyjscmd + ' test/input/invalid/delete.js';