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/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 : true,
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 RE_NUM_LITERAL.test(ch);
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 (num.endsWith("n")) {
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 = with_eof_error("Unterminated identifier name", function() {
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, is_generator_property, is_async, is_export_default) {
1568
+ var function_ = function(ctor, is_generator, is_async, is_export_default) {
1552
1569
  var in_statement = ctor === AST_Defun;
1553
- var is_generator = is("operator", "*");
1554
- if (is_generator) {
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 || is_generator_property, is_async, name, args);
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 || is_generator_property,
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) + lambda_modifiers(this);
386
+ return static_size(this.static) + key_size(this.key);
387
387
  };
388
388
 
389
389
  AST_PrivateMethod.prototype._size = function () {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "homepage": "https://terser.org",
5
5
  "author": "Mihai Bazon <mihai.bazon@gmail.com> (http://lisperator.net/)",
6
6
  "license": "BSD-2-Clause",
7
- "version": "5.41.0",
7
+ "version": "5.43.0",
8
8
  "engines": {
9
9
  "node": ">=10"
10
10
  },