- 05 Oct, 2017 1 commit
-
-
Marja Hölttä authored
The catch variable is a special VAR-mode variable which is not in a declaration scope. Normally creating such a variable is not possible with DeclareVariable, but Parser bypasses it by calling DeclareLocal directly (which doesn't have the hoisting check). PreParser used to cut corners and declare the catch variable as a LET-mode variable to prevent hoisting. But since LET and VAR variables behave differently when deciding whether they block sloppy block function hoisting, that approach doesn't fly. BUG=v8:5516,chromium:771474 Change-Id: Ic6f5f4996416c9fa59132725c8b0b6b570c72f48 Reviewed-on: https://chromium-review.googlesource.com/700634 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48308}
-
- 02 Oct, 2017 1 commit
-
-
Mathias Bynens authored
The context is the following proposal to make JSON a subset of JavaScript: https://github.com/tc39/proposal-json-superset There’s interest in performing a side investigation to answer the question of what would happen if we stopped treating U+2028 and U+2029 as `LineTerminator`s *entirely*. (Note that this is separate from the proposal, which just changes how these characters are handled in ECMAScript strings.) This is technically a breaking change, and IMHO it would be wonderful if we could get away with it, but no one really has any data on whether or not we could. Adding this use counter lets us get that data. BUG=v8:6827 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ia22e8db1634df4d3f965bec8e1cfa11cc7b5e9aa Reviewed-on: https://chromium-review.googlesource.com/693155 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48260}
-
- 29 Sep, 2017 1 commit
-
-
Marja Hölttä authored
We were unnecessarily storing everything as uint32_t, even though many items in the preparsed scope data can be stored as uint8_t. This CL also adds an (internal) API which abstracts away the actual data storing, so the backing store can be made even more efficient (e.g., use only 1-3 bytes for some uint32_t values, if they fit) without affecting other parts of the code. BUG=v8:5516,chromium:762492 Change-Id: I7cd4d91dc11f87f8aec9c7584044a6f2a59b73ba Reviewed-on: https://chromium-review.googlesource.com/684182 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#48231}
-
- 21 Sep, 2017 1 commit
-
-
Marja Hölttä authored
This fix is two-fold: 1) Incremental UTF-8 decoding: Unify incorrect UTF-8 handling between V8 and Blink. Incremental UTF-8 decoding used to allow some overlong sequences / invalid code points which Blink treated as errors. This caused the decoder and the Blink UTF-8 decoder to produce a different number of bytes, resulting in random failures when scripts were streamed (especially, this was detected by the skipping inner functions feature which adds CHECKs against expected function positions). 2) Non-incremental UTF-8 decoding: return the correct amount of invalid characters. According to the encoding spec ( https://encoding.spec.whatwg.org/#utf-8-decoder ), the first byte of an overlong sequence / invalid code point generates an invalid character, and the rest of the bytes are not processed (i.e., pushed back to the byte stream). When they're handled, they will look like lonely continuation bytes, and will generate an invalid character each. As a result, an overlong 4-byte sequence should generate 4 invalid characters (not 1). This is a potentially breaking change, since the (non-incremental) UTF-8 decoding is exposed via the API (String::NewFromUtf8). The behavioral difference happens when the client is passing in invalid UTF-8 (containing overlong / surrogate sequences). However, afaict, this doesn't change the semantics of any JavaScript program: according to the ECMAScript spec, the program is a sequence of Unicode code points, and there's no way to invoke the UTF-8 decoding functionalities from inside JavaScript. Though, this changes the behavior of d8 when decoding source files which are invalid UTF-8. This doesn't change anything related to URI decoding (it already throws exceptions for overlong sequences / invalid code points). BUG: chromium:765608, chromium:758236, v8:5516 Bug: Change-Id: Ib029f6a8e87186794b092e4e8af32d01cee3ada0 Reviewed-on: https://chromium-review.googlesource.com/671020 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#48105}
-
- 18 Sep, 2017 1 commit
-
-
Marja Hölttä authored
The bug occurred when we detected an erroneous char late, and put the last character in a chunk into the "incomplete char" buffer. It was not correctly retrieved when seeking. BUG=v8:6836 Change-Id: I8ca946dfdb39244c5ca0bdcebe047047010b3a07 Reviewed-on: https://chromium-review.googlesource.com/670729 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#48066}
-
- 08 Sep, 2017 1 commit
-
-
Marja Hölttä authored
This reverts commit de9269f3. Something's still wrong in the encoding handling (see bug). Bug: chromium:763106 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icd19dd42b84b9d090e191375a2942b9941110bcf Reviewed-on: https://chromium-review.googlesource.com/657386 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#47924}
-
- 31 Aug, 2017 1 commit
-
-
Marja Hölttä authored
PreParser and Parser didn't agree whether a generator in a sloppy block is a sloppy block function or not, and thus the data generated by PreParser was inconsistent with what the Parser wanted to restore. BUG=v8:5516, chromium:760116 Change-Id: I0fd3c267691b8afd63a1336774769caf551c143e Reviewed-on: https://chromium-review.googlesource.com/642886Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47727}
-
- 24 Aug, 2017 1 commit
-
-
Marja Hölttä authored
U+feff is the UTF BOM but if it occurs inside the text, it's a "zero-width no-break space". However, the UTF-8 decoder in script streaming still thought it's a BOM and skipped it. The correct way to handle it would be to create a U+feff code point instead - the Scanner will then handle it as whitespace. This is a discrepancy between the Blink UTF-8 decoder and the V8 UTF-8 decoder, and caused the source positions be off by one. This bug went unnoticed, since normally off-by-one in this situation doesn't make the code to break. BUG=chromium:758508,chromium:758236 Change-Id: Ib92a3ee65c402e21b77e42537db2a021cff55379 Reviewed-on: https://chromium-review.googlesource.com/632096Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47583}
-
- 16 Aug, 2017 1 commit
-
-
Marja Hölttä authored
Makes ClusterFuzz start fuzzing with the flag on. BUG=v8:5516 Change-Id: Ia80f7d22f12fe25efb226102a896e8b0e3537947 Reviewed-on: https://chromium-review.googlesource.com/610000 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47366}
-
- 14 Aug, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
* Avoid "using namespace" statements, which trigger clang's -Wheader-hygiene warnings in jumbo builds. * Undefine created macros at the end of source files. BUG=chromium:746958 Change-Id: I5d25432c314437f607b0e1be22765a6764267ba6 Reviewed-on: https://chromium-review.googlesource.com/610962Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Cr-Commit-Position: refs/heads/master@{#47347}
-
- 12 Aug, 2017 2 commits
-
-
Marja Hölttä authored
- See bug for the reduced test case. - Not adding a regression test here: I don't want to assert that PreParser doesn't detect the redeclaration error, OTOH I don't want to make it detect the error either (in order to not couple detecting the error with FLAG_experimental_preparser_analysis). BUG=chromium:753896, v8:5516 Change-Id: I0f1beffe30e5cb48d6dbec35181980864e6df153 Reviewed-on: https://chromium-review.googlesource.com/608976Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47326}
-
Marja Hölttä authored
These now pass because of https://chromium-review.googlesource.com/603787. BUG=v8:5516 Change-Id: Ifcb576056c3cba523e56c5c9c563724efe096012 Reviewed-on: https://chromium-review.googlesource.com/608972Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47325}
-
- 09 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Splits out AttachOuterScopeInfo from DeclarationScope::Analyze and attaches the outer scope info after parsing has completed (when parsing on the main thread, which is the only time we have an outer scope info) instead of during Compiler::Analyse(). BUG=v8:5203 TBR=yangguo@chromium.org Change-Id: Idd8d2409fb20f09a9f6bbf5cff7e6edcf90077d7 Reviewed-on: https://chromium-review.googlesource.com/605889 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47243}
-
- 04 Aug, 2017 1 commit
-
-
Marja Hölttä authored
In some cases, PreParser cannot replicate the Scope structure created by Parser. It happens esp. with arrow function parameters, since the relevant information is already lost by the time we figure out it's an arrow function. In these cases, PreParser should bail out of trying to create data for skipping inner functions. Implementation notes: - The arrow function case is more fundamental; the non-arrow case could be hacked together somehow if we implemented tracking is_simple for each param separately; but now that it's possible to bail out consistently from both cases, I don't think the is_simple complication is worth it. - The added mjsunit test cases are based on the test262 test cases which exposed the problem. - cctest/preparser/PreParserScopeAnalysis was exercising similar cases, but the problem didn't show up because the function parameters didn't contain skippable functions. Those test cases have been repurposed for testing the bailout. - Extra precaution: the bailout tests are in a separate file, to guard from the bug that a bailout case results in bailing out of *all* data creation, which would make all skipping tests in the same file useless. BUG=v8:5516 Change-Id: I4324749a5ec602fa5d7dc27647ade0284a6842fe Reviewed-on: https://chromium-review.googlesource.com/599849Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47170}
-
- 30 Jun, 2017 1 commit
-
-
Marja Hölttä authored
This way, each lazy function needs to handle only the data relevant to itself. This reduced data handling overheads. Other changes: 1) Don't deserialize the data; once it's on the heap, it can stay there. Lazy function compilation is only done in the main thread. 2) Separate ProducedPreParsedScopeData and ConsumedPreParsedScopeData. It's clearer, because: - The data looks fundamentally different when we're producing it and when we're consuming it. - Cleanly separates the operations we can do in the "producing phase" and in the "consuming phase". Bug: v8:5516 Change-Id: I6985a6621f71b348a55155724765624b5d5f7c33 Reviewed-on: https://chromium-review.googlesource.com/528094 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46347}
-
- 23 Jun, 2017 1 commit
-
-
Marja Hölttä authored
Make PreParser match what Parser does. BUG=v8:5516 Change-Id: I2801206fd17b9a5047bc43c6112f4945971596b7 Reviewed-on: https://chromium-review.googlesource.com/544949 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46169}
-
- 22 Jun, 2017 2 commits
-
-
Marja Hölttä authored
let f = function g() { ... } declares "g" inside the function. This CL makes the preparser declare it too, and saves + restores the scope data for it. BUG=v8:5516 Change-Id: Id4c64f446d30f5252038cfb0f0f473b85ba24a9b Reviewed-on: https://chromium-review.googlesource.com/544816 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#46133}
-
Marja Hölttä authored
The test setup was as follows: - Preparse function test() { ... }, get scope allocation data. - Apply the scope allocation data to (function test() { ... })(); - Compare against normal scope allocation for (function test() { ... })(); But the IIFE is unnecessary - we already disable lazy parsing. Cleaning this up is needed because in the next CL, I want to fix the Scopes produced by PreParser in this case: let f = function g() { // Here we should declare g! } And that fix will make the variables in function test() { // Here we don't declare test } and (function test() { // Here we do declare test })(); not match any more, so it doesn't make sense to compare them against each other. BUG=v8:5516 Change-Id: I93d154c6977bb3cbe405b6ca193cf6283df297bc Reviewed-on: https://chromium-review.googlesource.com/543341Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#46128}
-
- 19 Jun, 2017 1 commit
-
-
Wiktor Garbacz authored
Unify, simplify logic, reduce UTF8 specific handling. Intend of this is also to have stream views. Stream views can be used concurrently by multiple threads, but only one thread may fetch new data from the underlying source. This together with unified stream view creation is intended to be used for parse tasks. BUG=v8:6093 Change-Id: I83c6f1e6ad280c28da690da41c466dfcbb7915e6 Reviewed-on: https://chromium-review.googlesource.com/535474Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45994}
-
- 09 Jun, 2017 1 commit
-
-
Wiktor Garbacz authored
Also, as this is hard to track down, always DCHECK position after ReadBlock(). Change-Id: Ie32c3a311dd8df91f651b6d82ccacc7c95e6fde0 Reviewed-on: https://chromium-review.googlesource.com/528196 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45811}
-
- 06 Jun, 2017 1 commit
-
-
Marja Hölttä authored
This reverts commit 7fa071a4. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=729482 Original change's description: > Reland [parser] Refactor streaming scanner streams. > > Unify, simplify logic, reduce UTF8 specific handling. > > Intend of this is also to have stream views. > Stream views can be used concurrently by multiple threads, but > only one thread may fetch new data from the underlying source. > This together with unified stream view creation is intended to be > used for parse tasks. > > BUG=v8:6093 > > Change-Id: I3bce48185fa2c986d16619a9a8ece3ff4c4f5e60 > Reviewed-on: https://chromium-review.googlesource.com/509489 > Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Commit-Queue: Wiktor Garbacz <wiktorg@google.com> > Cr-Commit-Position: refs/heads/master@{#45688} TBR=marja@chromium.org,vogelheim@chromium.org,wiktorg@google.com # Not skipping CQ checks because original CL landed > 1 day ago. BUG=v8:6093 Change-Id: Iefa7c43a2f6ae3a7f3ef0f77d87b6ae36ae4be99 Reviewed-on: https://chromium-review.googlesource.com/525712Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45725}
-
- 02 Jun, 2017 1 commit
-
-
Wiktor Garbacz authored
Unify, simplify logic, reduce UTF8 specific handling. Intend of this is also to have stream views. Stream views can be used concurrently by multiple threads, but only one thread may fetch new data from the underlying source. This together with unified stream view creation is intended to be used for parse tasks. BUG=v8:6093 Change-Id: I3bce48185fa2c986d16619a9a8ece3ff4c4f5e60 Reviewed-on: https://chromium-review.googlesource.com/509489Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45688}
-
- 31 May, 2017 1 commit
-
-
Marja Hölttä authored
- Enable aggressive lazy inner funcs (make non-declaration funcs lazy, ie let f = function() { ... } when --experimental-preparser-scope-analysis is on. - Turn on variable tracking for lazy top level functions: this makes their inner functions skippable. - Test fix for an testing bug uncovered by this work: when restoring the data for the relevant scope, don't assume it's the outermost scope for which we have data. - Fix: if we abort lazy parsing a function, we shouldn't produce any data for it. BUG=v8:5516 Change-Id: I0606fbabb5886dc57dbb53ab5f3fb894ff5d032e Reviewed-on: https://chromium-review.googlesource.com/518165Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45615}
-
- 18 May, 2017 1 commit
-
-
Adam Klein authored
This reverts commit ce538f70. Reason for revert: breaks BOM handling (thus breaking Outlook web apps). Original change's description: > [parser] Refactor streaming scanner streams. > > Unify, simplify logic, reduce UTF8 specific handling. > > Intend of this is also to have stream views. > Stream views can be used concurrently by multiple threads, but > only one thread may fetch new data from the underlying source. > This together with unified stream view creation is intended to be > used for parse tasks. > > BUG=v8:6093 > > Change-Id: Ied8e93090c506d4735080298f0fdaeed32043915 > Reviewed-on: https://chromium-review.googlesource.com/501789 > Commit-Queue: Wiktor Garbacz <wiktorg@google.com> > Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45336} TBR=marja@chromium.org,vogelheim@chromium.org,jochen@chromium.org,wiktorg@google.com BUG=v8:6093, chromium:724166 Change-Id: I022a23b8052d20d83a640c07b7864c622548bf90 Reviewed-on: https://chromium-review.googlesource.com/508888Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45404}
-
- 17 May, 2017 1 commit
-
-
Marja Hölttä authored
Super calls need to refer to .this_function, .new.target and this, and super property references need to refer to .this_function and this, so that the is_used for those variables will be set and they will be allocated correctly. BUG=v8:5516 Change-Id: Idc58539fccad70c995e029051b59a67ea66bff91 Reviewed-on: https://chromium-review.googlesource.com/506094Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45376}
-
- 16 May, 2017 2 commits
-
-
Wiktor Garbacz authored
Unify, simplify logic, reduce UTF8 specific handling. Intend of this is also to have stream views. Stream views can be used concurrently by multiple threads, but only one thread may fetch new data from the underlying source. This together with unified stream view creation is intended to be used for parse tasks. BUG=v8:6093 Change-Id: Ied8e93090c506d4735080298f0fdaeed32043915 Reviewed-on: https://chromium-review.googlesource.com/501789 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#45336}
-
Marja Hölttä authored
These tests already pass. BUG=v8:5516 Change-Id: I7f4796cca98aa6c276143d83bcb018a67e0cbe55 Reviewed-on: https://chromium-review.googlesource.com/506193 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45327}
-
- 15 May, 2017 1 commit
-
-
Marja Hölttä authored
- Default constructor scopes won't need the scope data for deciding the scope allocation of variables inside them. Also, PreParser doesn't construct them. So they should be just skipped when applying the scope data. - PreParser needs to declare the class name + have a proper end position for the class scope. - This makes all mjsunit tests pass with --experimental-preparser-scope-analysis. - Also added several DCHECKs which were useful for debugging. BUG=v8:5516 Change-Id: I5b3e6c60ed79efe25f33576a3547d707c700c6dd Reviewed-on: https://chromium-review.googlesource.com/503208 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45303}
-
- 09 May, 2017 1 commit
-
-
Wiktor Garbacz authored
BUG=v8:6377 Change-Id: I5bdd41bdda83d7efe4b37d24d44e2e8c2339a30a Reviewed-on: https://chromium-review.googlesource.com/500168 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45204}
-
- 04 May, 2017 1 commit
-
-
Sathya Gunasekaran authored
Bug: v8:5045 Change-Id: I1d8b6be8a65595dc357c4f721b1a03425e025e6e Reviewed-on: https://chromium-review.googlesource.com/463811 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Daniel Ehrenberg <littledan@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#45107}
-
- 19 Apr, 2017 1 commit
-
-
Marja Hölttä authored
1) Function recording conditions need to be consistent (this same condition is used above) 2) byte is not wide enough for storing the backing store size. Bugs uncovered by the existing tests with the flag on. BUG=v8:5516 Change-Id: Iec6aff0cf1858afe1083526e4ada9a8eca08f062 Reviewed-on: https://chromium-review.googlesource.com/481320 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#44724}
-
- 18 Apr, 2017 1 commit
-
-
Marja Hölttä authored
The feature is not quite ready for getting ClusterFuzzed. BUG=v8:5516 Change-Id: I90a42f950727c8ecf46cb2987c9a459b2ba1f5a7 Reviewed-on: https://chromium-review.googlesource.com/480400 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#44693}
-
- 28 Mar, 2017 3 commits
-
-
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}
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: I0a3546618d01b9232014da94cf8d0f72427a0d1d Reviewed-on: https://chromium-review.googlesource.com/458006 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#44176}
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: Ief4eb3c9873026a93338d5556985f31c9abe17e6 Reviewed-on: https://chromium-review.googlesource.com/458005 Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#44173}
-
- 17 Mar, 2017 1 commit
-
-
bbudge authored
BUG=none Review-Url: https://codereview.chromium.org/2759513002 Cr-Commit-Position: refs/heads/master@{#43913}
-
- 07 Mar, 2017 1 commit
-
-
Marja Hölttä authored
This pretty much rewrites the preparsed scope data collection. We used to store the allocation result, but it's faster to just store the raw data which is needed for deciding it later. (This way we don't need to run the allocation algorithm for just getting this data.) For each variable: is_used, maybe_assigned, has_forced_context_allocation, and for each scope: inner_scope_calls_eval_. In addition, this CL moves data handling out of Scope and into PreParsedScopeData where it belongs and simplifies the API for PreParsedScopeData. BUG=v8:5516 R=vogelheim@chromium.org Change-Id: Ia5a4fa52f585cd4f483ce9a92f2dd7d9754f34ed Reviewed-on: https://chromium-review.googlesource.com/451273 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Cr-Commit-Position: refs/heads/master@{#43641}
-
- 03 Mar, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5516 R=verwaest@chromium.org Change-Id: Ica04f74788a4812128bce1297aeee23f8c3bec3d Reviewed-on: https://chromium-review.googlesource.com/449675Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43591}
-
- 01 Mar, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5516 R=verwaest@chromium.org Change-Id: I1bb88e981b81fec85ba6da314e3be927085e6e76 Reviewed-on: https://chromium-review.googlesource.com/447438Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43526}
-
- 24 Feb, 2017 1 commit
-
-
Marja Hölttä authored
This is also needed so that PreParser doesn't need to gather more data for arrow function params in order to create the uninteresting varblock scopes matching the scopes created in Parser::BuildParameterInitializationBlock. This cancels the changes in https://chromium-review.googlesource.com/c/444747 which make PreParser create uninteresting scopes for the normal (non-arrow) function "eval in default param" case. R=vogelheim@chromium.org BUG=v8:5516 Change-Id: I8957ac0796d8738c63492f7928bca6f00e4b4241 Reviewed-on: https://chromium-review.googlesource.com/446339Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43411}
-