Age | Commit message (Expand) | Author |
---|---|---|
2017-07-14 | fix `unsafe` `evaluate` of `Object` static methods (#2232)...fixes #2231 | Alex Lam S.L |
2017-07-14 | drop `unused` compound assignments (#2230)...fixes #2226 | Alex Lam S.L |
2017-07-13 | enhance `passes` (#2229)...- remove hardcoded upper limit - continue based on node count reduction - emit verbose statistics fixes #2226 | Alex Lam S.L |
2017-07-08 | handle duplicate argument names in `collapse_vars` (#2215) | Alex Lam S.L |
2017-07-07 | inlining of static methods & constants (#2211)...- guard by `unsafe` - support `Array`, `Math`, `Number`, `Object` & `String` fixes #2207 | Alex Lam S.L |
2017-07-06 | inline property access of object literal (#2209)...- only if property value is side-effect-free - guard by `unsafe` fixes #2208 | Alex Lam S.L |
2017-07-06 | suppress `collapse_vars` of `this` as call argument (#2204)...fixes #2203 | Alex Lam S.L |
2017-07-05 | improve `compress` granularity through `typeofs` (#2201)...fixes #2198 | Alex Lam S.L |
2017-07-03 | minor clean-ups to `evaluate` (#2197) | Alex Lam S.L |
2017-07-03 | improve parenthesis emission (#2196)...- eliminate `throw` usages - suppress extraneous parenthesis - `new function() {foo.bar()}.baz` - `for (function() { "foo" in bar; };;);` | Alex Lam S.L |
2017-07-03 | refactor `throw` usage within `compress` (#2193)...Eliminate exceptional constructs from normal control flow. | Alex Lam S.L |
2017-07-02 | drop argument value after `collapse_vars` (#2190) | Alex Lam S.L |
2017-07-02 | improve `inline` efficiency (#2188)...... by teaching `collapse_vars` some new tricks. fixes #2187 | Alex Lam S.L |
2017-06-27 | improve `unsafe_Func` (#2171)...- minimise disturbance to `compute_char_frequency()` - remove extraneous quotation marks | Alex Lam S.L |
2017-06-27 | parse `@global_defs` as expressions (#2169)...- let parser rejects non-conformant input - eliminate need for extraneous parenthesis | Alex Lam S.L |
2017-06-24 | fix `cascade` & `collapse` on property access of constants (#2158) | Alex Lam S.L |
2017-06-23 | synchronise `mangle.properties` for `minify()` & `test/compress` (#2151) | Alex Lam S.L |
2017-06-23 | refactor `Compressor.toplevel` (#2149) | Alex Lam S.L |
2017-06-23 | minimise `reduce_vars` cloning overhead (#2148) | Alex Lam S.L |
2017-06-23 | fix `reduce_vars` on `this` (#2145)...fixes #2140 | Alex Lam S.L |
2017-06-17 | make defensive copies when `inline` (#2116)...fixes #2114 | Alex Lam S.L |
2017-06-16 | fix loss of context in `collapse_vars` & `cascade` (#2112)...fixes #2110 | Alex Lam S.L |
2017-06-16 | in-place `tigten_body()` (#2111)...By reducing copies of `AST_Node` arrays, we should be able to reduce: - memory pressure - potential bugs caused by multiple references in AST - duplicated executions of `OPT()` | Alex Lam S.L |
2017-06-16 | correctly determine scope of `AST_This` (#2109)...fixes #2107 | Alex Lam S.L |
2017-06-16 | enforce `inline` scope restriction (#2106)...fixes #2105 | Alex Lam S.L |
2017-06-15 | suppress `inline` of `this` (#2103)...fixes #2101 | Alex Lam S.L |
2017-06-13 | fix variable accounting in `inline` (#2085)...fixes #2084 | Alex Lam S.L |
2017-06-08 | fix iteration over object with inherited properties (#2068)...fixes #2055 | Alex Lam S.L |
2017-06-07 | fix `cascade` on multi-branch evaluations (#2067)...Partially reverts #2059 as this has better coverage and performance. fixes #2062 | Alex Lam S.L |
2017-06-06 | fix `inline` handling of `AST_Call.args` (#2059) | Alex Lam S.L |
2017-06-06 | implement function inlining (#2053)...- empty body - single `AST_Return` - single `AST_SimpleStatement` - avoid `/*#__PURE__*/` Miscellaneous - enhance single-use function substitution fixes #281 | Alex Lam S.L |
2017-06-04 | fix `AST_Function` scope invariance (#2052)...improve function name hack in `run_code()` | Alex Lam S.L |
2017-06-01 | whitelist `unsafe` `evaluate` candidates (#2039)...- all arguments may accept constant values - return constant value - free of side effects - available & identical across locales and runtime environments | Alex Lam S.L |
2017-06-01 | enhance `unsafe` `evaluate` (#2037) | Alex Lam S.L |
2017-05-31 | introduce `unsafe_Func` (#2033)...Separate flag for #203 functionality. | Alex Lam S.L |
2017-05-29 | better fix for #512 & #2010 (#2019)...- remove duplicated functionalities - fix similar issue with `else` | Alex Lam S.L |
2017-05-27 | fix `hoist_funs` on block-scoped `function` under "use strict" (#2013)...Technically not part of ES5, but commonly used code exists in the wild. | Alex Lam S.L |
2017-05-27 | fix `if_return` on `AST_Defun` (#2010)...Previous fiix for #1052 perturbs declaration order of functions which leads to incorrect behaviour under "use strict". | Alex Lam S.L |
2017-05-26 | fix `dead_code` on block-scoped `function` under "use strict" (#2006)...Technically not part of ES5, but commonly used code exists in the wild. | Alex Lam S.L |
2017-05-22 | improve usability of `global_defs` in `minify()` (#1987)...Use `@key` to `parse()` string value as `AST_Node`. fixes #1986 | Alex Lam S.L |
2017-05-20 | enhance `if_return` to handle `return void...` (#1977)...fixes #512 | Alex Lam S.L |
2017-05-19 | introduce `unsafe_regexp` (#1970)...fixes #1964 | Alex Lam S.L |
2017-05-14 | fix 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 errors | Alex Lam S.L |
2017-05-12 | remove support for `const` (#1910)...As this is not part of ES5. | Alex Lam S.L |
2017-05-12 | avoid `arguments` and `eval` in `reduce_vars` (#1924)...fixes #1922 | Alex Lam S.L |
2017-05-12 | fix invalid transform on `const` (#1919)...- preserve (re)assignment to `const` for runtime error - suppress `cascade` on `const`, as runtime behaviour is ill-defined | Alex Lam S.L |
2017-05-06 | fix `unsafe` on `evaluate` of `reduce_vars` (#1870)...Determine if variables with non-constant values can escape and be modified. fixes #1865 | Alex Lam S.L |
2017-05-06 | kill `opera` (#1869) | Alex Lam S.L |
2017-05-06 | enhance `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-05-02 | rename variables for better readability (#1863) | Alex Lam S.L |