- 14 Oct, 2013 1 commit
-
-
rossberg@chromium.org authored
* Turn CaseClause into a proper AstNode R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/23684058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Oct, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=dcarney@chromium.org Review URL: https://codereview.chromium.org/25473002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2013 2 commits
-
-
jkummerow@chromium.org authored
This reverts r17017 for breaking LayoutTests. R=mstarzinger@chromium.org TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/25315002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=dcarney@chromium.org BUG= Review URL: https://codereview.chromium.org/25164003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2013 1 commit
-
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23859002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2013 1 commit
-
-
rossberg@chromium.org authored
Just a completely mechanical change... R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/17576005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jun, 2013 1 commit
-
-
wingo@igalia.com authored
This commit adds initial parser support for harmony iteration. Specifically, it will parse: for (x of y) {} for (let x of y) {} for (var x of y) {} The semantics are still unimplemented. TEST=mjsunit/harmony/for-of-syntax BUG=v8:2214 R=rossberg@chromium.org Review URL: https://codereview.chromium.org/15300018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 May, 2013 2 commits
-
-
svenpanne@chromium.org authored
This makes IndentedScope the single point where we can print additional info in the future, like e.g. AST IDs (at least when the TODOs are fixed). Minor other cleanups. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/15060005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/14864008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Apr, 2013 1 commit
-
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/13932006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Apr, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This patchset begins by adding support for "yield", which is unlike other tokens in JS. In a generator, whether strict or classic, it is a syntactic keyword. In classic mode it is an identifier. In strict mode it is reserved. This patch adds YIELD as a token to the scanner, and adapts the preparser and parser appropriately. It also parses "function*", indicating that a function is actually a generator, for both eagerly and lazily parsed functions. Currently "yield" just compiles as "return". BUG=v8:2355 TEST=mjsunit/harmony/generators-parsing Review URL: https://codereview.chromium.org/12646003 Patch from Andy Wingo <wingo@igalia.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Feb, 2013 1 commit
-
-
rossberg@chromium.org authored
in preparation of the introduction of ES6 'symbols' (aka private/unique names). The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders. The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently). R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/12210083 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://chromiumcodereview.appspot.com/11528003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2012 1 commit
-
-
danno@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11498006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Dec, 2012 1 commit
-
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Committed: https://code.google.com/p/v8/source/detail?r=13117 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Dec, 2012 2 commits
-
-
danno@chromium.org authored
TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/11415261 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Committed: https://code.google.com/p/v8/source/detail?r=13105 Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Nov, 2012 2 commits
-
-
danno@chromium.org authored
TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/11414262 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure. Review URL: https://codereview.chromium.org/10701054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Nov, 2012 1 commit
-
-
rossberg@chromium.org authored
Modules now have their own local scope, represented by their own context. Module instance objects have an accessor for every export that forwards access to the respective slot from the module's context. (Exports that are modules themselves, however, are simple data properties.) All modules have a _hosting_ scope/context, which (currently) is the (innermost) enclosing global scope. To deal with recursion, nested modules are hosted by the same scope as global ones. For every (global or nested) module literal, the hosting context has an internal slot that points directly to the respective module context. This enables quick access to (statically resolved) module members by 2-dimensional access through the hosting context. For example, module A { let x; module B { let y; } } module C { let z; } allocates contexts as follows: [header| .A | .B | .C | A | C ] (global) | | | | | +-- [header| z ] (module) | | | +------- [header| y ] (module) | +------------ [header| x | B ] (module) Here, .A, .B, .C are the internal slots pointing to the hosted module contexts, whereas A, B, C hold the actual instance objects (note that every module context also points to the respective instance object through its extension slot in the header). To deal with arbitrary recursion and aliases between modules, they are created and initialized in several stages. Each stage applies to all modules in the hosting global scope, including nested ones. 1. Allocate: for each module _literal_, allocate the module contexts and respective instance object and wire them up. This happens in the PushModuleContext runtime function, as generated by AllocateModules (invoked by VisitDeclarations in the hosting scope). 2. Bind: for each module _declaration_ (i.e. literals as well as aliases), assign the respective instance object to respective local variables. This happens in VisitModuleDeclaration, and uses the instance objects created in the previous stage. For each module _literal_, this phase also constructs a module descriptor for the next stage. This happens in VisitModuleLiteral. 3. Populate: invoke the DeclareModules runtime function to populate each _instance_ object with accessors for it exports. This is generated by DeclareModules (invoked by VisitDeclarations in the hosting scope again), and uses the descriptors generated in the previous stage. 4. Initialize: execute the module bodies (and other code) in sequence. This happens by the separate statements generated for module bodies. To reenter the module scopes properly, the parser inserted ModuleStatements. R=mstarzinger@chromium.org,svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/11093074 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Feb, 2012 1 commit
-
-
rossberg@chromium.org authored
R=jkummerow@chromium.org BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9496003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Feb, 2012 1 commit
-
-
rossberg@chromium.org authored
Define modules as module declarations. Separate function declarations from var declarations. R=jkummerow@chromium.org BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9460064 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Feb, 2012 1 commit
-
-
rossberg@chromium.org authored
Module definitions are not compiled or otherwise executed yet. Toplevel module identifiers are bound but never initialized. R=kmillikin@chromium.org,mstarzinger@google.com BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9401008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Feb, 2012 2 commits
-
-
rossberg@chromium.org authored
R=jkummerow@chromium.org BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9373023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Turns Declaration into an abstract class, and introduces VariableDeclaration as a concrete subclass. R=kmillikin@chromium.org BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9348057 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Feb, 2012 1 commit
-
-
kmillikin@chromium.org authored
We are not currently maintaining or testing this. R=danno@chromium.org BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9363019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Dec, 2011 1 commit
-
-
yangguo@chromium.org authored
BUG=v8:1866 TEST=d8 --print-source Review URL: http://codereview.chromium.org/8969021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Sep, 2011 1 commit
-
-
svenpanne@chromium.org authored
The Great Master Plan is to move the recognition of special cases for comparisons further down the compilation pipeline where more information is available. This is a first step into this direction: The special handling of equality comparisons involving null is pushed from the parser to the code generators, removing the need for a special AST node. (There are rumors from usually well-informed sources that this node type is actually a relic of ancient crankshaft days...) The next steps will be the unification of null/undefined handling and pushing the special case handling in crankshaft even further down the pipeline, enabling the recognition of cases like "var foo=null; if (foo === bar) ...", but these will be in separate CLs. Review URL: http://codereview.chromium.org/7887037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2011 1 commit
-
-
svenpanne@chromium.org authored
Review URL: http://codereview.chromium.org/7866041 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Sep, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
As pointed out in: http://codereview.chromium.org/7754007/#msg5 "SmartPointer should have been named SmartArrayPointer as it expects an input allocated using new[] and deallocates it using delete[]. Using it as a simple scoped pointer for a single object is incorrect." R=mnaganov@chromium.org Review URL: http://codereview.chromium.org/7860011 Patch from Thiago Farina <tfarina@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Sep, 2011 1 commit
-
-
kmillikin@chromium.org authored
All the constructs that used it are now properly bracketed in the AST and we handle abrupt exits without try/finally. We can treat normal context exit as occurring implicitly at the end of a body. Review URL: http://codereview.chromium.org/7837025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Sep, 2011 1 commit
-
-
kmillikin@chromium.org authored
R=fschneider@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7824038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Aug, 2011 1 commit
-
-
kmillikin@chromium.org authored
Remove the try/finally used for with and catch. Instead of using try/finally to handle break and continue from with or catch, statically track nesting dept and clean up when compiling break or continue. And instead of using try/finally to handle throw to handler in a frame whose pc is inside a with or catch, store the context that the handler should run in in the handler itself. BUG= TEST= Review URL: http://codereview.chromium.org/7618007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
The catch variable is bound in the catch scope. For simplicity in this initial implementation, it is always allocated even if unused and always allocated to a catch context even if it doesn't escape. The presence of catch is no longer treated as a with. In this change, care must be taken to distinguish between the scope where a var declaration is hoisted to and the scope where the initialization occurs. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7280012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jun, 2011 2 commits
-
-
karlklose@chromium.org authored
Review URL: http://codereview.chromium.org/7187007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
karlklose@chromium.org authored
This reverts commit ceb31498b9d69edca3260820fb4047045891ce6d. TBR=kmillikin@chromium.org Review URL: http://codereview.chromium.org/7172030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jun, 2011 1 commit
-
-
karlklose@chromium.org authored
Review URL: http://codereview.chromium.org/7167006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
Introduce separate maps for function and with contexts. Use the function context map for testing whether a context is a function context (global contexts are no longer function contexts). Split the paths for allocating with and catch contexts. Rename some functions. Generally refactor code to make it simpler. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7003058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jun, 2011 1 commit
-
-
kmillikin@chromium.org authored
The AST for TryCatch gives us enough structure that we do not need to expand it to explicitly include a with. Try/catch is still handled the same as before at runtime. R=ager@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7134014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 May, 2011 1 commit
-
-
svenpanne@chromium.org authored
Fixed pretty printing of typeof/delete/void expressions. Put spaces around binary operations and comparisons to improve readability. Review URL: http://codereview.chromium.org/7055008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-