parse @global_defs as expressions (#2169)

- let parser rejects non-conformant input
- eliminate need for extraneous parenthesis
This commit is contained in:
Alex Lam S.L
2017-06-27 10:31:19 +08:00
committed by GitHub
parent 8b4dcd8f3e
commit 1e4de2e6d3
3 changed files with 25 additions and 7 deletions

View File

@@ -92,12 +92,9 @@ function Compressor(options, false_by_default) {
var global_defs = this.options["global_defs"];
if (typeof global_defs == "object") for (var key in global_defs) {
if (/^@/.test(key) && HOP(global_defs, key)) {
var ast = parse(global_defs[key]);
if (ast.body.length == 1 && ast.body[0] instanceof AST_SimpleStatement) {
global_defs[key.slice(1)] = ast.body[0].body;
} else throw new Error(string_template("Can't handle expression: {value}", {
value: global_defs[key]
}));
global_defs[key.slice(1)] = parse(global_defs[key], {
expression: true
});
}
}
var pure_funcs = this.options["pure_funcs"];