terser 5.41.0 → 5.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -1
- package/dist/bundle.min.js +437 -239
- package/lib/ast.js +27 -8
- package/lib/compress/index.js +4 -6
- package/lib/compress/inline.js +15 -0
- package/lib/equivalent-to.js +2 -2
- package/lib/mozilla-ast.js +351 -200
- package/lib/output.js +7 -7
- package/lib/parse.js +30 -15
- package/lib/size.js +1 -1
- package/package.json +1 -1
package/lib/output.js
CHANGED
@@ -287,7 +287,7 @@ function OutputStream(options) {
|
|
287
287
|
webkit : false,
|
288
288
|
width : 80,
|
289
289
|
wrap_iife : false,
|
290
|
-
wrap_func_args :
|
290
|
+
wrap_func_args : false,
|
291
291
|
|
292
292
|
_destroy_ast : false
|
293
293
|
}, true);
|
@@ -2298,22 +2298,22 @@ function OutputStream(options) {
|
|
2298
2298
|
});
|
2299
2299
|
DEFPRINT(AST_ConciseMethod, function(self, output) {
|
2300
2300
|
var type;
|
2301
|
-
if (self.is_generator && self.async) {
|
2301
|
+
if (self.value.is_generator && self.value.async) {
|
2302
2302
|
type = "async*";
|
2303
|
-
} else if (self.is_generator) {
|
2303
|
+
} else if (self.value.is_generator) {
|
2304
2304
|
type = "*";
|
2305
|
-
} else if (self.async) {
|
2305
|
+
} else if (self.value.async) {
|
2306
2306
|
type = "async";
|
2307
2307
|
}
|
2308
2308
|
self._print_getter_setter(type, false, output);
|
2309
2309
|
});
|
2310
2310
|
DEFPRINT(AST_PrivateMethod, function(self, output) {
|
2311
2311
|
var type;
|
2312
|
-
if (self.is_generator && self.async) {
|
2312
|
+
if (self.value.is_generator && self.value.async) {
|
2313
2313
|
type = "async*";
|
2314
|
-
} else if (self.is_generator) {
|
2314
|
+
} else if (self.value.is_generator) {
|
2315
2315
|
type = "*";
|
2316
|
-
} else if (self.async) {
|
2316
|
+
} else if (self.value.async) {
|
2317
2317
|
type = "async";
|
2318
2318
|
}
|
2319
2319
|
self._print_getter_setter(type, true, output);
|
package/lib/parse.js
CHANGED
@@ -183,7 +183,6 @@ ALL_RESERVED_WORDS = makePredicate(ALL_RESERVED_WORDS);
|
|
183
183
|
|
184
184
|
var OPERATOR_CHARS = makePredicate(characters("+-*&%=<>!?|~^"));
|
185
185
|
|
186
|
-
var RE_NUM_LITERAL = /[0-9a-f]/i;
|
187
186
|
var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i;
|
188
187
|
var RE_OCT_NUMBER = /^0[0-7]+$/;
|
189
188
|
var RE_ES6_OCT_NUMBER = /^0o[0-7]+$/i;
|
@@ -548,15 +547,16 @@ function tokenizer($TEXT, filename, html5_comments, shebang) {
|
|
548
547
|
return after_e;
|
549
548
|
case (after_e = false, 46): // .
|
550
549
|
return (!has_dot && !has_x && !has_e) ? (has_dot = true) : false;
|
551
|
-
|
552
|
-
|
553
|
-
if (ch === "n") {
|
550
|
+
case 110: // n
|
554
551
|
is_big_int = true;
|
555
|
-
|
556
552
|
return true;
|
557
553
|
}
|
558
554
|
|
559
|
-
return
|
555
|
+
return (
|
556
|
+
code >= 48 && code <= 57 // 0-9
|
557
|
+
|| code >= 97 && code <= 102 // a-f
|
558
|
+
|| code >= 65 && code <= 70 // A-F
|
559
|
+
);
|
560
560
|
});
|
561
561
|
if (prefix) num = prefix + num;
|
562
562
|
|
@@ -573,7 +573,7 @@ function tokenizer($TEXT, filename, html5_comments, shebang) {
|
|
573
573
|
}
|
574
574
|
num = num.replace(/_/g, "");
|
575
575
|
}
|
576
|
-
if (
|
576
|
+
if (is_big_int) {
|
577
577
|
const without_n = num.slice(0, -1);
|
578
578
|
const allow_e = RE_HEX_NUMBER.test(without_n);
|
579
579
|
const valid = parse_js_number(without_n, allow_e);
|
@@ -748,7 +748,24 @@ function tokenizer($TEXT, filename, html5_comments, shebang) {
|
|
748
748
|
return next_token;
|
749
749
|
});
|
750
750
|
|
751
|
-
var read_name =
|
751
|
+
var read_name = function () {
|
752
|
+
let start = S.pos, end = start - 1, ch = "c";
|
753
|
+
|
754
|
+
while (
|
755
|
+
(ch = S.text.charAt(++end))
|
756
|
+
&& (ch >= "a" && ch <= "z" || ch >= "A" && ch <= "Z")
|
757
|
+
);
|
758
|
+
|
759
|
+
if (end > start + 1 && ch && ch !== "\\" && !is_identifier_char(ch)) {
|
760
|
+
S.pos += end - start;
|
761
|
+
S.col += end - start;
|
762
|
+
return S.text.slice(start, S.pos);
|
763
|
+
}
|
764
|
+
|
765
|
+
return read_name_hard();
|
766
|
+
};
|
767
|
+
|
768
|
+
var read_name_hard = with_eof_error("Unterminated identifier name", function() {
|
752
769
|
var name = [], ch, escaped = false;
|
753
770
|
var read_escaped_identifier_char = function() {
|
754
771
|
escaped = true;
|
@@ -1548,10 +1565,10 @@ function parse($TEXT, options) {
|
|
1548
1565
|
});
|
1549
1566
|
};
|
1550
1567
|
|
1551
|
-
var function_ = function(ctor,
|
1568
|
+
var function_ = function(ctor, is_generator, is_async, is_export_default) {
|
1552
1569
|
var in_statement = ctor === AST_Defun;
|
1553
|
-
|
1554
|
-
|
1570
|
+
if (is("operator", "*")) {
|
1571
|
+
is_generator = true;
|
1555
1572
|
next();
|
1556
1573
|
}
|
1557
1574
|
|
@@ -1568,11 +1585,11 @@ function parse($TEXT, options) {
|
|
1568
1585
|
unexpected(prev());
|
1569
1586
|
|
1570
1587
|
var args = [];
|
1571
|
-
var body = _function_body(true, is_generator
|
1588
|
+
var body = _function_body(true, is_generator, is_async, name, args);
|
1572
1589
|
return new ctor({
|
1573
1590
|
start : args.start,
|
1574
1591
|
end : body.end,
|
1575
|
-
is_generator: is_generator
|
1592
|
+
is_generator: is_generator,
|
1576
1593
|
async : is_async,
|
1577
1594
|
name : name,
|
1578
1595
|
argnames: args,
|
@@ -2648,8 +2665,6 @@ function parse($TEXT, options) {
|
|
2648
2665
|
var node = new AST_MethodVariant({
|
2649
2666
|
start : start,
|
2650
2667
|
static : is_static,
|
2651
|
-
is_generator: is_generator,
|
2652
|
-
async : is_async,
|
2653
2668
|
key : name,
|
2654
2669
|
quote : name instanceof AST_SymbolMethod ?
|
2655
2670
|
property_token.quote : undefined,
|
package/lib/size.js
CHANGED
@@ -383,7 +383,7 @@ AST_ObjectSetter.prototype._size = function () {
|
|
383
383
|
};
|
384
384
|
|
385
385
|
AST_ConciseMethod.prototype._size = function () {
|
386
|
-
return static_size(this.static) + key_size(this.key)
|
386
|
+
return static_size(this.static) + key_size(this.key);
|
387
387
|
};
|
388
388
|
|
389
389
|
AST_PrivateMethod.prototype._size = function () {
|