- 11 Sep, 2018 1 commit
-
-
Camillo Bruni authored
- Introduce Token::IsLiteral helper - Introduce Token::IsStrictReservedWord helper Drive-by-fix: - Use "token" instead of "tok" as variable name - Keep enum order consistent accross files Change-Id: Ie3b30a62dfbea761a31c32465c0afa681d326710 Reviewed-on: https://chromium-review.googlesource.com/1203952Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55804}
-
- 05 Sep, 2018 2 commits
-
-
Camillo Bruni authored
The two bool parameters are used for DCHECks in most places. By introducing more specialized enumes kAccessorGetterProperty and kAccessorSetterProperty we can simplify the checks. Bug: v8:7926 Change-Id: I61023f2da0d96ca5a4fba65c6ead309567144786 Reviewed-on: https://chromium-review.googlesource.com/1202822 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#55648}
-
Camillo Bruni authored
Bug: v8:7926 Change-Id: I1c3b831bb19c70e1e7c99f45ae50dbd1351ce2a7 Reviewed-on: https://chromium-review.googlesource.com/1202105 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#55637}
-
- 29 Aug, 2018 2 commits
-
-
Toon Verwaest authored
Change-Id: I04385d44f6175f7b391fb07ec4f1beb9abd4d22f Reviewed-on: https://chromium-review.googlesource.com/1194033Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#55500}
-
Toon Verwaest authored
This CL additionally uses IsInRange for token range checks. That only uses one branch rather than two. Change-Id: I52c6759ba195b55cb50c2ce9afbdc9b397495633 Reviewed-on: https://chromium-review.googlesource.com/1193875Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#55494}
-
- 28 Aug, 2018 1 commit
-
-
Toon Verwaest authored
Change-Id: I6fe237d4aec3745e993a65ddf31f5fafc3ce175d Reviewed-on: https://chromium-review.googlesource.com/1193368Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#55462}
-
- 26 Feb, 2018 1 commit
-
-
Adam Klein authored
This proposal has not moved beyoned stage 2 in two years, and has never moved past the HARMONY_INPROGRESS state in flag-definitions.h. It was originally added to aide in desugaring yield*, but is no longer used for that purpose. Bug: v8:4700, v8:7310 Change-Id: Ieca40d8e4bf565516bbe71e47b996daa70d2e835 Reviewed-on: https://chromium-review.googlesource.com/935297 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51582}
-
- 06 Feb, 2018 1 commit
-
-
Sathya Gunasekaran authored
Bug: v8:5368 Change-Id: Idcb13e039614167da8b5be879e5644dbcb9df271 Reviewed-on: https://chromium-review.googlesource.com/899881Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51128}
-
- 17 Jan, 2018 1 commit
-
-
Sathya Gunasekaran authored
This patch does not add any functionality, it just parses the private fields. Adds a new harmony flag as well. Bug: v8:5368 Change-Id: I71ce11868f458571eb57a4bc922223931ce5baa8 Reviewed-on: https://chromium-review.googlesource.com/862526Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#50662}
-
- 29 Nov, 2017 1 commit
-
-
Georg Neis authored
Prior to this change, the exponentiation operator was rewritten by the parser to a call of the Math.pow builtin. However, Math.pow does not accept BigInt arguments, while the exponentiation operator must accept them. This CL - removes the parser's special treatment of ** and **=, treating them like any other binary op instead. - adds a TFC builtin Exponentiate that does the right thing for all inputs. - adds interpreter bytecodes Exp and ExpSmi whose handlers call the Exponentiate builtin. For simplicity, they currently always collect kAny feedback. - adds a Turbofan operator JSExponentiate with a typed-lowering to the existing NumberPow and a generic-lowering to the Exponentiate builtin. There is currently no speculative lowering. Note that exponentiation for BigInts is actually not implemented yet, so we can't yet test it. Bug: v8:6791 Change-Id: Id90914c9c3fce310ce01e715c09eaa9f294f4f8a Reviewed-on: https://chromium-review.googlesource.com/785694Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#49696}
-
- 25 Oct, 2017 1 commit
-
-
Jakob Kummerow authored
and use a newly-introduced "enum class Operation" in all other places that so far passed Token::Values around. Also delete some related dead code along the way. Bug: v8:6921 Change-Id: I062f396d304aa62298cfeff202e3132a4a5597c1 Reviewed-on: https://chromium-review.googlesource.com/736851 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48944}
-
- 17 Oct, 2017 1 commit
-
-
Bruce Dawson authored
While change crrev.com/c/718338 was changing NULL to nullptr, change crrev.com/c/711334 was adding another NULL. I noticed this (eventually) because I was simultaneously trying to write a change which was very dependent on the precise value being used for null pointers. BUG=v8:6928,v8:6921 Change-Id: Ib42cccf90c91c050032cc9e34e44c99fd14ff1bb Reviewed-on: https://chromium-review.googlesource.com/722619 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#48651}
-
- 13 Oct, 2017 2 commits
-
-
Adam Klein authored
Reuses the existing logic for BigInt.parseInt, adapted slightly to allow octal and binary radix prefixes (and to support parsing of a raw character buffer, rather than a v8::internal::String). Bug: v8:6791 Change-Id: I41904b2204721eac452e0765fa9ff0ab26ee343b Reviewed-on: https://chromium-review.googlesource.com/711334 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48560}
-
Mathias Bynens authored
New code should use nullptr instead of NULL. This patch updates existing use of NULL to nullptr where applicable, making the code base more consistent. BUG=v8:6928,v8:6921 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I4687f5b96fcfd88b41fa970a2b937b4f6538777c Reviewed-on: https://chromium-review.googlesource.com/718338 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48557}
-
- 09 Oct, 2017 1 commit
-
-
Jan Krems authored
Rewrites import.meta expressions into null literals. Builds on top of- and requires dynamic import parsing to simplify the implementation. Adds a new --harmony-import-meta flag. BUG=v8:6693 Change-Id: Iadb7ddf6bad8986bf3ad641dbd3826fe730b5f44 Reviewed-on: https://chromium-review.googlesource.com/702678 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#48359}
-
- 16 Aug, 2017 1 commit
-
-
Adam Klein authored
This saves one pointer in Assignment for non-compound assignment expressions. Change-Id: I7ec32c1d378917c81ab55c42733b6af450ce65db Reviewed-on: https://chromium-review.googlesource.com/612673 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47380}
-
- 28 Jun, 2017 1 commit
-
-
Michael Starzinger authored
R=marja@chromium.org Change-Id: I957ba8c228aff2c17af8d629af86911f7b5366ec Reviewed-on: https://chromium-review.googlesource.com/552126Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46281}
-
- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 28 Mar, 2017 1 commit
-
-
Daniel Vogelheim authored
Introduce 'contextual keyword' tokens, which are parsed as identifiers but in some contexts are treated by the parser like proper keywords. These are usually keywords introduced by recent ECMAScript versions, which for reasons of backwards compatibility are still permissible as regular identifiers in most contexts. Current usage is to check for Token::IDENTIFIER and then do a string compare. With this change the initial scan will scan them as usual, but will then record the token as IDENTIFIER plus a secondary token with the 'contextual' value. BUG=v8:6902 Change-Id: I6ae390382998cf756a23720bd481cb9c0eb78a72 Reviewed-on: https://chromium-review.googlesource.com/459479 Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44189}
-
- 22 Aug, 2016 1 commit
-
-
adamk authored
Also lots of cleanup around the checking for 'await' as an identifier throughout the parser and preparser. R=caitp@igalia.com, littledan@chromium.org BUG=v8:4483,v8:5298 Review-Url: https://codereview.chromium.org/2267493002 Cr-Commit-Position: refs/heads/master@{#38798}
-
- 17 Aug, 2016 1 commit
-
-
vogelheim authored
1, restrict use of LiteralBuffers to the tokens that actually need it. - E.g., previously the Token::FUNCTION would have a literal buffer containing "function", which was never actually used. - This eliminates copies of the string data for every call to PeekAhead or SetBookmark. 2, document & enforce the "secret" Scanner API contract w/ DCHECK - Document & check the correspondence of token value and literal buffer. - Document & check preconditions for calling PeekAhead, ScanRegExp*, ScanTemplate*. BUG=v8:4947 Review-Url: https://codereview.chromium.org/2240513003 Cr-Commit-Position: refs/heads/master@{#38677}
-
- 16 May, 2016 1 commit
-
-
caitpotter88 authored
BUG=v8:4483 LOG=Y R=littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/1841543003 Cr-Commit-Position: refs/heads/master@{#36261}
-
- 29 Apr, 2016 1 commit
-
-
mike authored
Restrict the use of the `await` token as an identifier when parsing source text as module code. From http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words: > 11.6.2.2 Future Reserved Words > > The following tokens are reserved for used as keywords in future > language extensions. > > Syntax > > FutureReservedWord :: > enum > await > > await is only treated as a FutureReservedWord when Module is the goal > symbol of the syntactic grammar. BUG=v8:4767 LOG=N R=adamk@chromium.org Review-Url: https://codereview.chromium.org/1723313002 Cr-Commit-Position: refs/heads/master@{#35914}
-
- 18 Mar, 2016 1 commit
-
-
caitpotter88 authored
Implements Stage 4 proposal from http://rwaldron.github.io/exponentiation-operator/, without adding any knowledge of the feature to compiler backends. BUG=v8:3915 LOG=Y R=adamk@chromium.org, rossberg@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1678303002 Cr-Commit-Position: refs/heads/master@{#34890}
-
- 15 Jan, 2016 1 commit
-
-
mstarzinger authored
This refactoring removes the dependency on the Token class from the assembler.h header file, the utility function in question has nothing to do with assembling in the first place. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1594443003 Cr-Commit-Position: refs/heads/master@{#33330}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 17 Nov, 2015 1 commit
-
-
caitpotter88 authored
Per http://tc39.github.io/ecma262/#sec-identifiers-static-semantics-early-errors (13.2.2), make it a SyntaxError if an Identifier has the same StringValue as a ReservedWord. BUG=v8:2222, v8:1972 LOG=N R=adamk@chromium.org, rossberg@chromium.org, wingo@chromium.org Review URL: https://codereview.chromium.org/1429983002 Cr-Commit-Position: refs/heads/master@{#32052}
-
- 16 Nov, 2015 1 commit
-
-
adamk authored
All uses of Token::INIT also have access to the relevant VariableMode, so there's no reason to have more than one token representing an initializing assignment. Review URL: https://codereview.chromium.org/1431873006 Cr-Commit-Position: refs/heads/master@{#32016}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 28 Aug, 2015 1 commit
-
-
littledan authored
This patch makes 'let' a contextual keyword in both strict and sloppy mode. It behaves as a keyword when used at the beginning of a StatementListItem or lexical declaration at the beginning of a for statement, if it is followed by an identifier, [ or {. Implementing this change requires an extra token look-ahead by the parser which is only invoked in certain cases (so as to avoid parsing RegExps as ECMAScript tokens). This might result in a slowdown of the scanner, but performance testing of this patch hasn't yet found much of a regression. BUG=v8:3305 LOG=Y R=adamk,vogelheim Review URL: https://codereview.chromium.org/1315673009 Cr-Commit-Position: refs/heads/master@{#30451}
-
- 03 Mar, 2015 1 commit
-
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/974783003 Cr-Commit-Position: refs/heads/master@{#26956}
-
- 04 Feb, 2015 1 commit
-
-
marja authored
This enables adding more language modes in the future. For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to use a sequence of language modes which are progressively stricter, but we can express the language mode as combination of features. For now, LanguageMode can only be "sloppy" or "strict", and there are STATIC_ASSERTS in places which need to change when more modes are added. LanguageMode is a bit like the old LanguageMode when "extended" mode was still around (see https://codereview.chromium.org/8417035 and https://codereview.chromium.org/181543002 ) except that it's transmitted through all the layers (there's no StrictModeFlag). BUG= Review URL: https://codereview.chromium.org/894683003 Cr-Commit-Position: refs/heads/master@{#26419}
-
- 30 Jan, 2015 1 commit
-
-
caitpotter88 authored
BUG=v8:2159 LOG=N R=marja@chromium.org, arv@chromium.org Review URL: https://codereview.chromium.org/885243002 Cr-Commit-Position: refs/heads/master@{#26362}
-
- 14 Nov, 2014 1 commit
-
-
caitpotter88 authored
BUG=v8:3230 Review URL: https://codereview.chromium.org/663683006 Cr-Commit-Position: refs/heads/master@{#25362}
-
- 29 Sep, 2014 1 commit
-
-
arv@chromium.org authored
This allows the following: var x = 1; var o = {x}; This is under the --harmony-object-literals flag. BUG=v8:3584 LOG=y R=marja@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/584993002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Sep, 2014 1 commit
-
-
arv@chromium.org authored
This implements parsing for ClassExpression and ClassDeclaration. The runtime is not yet implemented and the value is currently hard coded to undefined. BUG=v8:3330 LOG=Y R=dslomov@chromium.org, marja@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/561913002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Aug, 2014 1 commit
-
-
dslomov@chromium.org authored
BUG=v8:3330 LOG=N R=arv@chromium.org, marja@chromium.org Review URL: https://codereview.chromium.org/480543002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
This way we don't clash with the ASSERT* macros defined by GoogleTest, and we are one step closer to being able to replace our homegrown base/ with base/ from Chrome. R=jochen@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/430503007 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jul, 2014 1 commit
-
-
marja@chromium.org authored
Arrow functions are parsed from ParseAssignmentExpression(). Handling the parameter list is done by letting ParseConditionalExpression() parse a comma separated list of identifiers, and it returns a tree of BinaryOperation nodes with VariableProxy leaves, or a single VariableProxy if there is only one parameter. When the arrow token "=>" is found, the VariableProxy nodes are passed to ParseArrowFunctionLiteral(), which will then skip parsing the paramaeter list. This avoids having to rewind when the arrow is found and restart parsing the parameter list. Note that the empty parameter list "()" is handled directly in ParsePrimaryExpression(): after is has consumed the opening parenthesis, if a closing parenthesis follows, then the only valid input is an arrow function. In this case, ParsePrimaryExpression() directly calls ParseArrowFunctionLiteral(), to avoid needing to return a sentinel value to signal the empty parameter list. Because it will consume the body of the arrow function, ParseAssignmentExpression() will not see the arrow "=>" token as next, and return the already-parser expression. The implementation is done in ParserBase, so it was needed to do some additions to ParserBase, ParserTraits and PreParserTraits. Some of the glue code can be removed later on when more more functionality is moved to ParserBase. Additionally, this adds a runtime flag "harmony_arrow_functions" (disabled by default); enabling "harmony" will enable it as well. BUG=v8:2700 LOG=N R=marja@chromium.org Review URL: https://codereview.chromium.org/383983002 Patch from Adrián Pérez de Castro <aperez@igalia.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jul, 2014 1 commit
-
-
marja@chromium.org authored
This reverts revision 22320. Reason: ASAN still detects leaks! Conflicts: src/preparser.h TBR=aperez@igalia.com,marja@chromium.org BUG= Review URL: https://codereview.chromium.org/389503002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-