Alex Lam S.L [Wed, 29 Nov 2017 05:32:00 +0000 (13:32 +0800)]
backport test from #2526 (#2534)
Alex Lam S.L [Wed, 29 Nov 2017 05:31:41 +0000 (13:31 +0800)]
fix `inline` on nested substitutions (#2533)
fixes #2531
Alex Lam S.L [Tue, 28 Nov 2017 06:39:00 +0000 (14:39 +0800)]
fix nested `hoist_props` substitution (#2523)
fixes #2519
Alex Lam S.L [Tue, 28 Nov 2017 06:02:39 +0000 (14:02 +0800)]
improve synergy between `collapse_vars` & `unused` (#2521)
Alex Lam S.L [Tue, 28 Nov 2017 05:08:40 +0000 (13:08 +0800)]
drop assignment in `AST_VarDef.value` (#2522)
fixes #2516
Alex Lam S.L [Sat, 25 Nov 2017 20:08:35 +0000 (04:08 +0800)]
v3.2.0
Alex Lam S.L [Sat, 25 Nov 2017 14:52:46 +0000 (22:52 +0800)]
fix argument/atom collision by `properties` (#2514)
fixes #2513
Alex Lam S.L [Sat, 25 Nov 2017 11:07:46 +0000 (19:07 +0800)]
fix wording and formatting (#2512)
Alex Lam S.L [Fri, 24 Nov 2017 06:07:39 +0000 (14:07 +0800)]
extend escape analysis on constant expression properties (#2509)
fixes #2508
Alex Lam S.L [Thu, 23 Nov 2017 23:26:22 +0000 (07:26 +0800)]
fix argument/atom collision by `collapse_vars` (#2507)
fixes #2506
Alex Lam S.L [Thu, 23 Nov 2017 23:03:37 +0000 (07:03 +0800)]
make `AST_Lambda.contains_this()` less magical (#2505)
Alex Lam S.L [Thu, 23 Nov 2017 20:12:37 +0000 (04:12 +0800)]
eliminate invalid state caching in `collapse_vars` (#2502)
fixes #2497
Alex Lam S.L [Thu, 23 Nov 2017 19:05:43 +0000 (03:05 +0800)]
fix `rename` (#2501)
- suppress spurious `rename` from `commander`
- handle `AST_SymbolCatch` correctly
Alex Lam S.L [Sun, 19 Nov 2017 11:29:51 +0000 (19:29 +0800)]
expand symbol space to improve compression (#2460)
- give globally distinct names to distinct variables
- improve ability to compress cross-scoped
- introduce `options.rename` to `minify()`
- default `true` if both `compress` & `mangle`
Alex Lam S.L [Sun, 19 Nov 2017 06:56:23 +0000 (14:56 +0800)]
enable `hoist_props` by default (#2492)
Alex Lam S.L [Sat, 18 Nov 2017 15:56:33 +0000 (23:56 +0800)]
v3.1.10
kzc [Fri, 17 Nov 2017 05:46:49 +0000 (00:46 -0500)]
document the `webkit` output option (#2490)
- workaround for WebKit bugs
- PhantomJS users should enable this output option
closes #2489
Alex Lam S.L [Thu, 16 Nov 2017 02:04:30 +0000 (10:04 +0800)]
fix cross-scope inlining of `AST_Function`s (#2486)
fixes #2485
Alex Lam S.L [Wed, 15 Nov 2017 20:37:37 +0000 (04:37 +0800)]
minor consolidations (#2484)
- unique symbol generation
- `unsafe` on `AST_Call`
kzc [Tue, 14 Nov 2017 22:00:51 +0000 (17:00 -0500)]
Update ISSUE_TEMPLATE.md (#2481)
kzc [Tue, 14 Nov 2017 08:03:25 +0000 (03:03 -0500)]
update documentation for `reduce_funcs` (#2478)
Alex Lam S.L [Sun, 12 Nov 2017 23:37:42 +0000 (07:37 +0800)]
fix replacement logic in `collapse_vars` (#2475)
Alex Lam S.L [Sun, 12 Nov 2017 16:59:41 +0000 (00:59 +0800)]
fix `top_retain` on `hoist_props` (#2474)
fixes #2473
Alex Lam S.L [Sun, 12 Nov 2017 14:31:47 +0000 (22:31 +0800)]
allow symbol replacement on multiple occurrences (#2472)
- all-or-nothing replacement
- avoid unmangleable names
fixes #2436
Alex Lam S.L [Sat, 11 Nov 2017 07:31:13 +0000 (15:31 +0800)]
v3.1.9
Alex Lam S.L [Sat, 11 Nov 2017 07:30:17 +0000 (15:30 +0800)]
extend `reduce_funcs` to cover cross-scope substitutions (#2469)
fixes #2468
Alex Lam S.L [Fri, 10 Nov 2017 21:59:35 +0000 (05:59 +0800)]
implement compress option `reduce_funcs` (#2466)
- inline single-use function declarations as expressions when permissible
- depend on `reduce_vars`
- enabled by default
- disable for speed critical code
fixes #2464
Alex Lam S.L [Thu, 9 Nov 2017 21:47:10 +0000 (05:47 +0800)]
fix object literal tracing in `reduce_vars` (#2461)
Alex Lam S.L [Thu, 9 Nov 2017 15:30:00 +0000 (23:30 +0800)]
fix multiple nested function substitutions (#2458)
fixes #2449
Alex Lam S.L [Thu, 9 Nov 2017 12:00:58 +0000 (20:00 +0800)]
remove hack in `collapse_vars` (#2457)
fixes #2456
Alex Lam S.L [Tue, 7 Nov 2017 19:28:46 +0000 (03:28 +0800)]
preserve function identity in `reduce_vars` (#2451)
fixes #2450
Alex Lam S.L [Mon, 6 Nov 2017 19:55:16 +0000 (03:55 +0800)]
v3.1.8
Alex Lam S.L [Mon, 6 Nov 2017 18:37:23 +0000 (02:37 +0800)]
handle circular `function` reference gracefully (#2446)
fixes #2442
Alex Lam S.L [Mon, 6 Nov 2017 08:10:57 +0000 (16:10 +0800)]
account for `eval` & `with` in `reduce_vars` (#2441)
fixes #2440
Alex Lam S.L [Mon, 6 Nov 2017 06:25:10 +0000 (14:25 +0800)]
consolidate & enhance `unused` (#2439)
- defer declaration removal in `collapse_vars`
- account for `AST_SymbolFunarg` in deduplication
- private accounting for `collapse_vars`
- avoid issues with identity reference due to deep cloning
fixes #2437
Alex Lam S.L [Sun, 5 Nov 2017 14:14:11 +0000 (22:14 +0800)]
inline single-use functions that are not constant expressions (#2434)
fixes #2428
Alex Lam S.L [Sun, 5 Nov 2017 07:03:19 +0000 (15:03 +0800)]
v3.1.7
Alex Lam S.L [Sun, 5 Nov 2017 04:49:14 +0000 (12:49 +0800)]
tweak #2424 (#2432)
Alex Lam S.L [Sat, 4 Nov 2017 22:18:45 +0000 (06:18 +0800)]
extend function inlining safety checks (#2430)
Alex Lam S.L [Sat, 4 Nov 2017 20:27:01 +0000 (04:27 +0800)]
consolidate single-use `function` reduction (#2427)
fixes #2423
Alex Lam S.L [Sat, 4 Nov 2017 16:00:18 +0000 (00:00 +0800)]
maintain call argument order in `collapse_vars` (#2426)
fixes #2425
Alex Lam S.L [Sat, 4 Nov 2017 08:29:42 +0000 (16:29 +0800)]
improve variations on call arguments for `ufuzz` (#2424)
Alex Lam S.L [Fri, 3 Nov 2017 16:31:37 +0000 (00:31 +0800)]
reduce `this` within functions (#2421)
- only replace same-scope usages
- augment `test/ufuzz.js` to test for `this`
fixes #2420
Alex Lam S.L [Mon, 30 Oct 2017 15:19:27 +0000 (23:19 +0800)]
compress `new` `function` containing `this` (#2417)
Alex Lam S.L [Sun, 29 Oct 2017 04:38:10 +0000 (12:38 +0800)]
v3.1.6
Alex Lam S.L [Sat, 28 Oct 2017 20:11:26 +0000 (04:11 +0800)]
enhance `properties` (#2412)
- trim array items only if `side_effects`
- extend to non-identifier properties
Alex Lam S.L [Fri, 27 Oct 2017 06:28:09 +0000 (14:28 +0800)]
remove dead code (#2405)
Alex Lam S.L [Thu, 26 Oct 2017 18:33:37 +0000 (02:33 +0800)]
fix `reduce_vars` on `AST_Array.length` (#2404)
Alex Lam S.L [Wed, 25 Oct 2017 17:16:12 +0000 (01:16 +0800)]
compress self comparisons (#2398)
kzc [Wed, 25 Oct 2017 06:03:43 +0000 (02:03 -0400)]
document compress option `hoist_props` (#2399)
Alex Lam S.L [Tue, 24 Oct 2017 19:38:11 +0000 (03:38 +0800)]
implement `hoist_props` (#2396)
fixes #2377
Alex Lam S.L [Tue, 24 Oct 2017 14:10:36 +0000 (22:10 +0800)]
fix `unsafe` `reduce_vars` on arrays & objects (#2397)
Tom MacWright [Mon, 23 Oct 2017 20:53:56 +0000 (13:53 -0700)]
docs: Fix spelling and style (#2395)
Alex Lam S.L [Mon, 23 Oct 2017 18:58:30 +0000 (02:58 +0800)]
enhance `unsafe` `evaluate` of arrays & objects (#2394)
Alex Lam S.L [Sun, 22 Oct 2017 17:00:50 +0000 (01:00 +0800)]
deduplicate declarations regardless of `toplevel` (#2393)
Alex Lam S.L [Sun, 22 Oct 2017 12:10:13 +0000 (20:10 +0800)]
safer `properties` transform (#2391)
`{ a: x, b: y }.a` => `[ x, y ][0]`
- `x` cannot be function containing `this`
`[ x, y, z ][1]` => `(x, z, y)`
- only if `z` is side-effect-free
Alex Lam S.L [Sun, 22 Oct 2017 07:00:36 +0000 (15:00 +0800)]
fix `unsafe` expansion of object literals (#2390)
Alex Lam S.L [Sun, 22 Oct 2017 05:14:15 +0000 (13:14 +0800)]
fix `unsafe` evaluation of `AST_Sub` (#2389)
Alex Lam S.L [Sat, 21 Oct 2017 20:19:40 +0000 (04:19 +0800)]
fix `unsafe` evaluation of objects (#2388)
Alex Lam S.L [Sat, 21 Oct 2017 19:23:31 +0000 (03:23 +0800)]
fix `unsafe` escape analysis in `reduce_vars` (#2387)
Alex Lam S.L [Sat, 21 Oct 2017 16:27:26 +0000 (00:27 +0800)]
v3.1.5
Alex Lam S.L [Fri, 20 Oct 2017 20:08:26 +0000 (04:08 +0800)]
`unsafe` fix-ups for #2351 (#2379)
Alex Lam S.L [Thu, 19 Oct 2017 15:02:27 +0000 (23:02 +0800)]
backport #2374 (#2376)
Alex Lam S.L [Wed, 18 Oct 2017 20:52:00 +0000 (04:52 +0800)]
enhance `collapse_vars` around lazy operations (#2369)
Alex Lam S.L [Tue, 17 Oct 2017 18:54:51 +0000 (02:54 +0800)]
fix `AST_PropAccess` in `collapse_vars` (take 3) (#2375)
Suppress scanning beyond assignment to `a.b`
Alex Lam S.L [Tue, 17 Oct 2017 15:25:45 +0000 (23:25 +0800)]
clean up lazy operator detection (#2373)
Alex Lam S.L [Tue, 17 Oct 2017 14:59:15 +0000 (22:59 +0800)]
fix `AST_PropAccess` in `collapse_vars` (take 2) (#2372)
fixes #2364
Alex Lam S.L [Tue, 17 Oct 2017 10:33:03 +0000 (18:33 +0800)]
fix `AST_PropAccess` in `collapse_vars` (#2370)
fixes #2364
Alex Lam S.L [Mon, 16 Oct 2017 17:18:55 +0000 (01:18 +0800)]
account for side-effects from `AST_This` in `collapse_vars` (#2365)
Alex Lam S.L [Sun, 15 Oct 2017 18:44:17 +0000 (02:44 +0800)]
v3.1.4
Alex Lam S.L [Sun, 15 Oct 2017 18:41:22 +0000 (02:41 +0800)]
update dependency (#2362)
- source-map@0.6.1
Alex Lam S.L [Sun, 15 Oct 2017 14:33:55 +0000 (22:33 +0800)]
fix-ups for #2356 (#2360)
Alex Lam S.L [Wed, 11 Oct 2017 18:58:25 +0000 (02:58 +0800)]
more tests for #2351 (#2357)
Roger Peppe [Wed, 11 Oct 2017 18:56:02 +0000 (19:56 +0100)]
update README to include defaults (#2356)
fixes #2353
Tim Malone [Wed, 11 Oct 2017 11:48:43 +0000 (22:48 +1100)]
Update README.md - sourceMappingURL directive note (#2355)
Moves this README note to underneath the 'url' rather than 'root' option.
Alex Lam S.L [Mon, 9 Oct 2017 04:25:06 +0000 (12:25 +0800)]
perform `reduce_vars` on safe literals (#2351)
- constant expression
- single reference
- same scope
- not across loop body
Alex Lam S.L [Sun, 8 Oct 2017 05:17:48 +0000 (13:17 +0800)]
collapse `a.b` whenever safe (#2350)
Alex Lam S.L [Sun, 1 Oct 2017 04:36:07 +0000 (12:36 +0800)]
v3.1.3
Alex Lam S.L [Sat, 30 Sep 2017 19:01:50 +0000 (03:01 +0800)]
enhance `reduce_vars` for `AST_Accessor` (#2339)
fixes #2336
Alex Lam S.L [Sat, 30 Sep 2017 18:10:41 +0000 (02:10 +0800)]
trap invalid use of reserved words (#2338)
fixes #2337
Alex Lam S.L [Sat, 23 Sep 2017 18:02:04 +0000 (02:02 +0800)]
v3.1.2
kzc [Wed, 20 Sep 2017 16:52:48 +0000 (12:52 -0400)]
fix "use asm" numeric output (#2328)
fixes #2324
Alex Lam S.L [Tue, 19 Sep 2017 21:23:20 +0000 (05:23 +0800)]
suppress `collapse_vars` of `this` into "use strict" (#2326)
fixes #2319
Alex Lam S.L [Sat, 16 Sep 2017 20:36:27 +0000 (04:36 +0800)]
v3.1.1
Alex Lam S.L [Sat, 16 Sep 2017 03:45:19 +0000 (11:45 +0800)]
handle LHS side-effects on `cascade` & `collapse_vars` (#2314)
fixes #2313
Alex Lam S.L [Fri, 15 Sep 2017 04:46:48 +0000 (12:46 +0800)]
improve source mapping (#2312)
fixes #2310
Alex Lam S.L [Sun, 10 Sep 2017 07:17:24 +0000 (15:17 +0800)]
v3.1.0
Mateusz Burzyński [Sat, 9 Sep 2017 18:08:15 +0000 (20:08 +0200)]
Testing all leading comments against being PURE comments (#2305)
Alex Lam S.L [Thu, 7 Sep 2017 14:08:34 +0000 (22:08 +0800)]
extend `unsafe` on pure global functions (#2303)
kzc [Wed, 6 Sep 2017 18:44:26 +0000 (14:44 -0400)]
add `Date` and other known globals to `unsafe` compress option (#2302)
Alex Lam S.L [Sun, 3 Sep 2017 18:32:33 +0000 (02:32 +0800)]
fix `collapse_vars` on default function argument (#2299)
Avoid collision with local variable `undefined` under certain corner cases.
fixes #2298
Alex Lam S.L [Sun, 3 Sep 2017 09:23:31 +0000 (17:23 +0800)]
correctly count declarations after `hoist_vars` (#2297)
fixes #2295
David Šanda [Wed, 30 Aug 2017 16:55:32 +0000 (18:55 +0200)]
Fix CLI example for mangle reserved list of names (#2294)
David Šanda [Tue, 29 Aug 2017 15:49:20 +0000 (17:49 +0200)]
Fix CLI source-maps examples (#2291)
fixes #2284
Alex Lam S.L [Mon, 28 Aug 2017 17:10:04 +0000 (01:10 +0800)]
fix `unused` patching of `AST_For.init` blocks (#2289)
fixes #2288
Alex Lam S.L [Sat, 19 Aug 2017 16:27:01 +0000 (00:27 +0800)]
v3.0.28
Erik Desjardins [Mon, 14 Aug 2017 04:30:08 +0000 (00:30 -0400)]
don't escape null characters as \0 when followed by any digit (#2273)
fixes #2272
Alex Lam S.L [Mon, 31 Jul 2017 18:38:32 +0000 (02:38 +0800)]
fix `ie8` mangling of top-level `AST_SymbolCatch` (#2263)
fixes #2254
Alex Lam S.L [Sat, 29 Jul 2017 17:50:42 +0000 (01:50 +0800)]
v3.0.27
Alex Lam S.L [Sat, 29 Jul 2017 15:02:04 +0000 (23:02 +0800)]
improve `mangle.properties` (#2261)
- include dead code when `keep_quoted`
- unify `keep_quoted` & `reserved`
- make `test/run-tests.js` consistent with `minify()`
fixes #2256