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 +25 -0
- package/README.md +30 -0
- package/bin/terser +2 -6
- package/dist/bundle.min.js +1 -1
- package/dist/bundle.min.js.map +1 -1
- package/package.json +5 -7
- package/tools/domprops.js +4 -1
- package/tools/terser.d.ts +6 -7
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 
|
1325
1325
|
* 38elements 
|
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
|
-
|
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 (
|
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;
|