aboutsummaryrefslogtreecommitdiff
path: root/test/compress/reduce_vars.js
AgeCommit message (Expand)Author
2017-11-29backport test from #2526 (#2534)Alex Lam S.L
2017-11-28improve synergy between `collapse_vars` & `unused` (#2521)Alex Lam S.L
2017-11-16fix cross-scope inlining of `AST_Function`s (#2486)...fixes #2485Alex Lam S.L
2017-11-11extend `reduce_funcs` to cover cross-scope substitutions (#2469)...fixes #2468Alex 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-10fix object literal tracing in `reduce_vars` (#2461)Alex Lam S.L
2017-11-09fix multiple nested function substitutions (#2458)...fixes #2449Alex Lam S.L
2017-11-08preserve function identity in `reduce_vars` (#2451)...fixes #2450Alex Lam S.L
2017-11-07handle circular `function` reference gracefully (#2446)...fixes #2442Alex Lam S.L
2017-11-06account for `eval` & `with` in `reduce_vars` (#2441)...fixes #2440Alex 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-05extend function inlining safety checks (#2430)Alex Lam S.L
2017-11-05consolidate single-use `function` reduction (#2427)...fixes #2423Alex Lam S.L
2017-11-04reduce `this` within functions (#2421)...- only replace same-scope usages - augment `test/ufuzz.js` to test for `this` fixes #2420Alex Lam S.L
2017-10-29enhance `properties` (#2412)...- trim array items only if `side_effects` - extend to non-identifier propertiesAlex Lam S.L
2017-10-24fix `unsafe` `reduce_vars` on arrays & objects (#2397)Alex Lam S.L
2017-10-24enhance `unsafe` `evaluate` of arrays & objects (#2394)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-22fix `unsafe` escape analysis in `reduce_vars` (#2387)Alex Lam S.L
2017-10-21`unsafe` fix-ups for #2351 (#2379)Alex Lam S.L
2017-10-12more tests for #2351 (#2357)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-01enhance `reduce_vars` for `AST_Accessor` (#2339)...fixes #2336Alex Lam S.L
2017-07-05improve `compress` granularity through `typeofs` (#2201)...fixes #2198Alex Lam S.L
2017-06-23fix `reduce_vars` on `this` (#2145)...fixes #2140Alex 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-06-04fix `AST_Function` scope invariance (#2052)...improve function name hack in `run_code()`Alex Lam S.L
2017-05-14fix bugs with getter/setter (#1926)...- `reduce_vars` - `side_effects` - property access for object - `AST_SymbolAccessor` as key names enhance `test/ufuzz.js` - add object getter & setter - property assignment to setter - avoid infinite recursion in setter - fix & adjust assignment operators - 50% `=` - 25% `+=` - 2.5% each for the rest - avoid "Invalid array length" - fix `console.log()` - bypass getter - curb recursive reference - deprecate `-E`, always report runtime errorsAlex Lam S.L
2017-05-12remove support for `const` (#1910)...As this is not part of ES5.Alex Lam S.L
2017-05-12avoid `arguments` and `eval` in `reduce_vars` (#1924)...fixes #1922Alex Lam S.L
2017-05-07fix test for #1865 (#1873)Alex Lam S.L
2017-05-06fix `unsafe` on `evaluate` of `reduce_vars` (#1870)...Determine if variables with non-constant values can escape and be modified. fixes #1865Alex Lam S.L
2017-04-30enforce `toplevel` on other compress options (#1855)...Respect "funcs" and "vars" properly. fixes #1850Alex 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
2017-04-18support safe reassignments in `reduce_vars` (#1823)...`var a=1;a=2;x(a)` => `x(2)` fix pre-existing issues - reference counting on assignment - walking of anonymous functions - chained assignmentAlex Lam S.L
2017-04-18fix `reduce_vars` on conditionals (#1822)Alex Lam S.L
2017-04-17fix `reduce_vars` on boolean binary expressions (#1819)...Side effects of `&&` and `||` have not mattered until #1814, which takes assignment expressions into account.Alex Lam S.L
2017-04-17compress duplicated variable definitions (#1817)...These are surprisingly common, as people reuse the same variable name within loops or switch branches.Alex Lam S.L
2017-04-17fix `reduce_vars` within try-block (#1818)...Possible partial execution due to exceptions.Alex Lam S.L
2017-04-17enhance `reduce_vars` (#1814)...- allow immediate assignment after declaration of variable - relax modification rule for immutable value - fix order of visit for TreeWalker - remove extraneous codeAlex Lam S.L
2017-04-16fix variable substitution (#1816)...- let `collapse_vars` take care of value containing any symbols - improve overhead accountingAlex Lam S.L
2017-04-07introduce "strict" to `pure_getters` (#1795)Alex Lam S.L
2017-04-07fix `reduce_vars` on catch variable (#1794)...Improved catch handling in `figure_out_scope()` means special case treatment of IE8 is no longer valid in `reset_opt_flags()`. Also fixed recursive assignment in variable definition.Alex Lam S.L
2017-04-07fix incorrect context in variable substitution (#1791)...`AST_Node.optimize()` is context-aware, so don't cache its results to be used elsewhere. Also fixed a few cases of AST corruption and beef up safety of `pure_getters`.Alex Lam S.L
2017-04-02fix corner cases in switch and undefined (#1762)...- fix side effects in switch condition for singular blocks - fix `undefined` confusion with local variable - gate `OPT(AST_Switch)` with `switches` fixes #1758 fixes #1759Alex Lam S.L
2017-03-27handle overlapped variable definitions (#1691)...Process variable definitions with or without assigned values against: - `arguments` - named function arguments - multiple definitions within same scope Essentially demote variable declarations with no value assignments. Also fixed invalid use of `AST_VarDef` over `arguments` - should use a member of `AST_SymbolDeclaration` instead.Alex Lam S.L
2017-03-26fix `delete` related issues in `collapse_vars` and `reduce_vars` (#1689)Alex Lam S.L
2017-03-25fix `reduce_vars` on `AST_Switch` (#1671)...Take conditional nature of switch branches into account. fixes #1670Alex Lam S.L
2017-03-19make `expect_stdout` work on Node.js 0.12 (#1623)...That particular version of Node.js has messed up error messages, so provide a version-specific workaround. Also fixed an formatting issue which would cause `expect_stdout` to fail if error message contains excerpts of input. Apply `expect_stdout` to more applicable tests.Alex Lam S.L
2017-03-16fix `hoist_vars` on `reduce_vars` (#1607)...`hoist_vars` converts variable declarations into plain assignments, which then confuses `reduce_vars` fixes #1606Alex Lam S.L