diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2017-12-13 01:27:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-13 01:27:26 +0800 |
commit | e008dc1bde1455eaafe04061412b0b9524212d99 (patch) | |
tree | d6807c4c28f30229ab4945abfe7302674b3cef38 /lib | |
parent | ddf96cfda2a3e27b977e0ed8cca3896073513186 (diff) | |
download | tracifyjs-e008dc1bde1455eaafe04061412b0b9524212d99.tar.gz tracifyjs-e008dc1bde1455eaafe04061412b0b9524212d99.zip |
minor clean-up for IIFE (#2582)
- faster exact type match
- aggressively convert to `!`
Diffstat (limited to 'lib')
-rw-r--r-- | lib/compress.js | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/compress.js b/lib/compress.js index 14e83617..00d03fd4 100644 --- a/lib/compress.js +++ b/lib/compress.js @@ -808,10 +808,8 @@ merge(Compressor.prototype, { }; function is_iife_call(node) { - if (node instanceof AST_Call && !(node instanceof AST_New)) { - return node.expression instanceof AST_Function || is_iife_call(node.expression); - } - return false; + if (node.TYPE != "Call") return false; + return node.expression instanceof AST_Function || is_iife_call(node.expression); } function is_undeclared_ref(node) { @@ -3099,14 +3097,9 @@ merge(Compressor.prototype, { } if (this.operator == "typeof" && this.expression instanceof AST_SymbolRef) return null; var expression = this.expression.drop_side_effect_free(compressor, first_in_statement); - if (first_in_statement - && this instanceof AST_UnaryPrefix - && is_iife_call(expression)) { - if (expression === this.expression && this.operator.length === 1) return this; - return make_node(AST_UnaryPrefix, this, { - operator: this.operator.length === 1 ? this.operator : "!", - expression: expression - }); + if (first_in_statement && expression && is_iife_call(expression)) { + if (expression === this.expression && this.operator == "!") return this; + return expression.negate(compressor, first_in_statement); } return expression; }); |