aboutsummaryrefslogtreecommitdiff
path: root/lib/scope.js
AgeCommit message (Expand)Author
2015-03-16rename --prop-cache to --name-cache...... and support storing there variable names as well, to help with multiple invocations when mangling toplevel. Mihai Bazon
2015-01-04Add an option to prevent function names from being mangled...See #552. This is mostly useful for having the actual function names in traces. Richard van Velzen
2014-12-01fix base54Cheng Liangyu
2014-09-12Don't warn for an unreferenced exception symbol in a catch block.Arnavion
2014-02-14Mangle name of exception when --screw-ie8. Fix #430....The effect of not mangling it was visible only with --screw-ie8 (otherwise the names would be mangled exactly because they leaked into the parent scope). Mihai Bazon
2013-12-16minorMihai Bazon
2013-12-16bugfix #242colorhook
2013-12-05AST_Catch shouldn't really inherit from AST_Scope. Fix #363...I hereby acknowledge that figure_out_scope has become a mess. Mihai Bazon
2013-11-28Properly scope `catch` identifier when --screw-ie8...Fix #344 Mihai Bazon
2013-10-29Fix typoMihai Bazon
2013-10-29Avoid shadowing name of function expression with function argument...Close #179, #326, #327 Mihai Bazon
2013-10-17`arguments` outside of a function is an ordinary variable....Fix #501 Mihai Bazon
2013-09-02Disallow `continue` referring to a non-IterationStatement. Fix #287...Simplifies handling of labels (their definition/references can be easily figured out at parse time, no need to do it in `figure_out_scope`). Mihai Bazon
2013-05-22Set "global" on undeclared SymbolDef-sMihai Bazon
2013-03-25renamed --screw-ie to --screw-ie8, documented it in README.md, indicated it d...Michał Gołębiowski
2013-03-22Keep legit code working even when --screw-ie is not passed....Previously: Without `--screw-ie`, UglifyJS would always leak names of function expressions into the containing scope, as if they were function declarations. That was to emulate IE<9 behavior. Code relying on this IE bug would continue to work properly after mangling, although it would only work in IE (since other engines don't share the bug). Sometimes this broke legitimage code (see #153 and #155). With `--screw-ie` the names would not be leaked into the current scope, working properly in legit cases; but still it broke legit code when running in IE<9 (see #24). Currently: Regardless of the `--screw-ie` setting, the names will not be leaked. Code relying on the IE bug will not work properly after mangling. <evil laughter here> Without `--screw-ie`: a hack has been added to the mangler to avoid using the same name for a function expression and some other variable in the same scope. This keeps legit code working, at the (negligible, indeed) cost of one more identifier. With `--screw-ie` you allow the mangler to name function expressions with the same identifier as another variable in scope. After mangling code might break in IE<9. Oh man, the commit message is longer than the patch. Fix #153, #155 Mihai Bazon
2013-03-13Support mangling toplevel names...Close #127 Mihai Bazon
2013-03-02Add `--screw-ie` option...For now the implication is that UglifyJS will not leak a function expression's name in the surrounding scope (IE < 9 does that). (ref. mishoo/UglifyJS#485) Mihai Bazon
2013-02-06Fix handling of constants...Close #113 Mihai Bazon
2013-01-04Fix handling of labels in nested scopesMihai Bazon
2013-01-02Implement `-m sort=true`...close #83 Mihai Bazon
2012-12-05When hoisting variables, try to merge in assignments that follow.Mihai Bazon
2012-11-08fix API breakage...close #36, #38 Mihai Bazon
2012-11-07add AST_Accessor and AST_SymbolAccessor node types...AST_Accessor will represent the function for a setter or getter. Since they are not mangleable, and they should not introduce a name in scope, we have a new node for their name (AST_SymbolAccessor) which doesn't inherit from AST_SymbolDeclaration. fix #37 Mihai Bazon
2012-11-06add option to mangle names even if eval/with is in use...(for more fair comparison to Closure compiler) Mihai Bazon
2012-11-02use a Dictionary object instead of plain object for hashes...to mitigate the `__proto__` issue related to #30 Mihai Bazon
2012-10-25cripple scope to make IE happy :-(...close #24 Mihai Bazon
2012-10-17the `sort` option is broken anyway, removed it...we need to mangle names from outermost to innermost scope; mangling names from inner scopes before we got to the outer scope won't work correctly, therefore sorting doesn't make sense. Mihai Bazon
2012-10-13fix regression from fb5c01c073d06034815d5f3b782fd11cbdf6d6f5...is_digit takes a char code now, not a string Mihai Bazon
2012-10-11cleanup...- use prototype-less objects where feasible (minor speed improvement) - get rid of HOP Mihai Bazon
2012-10-11fix propagation of symbol referencesMihai Bazon
2012-10-10seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclarationMihai Bazon
2012-10-10add `--lint` and display {file} in scope_warningsMihai Bazon
2012-10-09added $propdoc to AST nodes and some cleanups...hopefully we can make the AST documentation self-generating Mihai Bazon
2012-10-08should not expose base54.sort() in the API docs, I thinkMihai Bazon
2012-10-05prevent mangling only when eval is *called*, not when it's just referencedMihai Bazon
2012-10-04removed some unused variablesMihai Bazon
2012-10-03more cleanup (dropped AST_SwitchBlock)Mihai Bazon
2012-10-02option to exclude certain names from manglingMihai Bazon
2012-10-02support definesMihai Bazon
2012-10-02"use strict";Mihai Bazon
2012-10-02add AST_SymbolConst for names defined with `const`Mihai Bazon
2012-10-02a shy attempt to obey `width` in the beautifier; added `bracketize` option to...Mihai Bazon
2012-09-28minorMihai Bazon
2012-09-27fix mangling...(bug in our code prevented the mangler from using a name that was in use prior to mangling but not after it) Mihai Bazon
2012-09-23properly drop mutually-referring declarations that are not otherwise...referenced and have no side effects Mihai Bazon
2012-09-21better support for multiple input files:...- use a single AST_Toplevel node for all files - keep original source filename in the tokens Mihai Bazon
2012-09-19drop unused variablesMihai Bazon
2012-09-18fixed label scope/manglingMihai Bazon
2012-09-18minorMihai Bazon