aboutsummaryrefslogtreecommitdiff
path: root/lib/scope.js
AgeCommit message (Expand)Author
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
2012-09-18support for directivesMihai Bazon
2012-09-15figure out label targetsMihai Bazon
2012-09-11fixed some mess with symbols/scope...- all symbols now have a `thedef` property which is a SymbolDef object, instead of the `uniq` that we had before (pointing to the first occurrence of the name as declaration). - for undeclared symbols we still create a SymbolDef object in the toplevel scope but mark it "undeclared" - we can now call figure_out_scope after squeezing, which is useful in order not to mangle names that were dropped by the squeezer Mihai Bazon
2012-09-11checkpoint...- discard statements with no side effects (unsafe? could be) - safer hoist_vars (needs some revamping of scope/mangling) Mihai Bazon
2012-09-10adaptive base54 digits depending on char frequency (WIP)Mihai Bazon
2012-09-05fix for variable names like `toString`Mihai Bazon
2012-09-05cleaned up usage of AST_BlockStatement...The following nodes were instances of AST_BlockStatement: AST_Scope, AST_SwitchBlock, AST_SwitchBranch. Also, AST_Try, AST_Catch, AST_Finally were having a body instanceof AST_BlockStatement. Overloading the meaning of AST_BlockStatement this way turned out to be a mess; we now have an AST_Block class that is the base class for things having a block of statements (might or might not be bracketed). The `this.body` of AST_Scope, AST_Try, AST_Catch, AST_Finally is now an array of statements (as they inherit from AST_Block). Avoiding calling superclass's _walk function in walkers (turns out we walked a node multiple times). Mihai Bazon
2012-09-04checkpointMihai Bazon
2012-08-29don't mangle names of setters/gettersMihai Bazon
2012-08-27update (c) yearsMihai Bazon
2012-08-22added licenseMihai Bazon
2012-08-22declare some properties in the node constructor so that they're copied in cloneMihai Bazon
2012-08-21hint that brackets may be required in AST_BlockStatementMihai Bazon
2012-08-21cleaned up some mess and started the actual compressorMihai Bazon
2012-08-21some reorganization...(moved pretty much everything that relates to scope in scope.js, added a module for NodeJS that can be used with require() and exports everything.) Mihai Bazon
2012-08-21handle labels properly...(they can't be handled the same way as variables in a scope) Mihai Bazon
2012-08-21warn about unreferenced symbolsMihai Bazon
2012-08-21more fixes:...- added walker for AST_ObjectProperty - handle redefinitions properly (only mangle one symbol, make them all point to a single definition) DynarchLIB seems to run fine after mangling + compressed output. Mihai Bazon
2012-08-20added mangler and other stuffMihai Bazon
2012-08-20doc (WIP)Mihai Bazon
2012-08-19simple visitor API and code to figure out scope and referencesMihai Bazon