- 17 Apr, 2014 1 commit
-
-
marja@chromium.org authored
This bug went unnoticed because PreParserIdentifier and Handle<String> have default ctors which create a null identifier, but this it not true for all possible identifier types (especially pointers). R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/238253012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2014 1 commit
-
-
marja@chromium.org authored
State of the art: - Chromium doesn't do a separate preparsing phase any more. - We start parsing with Parser, and when it sees a lazy function, it falls back to PreParser for that function. - The symbol data should contain symbols which are *outside* lazy functions. - So Parser should always produce symbol data, and PreParser should never. - Because it's this simple now, we don't need to keep track of "should produce symbol data" (i.e., whether we're inside a lazy func or not). R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/222123003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Apr, 2014 2 commits
-
-
rossberg@chromium.org authored
As required by the spec, and implemented by other browsers. (Plus minor clean-up for redeclaration TypeErrors.) R=marja@chromium.org BUG= LOG=Y Review URL: https://codereview.chromium.org/220473014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
Necessary for web legacy compatibility. Also fold in additional strict mode checks into LHS checks. Minor constness clean-ups on the way. R=marja@chromium.org BUG=chromium:358346 LOG=Y Review URL: https://codereview.chromium.org/217823003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Mar, 2014 1 commit
-
-
marja@chromium.org authored
The Isolate* member of ParserBase::FunctionState was only used by Parser. Removing it makes it clear that there are no isolates in PreParser. (There's also no Zone, since PreParserTraits::Type::Zone is void.) R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/216883003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2014 1 commit
-
-
marja@chromium.org authored
Historically, we used to track the "with-ness" of a scope differently; not creating a with scope, but setting a property on the scope (see https://codereview.chromium.org/5166006 ). For laziness decisions, checking the with-ness should be unnecessary: the current scope is function scope, and if the outer scope is global scope, there's surely no with scope in between. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/209863004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2014 3 commits
-
-
marja@chromium.org authored
Functions moved: ParseMemberWithNewPrefixesExpression, ParseMemberExpression, ParseMemberExpressionContinuation. Now all Parse*Expression functions are in ParserBase. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/207633003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
Includes cleanups: - Reorganized functions in PreParserFactory to be in the logical order. - De-hackified things PreParser doesn't need to track, such as IsCall & IsCallNew. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/206433003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
+ enable a test which checks that Parser and PreParser produce the "invalid left hand side" errors consistently. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/202333004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Mar, 2014 1 commit
-
-
marja@chromium.org authored
Notes: - This makes PreParser produce invalid_lhs_in_assignment and invalid_lhs_in_prefix_op. Other errors will follow as the corresponding funcs move to ParserBase. - PreParserExpression::IsStrictFunction and StrictFunction() are not needed any more -> removed them. R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/196343033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2014 4 commits
-
-
marja@chromium.org authored
This also makes PreParser produce the strict_delete error the same way as Parser (see test). R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/203193004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
This reverts revision 20077. Reason: build fail on some compilers. BUG= TBR=marja@chromium.org,rossberg@chromium.org Review URL: https://codereview.chromium.org/203413009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
This also makes PreParser produce the strict_delete error the same way as Parser (see test). R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/203193004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
This CL makes the Parser produce the data PreParser used to produce. This enables us to get rid of the unnecessary preparsing phase. The first part is here: https://codereview.chromium.org/199063003/ BUG= R=dcarney@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/203353002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Mar, 2014 1 commit
-
-
marja@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/203493002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Mar, 2014 4 commits
-
-
marja@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/196933005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/198053002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
TBR=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/199743006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for. To do: check properly in preparser already. R=marja@chromium.org, mstarzinger@chromium.org BUG=351658 LOG=Y Review URL: https://codereview.chromium.org/200473003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Mar, 2014 2 commits
-
-
marja@chromium.org authored
R=mstarzinger@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/197353003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
R=mstarzinger@chromium.org, mstarzinger BUG=v8:3126 LOG=N Committed: https://code.google.com/p/v8/source/detail?r=19908 Review URL: https://codereview.chromium.org/197653002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Mar, 2014 3 commits
-
-
marja@chromium.org authored
This reverts revision 19908. Reason: clang doesn't like it. BUG= Review URL: https://codereview.chromium.org/199233003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
R=mstarzinger@chromium.org, mstarzinger BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/197653002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/198713002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2014 3 commits
-
-
marja@chromium.org authored
R=rossberg@chromium.org, rossberg BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/196953004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
ReportUnexpectedToken already calls Traits::ReportMessageAt. If we're in Parser, that already suppresses the syntax error. If we're in PreParser, we don't need to suppress the syntax error (preparser errors don't go through Isolate, and having both stack overflow and a syntax error present is handled correctly by PreParserApi::PreParse). R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/197293003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=marja@chromium.org BUG= Review URL: https://codereview.chromium.org/197103002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2014 4 commits
-
-
marja@chromium.org authored
Notes: - PreParser didn't produce "too_many_arguments"; now it does. - The argument count in the error message was wrong; fixed it. BUG=v8:3126 LOG=N R=ulan@chromium.org Review URL: https://codereview.chromium.org/194503004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
BUG=v8:3126 LOG=N R=ulan@chromium.org Review URL: https://codereview.chromium.org/192993002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
- Merge LanguageMode and StrictModeFlag enums - Make harmony-scoping depend only on strict mode - Free some bits on the way - Plus additional clean-up and renaming R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/181543002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/177683002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Mar, 2014 1 commit
-
-
marja@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/190853011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Feb, 2014 1 commit
-
-
marja@chromium.org authored
`FS` is defined in `regset.h` on solaris and smartos. BUG= R=ulan@chromium.org, danno@chromium.org Review URL: https://codereview.chromium.org/176403004 Patch from Fedor Indutny <fedor.indutny@gmail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Feb, 2014 1 commit
-
-
marja@chromium.org authored
Notes: - The functions already did the same thing -> no changes in logic. - One less glue function needed now. R=ulan@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/169853002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Feb, 2014 1 commit
-
-
marja@chromium.org authored
Notes: - We use simple recursion to keep track of how many "new" operators we have seen and where. - This makes the self-baked stack class PositionStack in parser.cc unnecessary. - Now the logic is also unified between Parser and PreParser. - This is a fixed version of r19386. R=ulan@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/168583008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Feb, 2014 3 commits
-
-
marja@chromium.org authored
This reverts revision 19386. Reason: Mozilla failures. BUG= TBR=ulan@chromium.org,marja@chromium.org Review URL: https://codereview.chromium.org/164183006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
Notes: - We use simple recursion to keep track of how many "new" operators we have seen and where. - This makes the self-baked stack class PositionStack in parser.cc unnecessary. - Now the logic is also unified between Parser and PreParser. - It might have been a copy-paste artifact (ParseLeftHandSideExpression -> ParseMemberWithNewPrefixesExpression) that the logic was so complicated before. R=ulan@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/166943002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
marja@chromium.org authored
Notes: - To be able to move the recursive descent functions to ParserBase one at a time, we temporarily need routing functions from traits to Parser/PreParser, since the recursive descent functions form a cyclic structure. - PreParser used to always allow intrinsic syntax. After this CL, it depends on allow_natives_syntax() which was already in ParserBase. - This CL also decouples (Pre)ParserTraits better from (Pre)Parser, passing more information as parameters, so that the Traits don't need to get it from (Pre)Parser. R=ulan@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/163333003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Feb, 2014 2 commits
-
-
marja@chromium.org authored
Notes: - This removes Parser::FunctionState and PreParser::FunctionState and adds ParserBase::FunctionState etc. - Also the scope stacks and function state stacks are moved to ParserBase. - PreParser::FunctionState didn't add and subtract JSFunction::kLiteralsPrefixSize (unlike Parser::FunctionState). Since the actual value of NextMaterializedLiteralIndex is not used in the Preparser, this change is valid. - Traits no longer need functions like is_classic_mode(), since now there is a unified way of getting the information from the FunctionState / Scope. R=ulan@chromium.org BUG=v8:3126 LOG=N Review URL: https://codereview.chromium.org/135213007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
R=marja@chromium.org Review URL: https://codereview.chromium.org/163233003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-