terser 4.3.0 → 4.3.4

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.

Potentially problematic release.


This version of terser might be problematic. Click here for more details.

package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## v4.3.4
4
+
5
+ - Fixed a regression where the output size was increased when unused classes were referred to in the extends clause of a class.
6
+ - Small typescript typings fixes.
7
+ - Comments with `@preserve`, `@license`, `@cc_on` as well as comments starting with `/*!` and `/**!` are now preserved by default.
8
+
9
+ ## v4.3.3
10
+
11
+ - Fixed a problem where parsing template strings would mix up octal notation and a slash followed by a zero representing a null character.
12
+ - Started accepting the name `async` in destructuring arguments with default value.
13
+ - Now Terser takes into account side effects inside class `extends` clauses.
14
+ - Added parens whenever there's a comment between a return statement and the returned value, to prevent issues with ASI.
15
+ - Stopped using raw RegExp objects, since the spec is going to continue to evolve. This ensures Terser is able to process new, unknown RegExp flags and features. This is a breaking change in the AST node AST_RegExp.
16
+
17
+ ## v4.3.2
18
+
19
+ - Typescript typing fix
20
+ - Ensure that functions can't be inlined, by reduce_vars, into places where they're accessing variables with the same name, but from somewhere else.
21
+
22
+ ## v4.3.1
23
+
24
+ - Fixed an issue from 4.3.0 where any block scope within a for loop erroneously had its parent set to the function scopee
25
+ - Fixed an issue where compressing IIFEs with argument expansions would result in some parameters becoming undefined
26
+ - addEventListener options argument's properties are now part of the DOM properties list.
27
+
3
28
  ## v4.3.0
4
29
 
5
30
  - Do not drop computed object keys with side effects
package/README.md CHANGED
@@ -1323,3 +1323,33 @@ These are the second-tier patrons. Great thanks for your support!
1323
1323
 
1324
1324
  * CKEditor ![](https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/15452278/f8548dcf48d740619071e8d614459280/1?token-time=2145916800&token-hash=SIQ54PhIPHv3M7CVz9LxS8_8v4sOw4H304HaXsXj8MM%3D)
1325
1325
  * 38elements ![](https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12501844/88e7fc5dd62d45c6a5626533bbd48cfb/1?token-time=2145916800&token-hash=c3AsQ5T0IQWic0zKxFHu-bGGQJkXQFvafvJ4bPerFR4%3D)
1326
+
1327
+ ## Contributors
1328
+
1329
+ ### Code Contributors
1330
+
1331
+ This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
1332
+ <a href="https://github.com/terser/terser/graphs/contributors"><img src="https://opencollective.com/terser/contributors.svg?width=890&button=false" /></a>
1333
+
1334
+ ### Financial Contributors
1335
+
1336
+ Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/terser/contribute)]
1337
+
1338
+ #### Individuals
1339
+
1340
+ <a href="https://opencollective.com/terser"><img src="https://opencollective.com/terser/individuals.svg?width=890"></a>
1341
+
1342
+ #### Organizations
1343
+
1344
+ Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/terser/contribute)]
1345
+
1346
+ <a href="https://opencollective.com/terser/organization/0/website"><img src="https://opencollective.com/terser/organization/0/avatar.svg"></a>
1347
+ <a href="https://opencollective.com/terser/organization/1/website"><img src="https://opencollective.com/terser/organization/1/avatar.svg"></a>
1348
+ <a href="https://opencollective.com/terser/organization/2/website"><img src="https://opencollective.com/terser/organization/2/avatar.svg"></a>
1349
+ <a href="https://opencollective.com/terser/organization/3/website"><img src="https://opencollective.com/terser/organization/3/avatar.svg"></a>
1350
+ <a href="https://opencollective.com/terser/organization/4/website"><img src="https://opencollective.com/terser/organization/4/avatar.svg"></a>
1351
+ <a href="https://opencollective.com/terser/organization/5/website"><img src="https://opencollective.com/terser/organization/5/avatar.svg"></a>
1352
+ <a href="https://opencollective.com/terser/organization/6/website"><img src="https://opencollective.com/terser/organization/6/avatar.svg"></a>
1353
+ <a href="https://opencollective.com/terser/organization/7/website"><img src="https://opencollective.com/terser/organization/7/avatar.svg"></a>
1354
+ <a href="https://opencollective.com/terser/organization/8/website"><img src="https://opencollective.com/terser/organization/8/avatar.svg"></a>
1355
+ <a href="https://opencollective.com/terser/organization/9/website"><img src="https://opencollective.com/terser/organization/9/avatar.svg"></a>
package/bin/terser CHANGED
@@ -16,7 +16,7 @@ try {
16
16
  require("source-map-support").install();
17
17
  } catch (err) {}
18
18
 
19
- var skip_keys = [ "cname", "inlined", "parent_scope", "scope", "uses_eval", "uses_with" ];
19
+ const skip_keys = new Set([ "cname", "parent_scope", "scope", "uses_eval", "uses_with" ]);
20
20
  var files = {};
21
21
  var options = {
22
22
  compress: false,
@@ -264,7 +264,7 @@ function run() {
264
264
  case "globals":
265
265
  return value.size ? collect_from_map(value, symdef) : undefined;
266
266
  }
267
- if (skip_key(key)) return;
267
+ if (skip_keys.has(key)) return;
268
268
  if (value instanceof Terser.AST_Token) return;
269
269
  if (value instanceof Map) return;
270
270
  if (value instanceof Terser.AST_Node) {
@@ -397,10 +397,6 @@ function parse_js(flag) {
397
397
  };
398
398
  }
399
399
 
400
- function skip_key(key) {
401
- return skip_keys.includes(key);
402
- }
403
-
404
400
  function symdef(def) {
405
401
  var ret = (1e6 + def.id) + " " + def.name;
406
402
  if (def.mangled_name) ret += " " + def.mangled_name;