aboutsummaryrefslogtreecommitdiff
path: root/lib/scope.js
AgeCommit message (Expand)Author
2019-04-18fix corner case in `functions` (#3365)...fixes #3364Alex Lam S.L
2019-04-17reduce test exports (#3361)Alex Lam S.L
2019-04-15introduce `functions` (#3360)...`var f = function() {};` => `function f() {}`Alex Lam S.L
2019-04-01mangle shadowed lambda under `ie8` correctly (#3356)...fixes #3355Alex Lam S.L
2019-03-15fix corner case with `nameCache` (#3338)...fixes #3301Alex Lam S.L
2018-08-08clean up webkit quirks (#3229)Alex Lam S.L
2018-07-26fix corner case in `ie8` & `rename` (#3223)Alex Lam S.L
2018-07-19fix corner case in `ie8` (#3216)...fixes #3215Alex Lam S.L
2018-06-24fix corner case in `ie8` (#3198)...fixes #3197Alex Lam S.L
2018-06-06general clean-ups (#3175)Alex Lam S.L
2018-05-24fix corner cases with `eval()` (#3147)...fixes #3146Alex Lam S.L
2018-04-27improve general performance (#3104)Alex Lam S.L
2018-04-08fix corner case in reuse of `mangle` options (#3062)Alex Lam S.L
2018-04-03improve performance through `makePredicate()` (#3048)Alex Lam S.L
2018-03-30mangle unused nested `AST_SymbolCatch` correctly (#3038)...fixes #3035Alex Lam S.L
2018-03-23improve performance (#3020)...- replace `find_if()` with `all()` wherever possible - move ESTree-specific logic out of `figure_out_scope()`Alex Lam S.L
2018-03-07fix `mangle` of `AST_SymbolLambda` under `ie8` (#2978)...fixes #2976Alex Lam S.L
2018-02-24minor clean-ups (#2951)Alex Lam S.L
2018-02-23improve `mangle` (#2948)Alex Lam S.L
2018-01-23handle duplicate function declarations correctly (#2837)...fixes #2836Alex Lam S.L
2018-01-14improve SymbolDef info in `--output ast` (#2778)...* SymbolDef info (a.k.a. `thedef`) is now represented as a string containing `"ID name [mangled_name]"`. * Enhance display of `globals`, `variables`, `functions` and `enclosed`. * `SymbolDef.next_id` starts at `1` and the `id` is adjusted for `-o ast` display.kzc
2018-01-12add SymbolDef IDs to --output ast (#2772)kzc
2018-01-09improve synergy between `compress` and `rename` (#2755)Alex Lam S.L
2018-01-05fix corner case with `arguments` as function name (#2729)...fixes #2728Alex Lam S.L
2018-01-05fix `mangle` name collision across files (#2722)Alex Lam S.L
2018-01-04drop `unused` assignment based on `reduce_vars` (#2709)Alex Lam S.L
2018-01-03fix `reduce_vars` on `AST_Defun` (#2708)Alex Lam S.L
2017-12-26replace single-use recursive functions (#2659)...fixes #2628Alex Lam S.L
2017-12-01improve code reuse (#2542)Alex Lam S.L
2017-11-24fix `rename` (#2501)...- suppress spurious `rename` from `commander` - handle `AST_SymbolCatch` correctlyAlex Lam S.L
2017-11-19expand 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
2017-11-12allow symbol replacement on multiple occurrences (#2472)...- all-or-nothing replacement - avoid unmangleable names fixes #2436Alex Lam S.L
2017-08-01fix `ie8` mangling of top-level `AST_SymbolCatch` (#2263)...fixes #2254 Alex Lam S.L
2017-07-15drop `unused` builtin globals under `unsafe` (#2236)...fixes #2233Alex Lam S.L
2017-06-23refactor `compute_char_frequency()` (#2152)...- minimise maintenance when updating AST - maximise code sharing between `master` & `harmony`Alex Lam S.L
2017-06-20ensure mangling works if catch reuses a scope variable (#2123)...fixes #2120Alex Lam S.L
2017-06-15compute `uses_arguments` correctly in `figure_out_scope()` (#2099)...fixes #2097Alex Lam S.L
2017-06-09marshal `mangle[.properties].reserved` from non-Array values (#2072)Alex Lam S.L
2017-05-26clean up `lib/scope.js` (#2003)...fixes #2004Alex 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-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-15unify CLI & API under `minify()` (#1811)...- rename `screw_ie8` to `ie8` - rename `mangle.except` to `mangle.reserved` - rename `mangle.properties.ignore_quoted` to `mangle.properties.keep_quoted` - compact `sourceMap` options - more stringent verification on input `options` - toplevel shorthands - `ie8` - `keep_fnames` - `toplevel` - `warnings` - support arrays and unquoted string values on CLI - drop `fromString` from `minify()` - `minify()` no longer handles any `fs` operations - unify order of operations for `mangle_properties()` on CLI & API - `bin/uglifyjs` used to `mangle_properties()` before even `Compressor` - `minify()` used to `mangle_properties()` after `Compressor` but before `mangle_names()` - both will now do `Compressor`, `mangle_names()` then `mangle_properties()` - `options.parse` / `--parse` for parser options beyond `bare_returns` - add `mangle.properties.builtins` to disable built-in reserved list - disable with `--mangle-props builtins` on CLI - `warnings` now off by default - add `--warn` and `--verbose` on CLI - drop `--enclose` - drop `--export-all` - drop `--reserved-file` - use `--mangle reserved` instead - drop `--reserve-domprops` - enabled by default, disable with `--mangle-props domprops` - drop `--prefix` - use `--source-map base` instead - drop `--lint` - remove `bin/extract-props.js` - limit exposure of internal APIs - update documentations closes #96 closes #102 closes #136 closes #166 closes #243 closes #254 closes #261 closes #311 closes #700 closes #748 closes #912 closes #1072 closes #1366 fixes #101 fixes #123 fixes #124 fixes #263 fixes #379 fixes #419 fixes #423 fixes #461 fixes #465 fixes #576 fixes #737 fixes #772 fixes #958 fixes #1036 fixes #1142 fixes #1175 fixes #1220 fixes #1223 fixes #1280 fixes #1359 fixes #1368Alex Lam S.L
2017-03-31sort options in alphabetical order (#1743)...They started off as functional groups I guess, but given the sheer number of options this is becoming too difficult to read.Alex Lam S.L
2017-03-31fix catch symbol mangling (#1734)...Only need to look up the immediate non-block/catch scope for the same-name special case. fixes #1733Alex Lam S.L
2017-03-28handle var within catch of the same name (#1711)...The following code prints `1`: var a = 1; !function(){ a = 4; try{ throw 2; } catch (a) { var a = 3; } }(); console.log(a); fixes #1708Alex Lam S.L
2017-03-28fix mangle for variable declared within catch block (#1706)...fixes #1704Alex 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-10fix catch variable reference in IE8 (#1587)...`AST_Scope.def_variable()` will overwrite `AST_Symbol.thedef`, so save a copy before calling. fixes #1586Alex Lam S.L
2017-03-05handle variable declaration within catch blocks (#1546)...accounts for IE8- scopingAlex Lam S.L