- 23 Sep, 2016 1 commit
-
-
vogelheim authored
R=marja@chromium.org BUG=v8:4947 Review-Url: https://codereview.chromium.org/2366573002 Cr-Commit-Position: refs/heads/master@{#39662}
-
- 20 Sep, 2016 2 commits
-
-
vogelheim authored
- Eliminates *all* copies in the process. - Moves (nearly) all functionality into Scanner::BookmarkScope. - Significant code reduction. [Needs to be rebased once crrev.com/2347883002 lands. All changes in *parser* are from that CL.] R=marja@chromium.org BUG=v8:4947 Review-Url: https://codereview.chromium.org/2341323002 Cr-Commit-Position: refs/heads/master@{#39554}
-
vogelheim authored
BUG=v8:4947 Review-Url: https://codereview.chromium.org/2347883002 Cr-Commit-Position: refs/heads/master@{#39533}
-
- 19 Sep, 2016 1 commit
-
-
vogelheim authored
This is in preparation for upcmoming scanner + bookmarking cleanups. Also, drive-by fix for setting a bookmark close to the end of the stream, when the look-ahead character (c0_) is kEndOfInput, which the bookmarking logic also used as kNoBookmark. R=marja@chomium.org BUG=v8:4947 Review-Url: https://codereview.chromium.org/2345053003 Cr-Commit-Position: refs/heads/master@{#39507}
-
- 16 Sep, 2016 1 commit
-
-
vogelheim authored
- Smaller, more consistent streams API (Advance, Back, pos, Seek) - Remove implementations from the header, in favor of creation functions. Observe: - Performance: - All Utf16CharacterStream methods have an inlinable V8_LIKELY w/ a body of only a few instructions. I expect most calls to end up there. - There used to be performance problems w/ bookmarking, particularly with copying too much data on SetBookmark w/ UTF-8 streaming streams. All those copies are gone. - The old streaming streams implementation used to copy data even for 2-byte input. It no longer does. - The only remaining 'slow' method is the Seek(.) slow case for utf-8 streaming streams. I don't expect this to be called a lot; and even if, I expect it to be offset by the gains in the (vastly more frequent) calls to the other methods or the 'fast path'. - If it still bothers us, there are several ways to speed it up. - API & code cleanliness: - I want to remove the 'old' API in a follow-up CL, which should mostly delete code, or replace it 1:1. - In a 2nd follow-up I want to delete much of the UTF-8 handling in Blink for streaming streams. - The "bookmark" is now always implemented (and mostly very fast), so we should be able to use it for more things. - Testing & correctness: - The unit tests now cover all stream implementations, and are pretty good and triggering all the edge cases. - Vastly more DCHECKs of the invariants. BUG=v8:4947 Review-Url: https://codereview.chromium.org/2314663002 Cr-Commit-Position: refs/heads/master@{#39464}
-
- 06 Sep, 2016 1 commit
-
-
bakkot authored
This introduces ClassLiteralProperty and a supertype LiteralProperty of it and ObjectLiteralProperty. It also splits the parsing of the two. This substiantially clarifies some logic, especially as classes continue to evolve, and is also about a 2% performance improvement to parsing either kind of property (since no work is wasted on logic only necessary for the other kind). Also, it saves a word on ObjectLiteralProperties. Review-Url: https://codereview.chromium.org/2302643002 Cr-Commit-Position: refs/heads/master@{#39219}
-
- 25 Aug, 2016 1 commit
-
-
vogelheim authored
DuplicateFinder isn't actually used by the Scanner, except for one convenience function which we should probably remove, also. BUG= Review-Url: https://codereview.chromium.org/2281443002 Cr-Commit-Position: refs/heads/master@{#38904}
-
- 22 Aug, 2016 1 commit
-
-
vogelheim authored
(40B -> 32B, due to alignment rules. Should be neutral on 32b platforms.) BUG=v8:4947 Review-Url: https://codereview.chromium.org/2256183005 Cr-Commit-Position: refs/heads/master@{#38794}
-
- 19 Aug, 2016 1 commit
-
-
vogelheim authored
This isn't the most elegant fix, but I'd prefer to not rework the logic right now. What happens is: - Most parts of the Scanner use nullptr to mean, no literal buffer. - The bookmarking logic may end up with a state where there's a non-nullptr literal buffer, but it's empty. (length 0) - These are functionally equivalent, so there's no 'real' bug. - But it makes it hard to reason. This patch hence checks for length-0 literal buffers, and uses nullptr instead. R=marja@chromium.org BUG=chromium:639191 v8:4947 Review-Url: https://codereview.chromium.org/2258073003 Cr-Commit-Position: refs/heads/master@{#38756}
-
- 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}
-
- 10 Aug, 2016 1 commit
-
-
vogelheim authored
Reduce the Scanner API, in order to make subsequent rework easier. R=marja@chromium.org BUG=v8:4947 Review-Url: https://codereview.chromium.org/2192883002 Cr-Commit-Position: refs/heads/master@{#38522}
-
- 02 Aug, 2016 1 commit
-
-
adamk authored
It's shipped in M52. R=caitp@igalia.com, littledan@chromium.org Review-Url: https://codereview.chromium.org/2203843002 Cr-Commit-Position: refs/heads/master@{#38256}
-
- 12 Jul, 2016 1 commit
-
-
oth authored
LOG=N BUG= Review-Url: https://codereview.chromium.org/2135573002 Cr-Commit-Position: refs/heads/master@{#37676}
-
- 09 Jun, 2016 2 commits
-
-
lpy authored
We ported hashmap.h into libsampler as a workaround before, so the main focus of this patch is to reduce code duplication. This patch moves the hashmap into src/base as well as creates DefaultAllocationPolicy using malloc and free. BUG=v8:5050 LOG=n Review-Url: https://codereview.chromium.org/2010243003 Cr-Commit-Position: refs/heads/master@{#36873}
-
verwaest authored
We have fast-paths in identifier and string scanning that know that so far they have only handled one-byte input. In that case, we can add chars to the literal buffer assuming that it's still in one-byte state, avoiding 2 branches. This seemingly reduces identifier scanning from ~5% to ~4% on octane-codeload. BUG= Review-Url: https://codereview.chromium.org/2044233004 Cr-Commit-Position: refs/heads/master@{#36868}
-
- 16 May, 2016 2 commits
-
-
jwolfe authored
Re-landing https://codereview.chromium.org/1948403002/ New changes: move variable initialization to make compiler happy BUG=v8:4973 LOG=y Review-Url: https://codereview.chromium.org/1969203004 Cr-Commit-Position: refs/heads/master@{#36262}
-
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}
-
- 13 May, 2016 1 commit
-
-
machenbach authored
Revert of add UseCounters for NonOctalDecimalIntegerLiteral in strict mode (patchset #6 id:100001 of https://codereview.chromium.org/1948403002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug%20builder/builds/602 Original issue's description: > In parallel to the strict octal check that would reject `012` in strict mode, this patch collects UseCounters for `089` in strict mode. The spec says this should be an error, but this patch does not report it as such. > > BUG=v8:4973 > LOG=y > > Committed: https://crrev.com/d0b6686c14339bd5d0aeaf610705c7ed85393e1f > Cr-Commit-Position: refs/heads/master@{#36221} TBR=littledan@chromium.org,caitpotter88@gmail.com,jwolfe@igalia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4973 Review-Url: https://codereview.chromium.org/1970333004 Cr-Commit-Position: refs/heads/master@{#36224}
-
- 12 May, 2016 1 commit
-
-
jwolfe authored
In parallel to the strict octal check that would reject `012` in strict mode, this patch collects UseCounters for `089` in strict mode. The spec says this should be an error, but this patch does not report it as such. BUG=v8:4973 LOG=y Review-Url: https://codereview.chromium.org/1948403002 Cr-Commit-Position: refs/heads/master@{#36221}
-
- 03 May, 2016 1 commit
-
-
vogelheim authored
A wise man once said: If you want right result, compare right value. R=rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/1939173002 Cr-Commit-Position: refs/heads/master@{#35967}
-
- 28 Apr, 2016 1 commit
-
-
vogelheim authored
BUG=v8:4947 LOG=Y Review-Url: https://codereview.chromium.org/1919673006 Cr-Commit-Position: refs/heads/master@{#35857}
-
- 21 Mar, 2016 2 commits
-
-
caitpotter88 authored
Enables the Scanner to provide a better error message when errors occur in escape sequences, numbers, strings, etc. BUG=v8:4829, v8:3230 LOG=N R=adamk@chromium.org, littledan@chromium.org Review URL: https://codereview.chromium.org/1793913002 Cr-Commit-Position: refs/heads/master@{#34966}
-
vogelheim authored
Revert of Parser: Make skipping HTML comments optional. (patchset #6 id:140001 of https://codereview.chromium.org/1801203002/ ) Reason for revert: Violates ES6 spec (crbug.com/4850), and implementation was over-eager. Will revert for now. Original issue's description: > Parser: Make skipping HTML comments optional. > > API change: This adds a new flag skip_html_comments to v8::ScriptOriginOptions. This flag controls whether V8 will attempt to honour HTML-style comments in JS sources. > > (That is: Gracefully ignore <!-- ... ---> in JS sources, which was a popular technique in the early days of JavaScript, to prevent non-JS-enabled browsers from displaying script sources to uses.) > > The flag defaults to 'true' when using v8::ScriptOrigin constructor, which preserves the existing behaviour. Embedders which are happy with the existing behaviour will thus not need any changes. > > BUG=chromium:573887 > LOG=Y > > Committed: https://crrev.com/91d344288aa51ed03eaaa1cb3e368ac1e82f0173 > Cr-Commit-Position: refs/heads/master@{#34904} TBR=jochen@chromium.org,rossberg@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:573887, v8:4850 LOG=Y Review URL: https://codereview.chromium.org/1817163003 Cr-Commit-Position: refs/heads/master@{#34958}
-
- 18 Mar, 2016 2 commits
-
-
vogelheim authored
API change: This adds a new flag skip_html_comments to v8::ScriptOriginOptions. This flag controls whether V8 will attempt to honour HTML-style comments in JS sources. (That is: Gracefully ignore <!-- ... ---> in JS sources, which was a popular technique in the early days of JavaScript, to prevent non-JS-enabled browsers from displaying script sources to uses.) The flag defaults to 'true' when using v8::ScriptOrigin constructor, which preserves the existing behaviour. Embedders which are happy with the existing behaviour will thus not need any changes. BUG=chromium:573887 LOG=Y Review URL: https://codereview.chromium.org/1801203002 Cr-Commit-Position: refs/heads/master@{#34904}
-
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}
-
- 01 Mar, 2016 1 commit
-
-
yangguo authored
R=rossberg@chromium.org, ulan@chromium.org, vogelheim@chromium.org Review URL: https://codereview.chromium.org/1751863002 Cr-Commit-Position: refs/heads/master@{#34395}
-
- 27 Jan, 2016 1 commit
-
-
jochen authored
R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/1641673002 Cr-Commit-Position: refs/heads/master@{#33561}
-
- 08 Jan, 2016 1 commit
-
-
yangguo authored
R=rossberg@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1565183002 Cr-Commit-Position: refs/heads/master@{#33169}
-
- 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}
-
- 25 Nov, 2015 1 commit
-
-
bmeurer authored
ES6 section 12.2.8.1 states that flags for regular expression literals must be checked during parsing and invalid flags are early errors. This change adapts the Scanner and (Pre)Parser to act according to the spec. This is also a prerequisite to unify the handling of literal creation (for Objects, Arrays, Regexps, and at some point Classes). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1472323002 Cr-Commit-Position: refs/heads/master@{#32273}
-
- 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}
-
- 21 Oct, 2015 1 commit
-
-
vogelheim authored
(With a v8::Vector, the client is responsible for memory management. I think there can be a situation where the Vector has a char[1] backing store with '\0' in it, in which case the current code would leak. If we always Dispose() the backing store this should be avoided. Since dispose will delete[] the actual backing store, this should also work then the backing store is nullptr.) R=jochen@chromium.org BUG=chromium:525885 LOG=N Review URL: https://codereview.chromium.org/1410543005 Cr-Commit-Position: refs/heads/master@{#31446}
-
- 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}
-
- 20 Aug, 2015 1 commit
-
-
mstarzinger authored
This make inclusion of unicode-inl.h in object.h absolete. Now most compilation units don't require that header. It also breaks a cycle within declarations of the scanner.h header. This tries to remove includes of "-inl.h" headers from normal ".h" headers, thereby reducing the chance of any cyclic dependencies and decreasing the average size of our compilation units. Note that this change still leaves 3 violations of that rule in the code, checked with the "tools/check-inline-includes.sh" tool. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1287893006 Cr-Commit-Position: refs/heads/master@{#30268}
-
- 12 Aug, 2015 1 commit
-
-
mstarzinger authored
This tries to remove includes of "-inl.h" headers from normal ".h" headers, thereby reducing the chance of any cyclic dependencies and decreasing the average size of our compilation units. Note that this change still leaves 7 violations of that rule in the code. However there now is the "tools/check-inline-includes.sh" tool detecting such violations. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1283033003 Cr-Commit-Position: refs/heads/master@{#30125}
-
- 05 Aug, 2015 2 commits
-
-
adamk authored
It was shipped in V8 4.4. Review URL: https://codereview.chromium.org/1271073002 Cr-Commit-Position: refs/heads/master@{#30035}
-
adamk authored
These flags weren't doing any real work, since the decision of whether some source code is a script or module is made outside the parser (currently, by the V8 API). The only behavior change in this patch is to always parse 'import' and 'export' as their Token values, which changes the error message from "Unexpected reserved word" to "Unexpected token import" (which doesn't seem particularly harmful). Review URL: https://codereview.chromium.org/1262913003 Cr-Commit-Position: refs/heads/master@{#30034}
-
- 30 Jun, 2015 1 commit
-
-
bradnelson authored
The asm.js spec decides the type of numeric literals in several places based on if they contain a ".". http://asmjs.org/spec/latest/ Adding methods so that AST Literals can be checked for containg a dot. Adding a cctest that this information is available. LOG=N BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=test-parsing R=rossberg@chromium.org,titzer@chromium.org Review URL: https://codereview.chromium.org/1201783003 Cr-Commit-Position: refs/heads/master@{#29395}
-
- 26 Jun, 2015 1 commit
-
-
arv authored
Move class tests to es6 directory BUG=v8:3330 LOG=N R=adamk Review URL: https://codereview.chromium.org/1213813003 Cr-Commit-Position: refs/heads/master@{#29336}
-