aboutsummaryrefslogtreecommitdiff
path: root/test/compress/collapse_vars.js
AgeCommit message (Expand)Author
2018-02-01account for declaration assignment in `collapse_vars` (#2859)...fixes #2858Alex Lam S.L
2018-01-31relax `collapse_vars` on `AST_Exit` (#2855)...First introduced in #1862 to stop assignments to migrate beyond `return` or `throw`. Since then `collapse_vars` has been improved to handle various side-effect-related corner cases.Alex Lam S.L
2018-01-29compress chained compound assignments (#2850)Alex Lam S.L
2018-01-19improve `unused` on built-in functions (#2817)Alex Lam S.L
2018-01-16general improvements around `AST_ForIn` (#2796)...- compress using `collapse_vars` - remove unused `name` - simplify `loop_body`Alex Lam S.L
2018-01-15enhance `collapse_vars` (#2788)Alex Lam S.L
2018-01-09patch variable declaractions extracted within `catch` (#2753)...fixes #2749Alex Lam S.L
2017-12-26replace single-use recursive functions (#2659)...fixes #2628Alex Lam S.L
2017-12-18improve transversal efficiency in `collapse_vars` (#2611)...fixes #2603Alex Lam S.L
2017-12-15handle `inline` of function arguments (#2590)...fixes #2476Alex Lam S.L
2017-12-14improve `collapse_vars` (#2591)...- handle single-use assignments other than `AST_VarDef` - scan `AST_Call` for candidatesAlex Lam S.L
2017-12-14drop local assign-only variable in `return` (#2587)Alex Lam S.L
2017-12-14fold `cascade` functionality into `collapse_vars` (#2586)Alex Lam S.L
2017-12-13recover lost opportunities from #2574 (#2584)Alex Lam S.L
2017-12-13improve `collapse_vars` on side-effect-free replacements (#2583)Alex Lam S.L
2017-12-12fix `AST_VarDef.may_throw()` (#2580)Alex Lam S.L
2017-12-11fix `collapse_vars` on `switch` (#2578)Alex Lam S.L
2017-12-11handle exceptional flow correctly in `collapse_vars` (#2574)...fixes #2571Alex Lam S.L
2017-11-28improve synergy between `collapse_vars` & `unused` (#2521)Alex Lam S.L
2017-11-28drop assignment in `AST_VarDef.value` (#2522)...fixes #2516Alex Lam S.L
2017-11-24fix argument/atom collision by `collapse_vars` (#2507)...fixes #2506Alex Lam S.L
2017-11-24eliminate invalid state caching in `collapse_vars` (#2502)...fixes #2497Alex Lam S.L
2017-11-13fix replacement logic in `collapse_vars` (#2475)Alex Lam S.L
2017-11-12allow symbol replacement on multiple occurrences (#2472)...- all-or-nothing replacement - avoid unmangleable names fixes #2436Alex Lam S.L
2017-11-11implement 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 #2464Alex Lam S.L
2017-11-09fix multiple nested function substitutions (#2458)...fixes #2449Alex Lam S.L
2017-11-06consolidate & 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 #2437Alex Lam S.L
2017-11-05maintain call argument order in `collapse_vars` (#2426)...fixes #2425Alex Lam S.L
2017-10-23deduplicate declarations regardless of `toplevel` (#2393)Alex Lam S.L
2017-10-22safer `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-freeAlex Lam S.L
2017-10-19enhance `collapse_vars` around lazy operations (#2369)Alex Lam S.L
2017-10-18fix `AST_PropAccess` in `collapse_vars` (take 3) (#2375)...Suppress scanning beyond assignment to `a.b`Alex Lam S.L
2017-10-17fix `AST_PropAccess` in `collapse_vars` (take 2) (#2372)...fixes #2364Alex Lam S.L
2017-10-17fix `AST_PropAccess` in `collapse_vars` (#2370)...fixes #2364Alex Lam S.L
2017-10-17account for side-effects from `AST_This` in `collapse_vars` (#2365)Alex Lam S.L
2017-10-09perform `reduce_vars` on safe literals (#2351)...- constant expression - single reference - same scope - not across loop bodyAlex Lam S.L
2017-10-08collapse `a.b` whenever safe (#2350)Alex Lam S.L
2017-09-20suppress `collapse_vars` of `this` into "use strict" (#2326)...fixes #2319Alex Lam S.L
2017-09-16handle LHS side-effects on `cascade` & `collapse_vars` (#2314)...fixes #2313Alex Lam S.L
2017-09-04fix `collapse_vars` on default function argument (#2299)...Avoid collision with local variable `undefined` under certain corner cases. fixes #2298Alex Lam S.L
2017-07-14drop `unused` compound assignments (#2230)...fixes #2226Alex Lam S.L
2017-07-08handle duplicate argument names in `collapse_vars` (#2215)Alex Lam S.L
2017-07-06suppress `collapse_vars` of `this` as call argument (#2204)...fixes #2203Alex Lam S.L
2017-07-02drop argument value after `collapse_vars` (#2190)Alex Lam S.L
2017-07-02improve `inline` efficiency (#2188)...... by teaching `collapse_vars` some new tricks. fixes #2187Alex Lam S.L
2017-06-06implement function inlining (#2053)...- empty body - single `AST_Return` - single `AST_SimpleStatement` - avoid `/*#__PURE__*/` Miscellaneous - enhance single-use function substitution fixes #281Alex Lam S.L
2017-05-12remove support for `const` (#1910)...As this is not part of ES5.Alex Lam S.L
2017-05-12fix invalid transform on `const` (#1919)...- preserve (re)assignment to `const` for runtime error - suppress `cascade` on `const`, as runtime behaviour is ill-definedAlex Lam S.L
2017-05-06enhance `collapse_vars` (#1862)...- extend expression types - `a++` - `a=x;` - extend scan range - `for(init;;);` - `switch(expr){case expr:}` - `a = x; a = a || y;` - terminate upon `debugger;` closes #1821 fixes #27 fixes #315 fixes #1858 Alex Lam S.L
2017-04-20improve `unused` (#1832)...- extract leading value with side-effects out of `var` statement - reduce scanning of `AST_Definitions` from 3 passes to just onceAlex Lam S.L