aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-12-13 01:27:26 +0800
committerGitHub <noreply@github.com>2017-12-13 01:27:26 +0800
commite008dc1bde1455eaafe04061412b0b9524212d99 (patch)
treed6807c4c28f30229ab4945abfe7302674b3cef38 /lib
parentddf96cfda2a3e27b977e0ed8cca3896073513186 (diff)
downloadtracifyjs-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.js17
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;
});