- 30 Nov, 2017 1 commit
-
-
Ulan Degenbaev authored
Currently RuntimeCallStats stores CounterIds as inner pointers. This patch replaces them with enums and removes static table. Bug: chromium:758183 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icb4030fc3ad3dd02e9c2648ce7c43b6f2d47fa9d Reviewed-on: https://chromium-review.googlesource.com/796477Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49743}
-
- 27 Nov, 2017 2 commits
-
-
Adam Klein authored
Besides avoiding the weird hack of inserting a statement at the 0th index of the function body, we also avoid allocating (and initializing) the variable if it's unreferenced (which I'd wager is the common case). Bug: v8:6092 Change-Id: If917d422bb4818cf21e8272aa786ca84d4472802 Reviewed-on: https://chromium-review.googlesource.com/784092Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49646}
-
Sathya Gunasekaran authored
Previously, the class fields initializer function was stored on a synthetic context allocated variable. This approach had sevaral problems: - We didn't know that class literal had fields until after we had completely parsed the class literal. This meant that we had to go back and fix up the scope of the constructor to have this synthetic variable. This resulted in mismatch between parser and preparsed scope data. - This synthetic variable could potentially resolve to an initializer of an outer class. For ex: class X extends Object { c = 1; constructor() { var t = () => { class P extends Object { constructor() { var t = () => { super(); }; t(); } } super(); } t(); } } In this the inner class P could access the outer class X's initiliazer function. We would have to maintain extra metadata to make sure this doesn't happen. Instead this new approach uses a private symbol to store the initializer function on the class constructor itself. For the base constructor case, we can simply check for a bit on the constructor function literal to see if we need to emit code that loads and calls this initializer function. Therefore, we don't pay the cost of loading this function in case there are no class fields. For the derived constructor case, there are two possiblities: (a) We are in a super() call directly in the derived constructor: In this case we can do a check similar to the base constructor check, we can check for a bit on the derived constructor and emit code for loading and calling the initializer function. This is usually the common case and we don't pay any cost for not using class fields. (b) We are in a super() call inside an arrow function in the derived constructor: In this case, we /always/ emit code to load and call the initializer function. If the function doesn't exist then we have undefined and we don't call anything. Otherwise we call the function. super() can't be called twice so even if we emit code to load and call the initializer function multiple times, it doesn't matter because it would have already been an error. Bug: v8:5367 Change-Id: I7f77cd6493ff84cf0e430a8c1039bc9ac6941a88 Reviewed-on: https://chromium-review.googlesource.com/781660 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49628}
-
- 24 Nov, 2017 1 commit
-
-
jgruber authored
This is a reland of 4d3bc552 Original change's description: > [coverage] add coverage for binary expressions > > Adds block-level coverage tracking for binary && and || > expressions. Introduces a BinaryOperation source-range > for tracking the operations themselves and an Expression > source-range, used for tracking NaryLogical expressions. > > This builds on work by jgruber@chromium.org in > the issue. > > TBR=marja@chromium.org > R=jgruber@chromium.org, rmcilroy@chromium.org > > Bug: v8:6660 > Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 > Reviewed-on: https://chromium-review.googlesource.com/754564 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49304} Bug: v8:6660 Change-Id: I1c8571660d6c501d526886867bd841c49d5c44fd Reviewed-on: https://chromium-review.googlesource.com/778288Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49613}
-
- 23 Nov, 2017 1 commit
-
-
Ross McIlroy authored
Adds some additional RCS counters to correctly account background compilation to the background thread. Also adds a ParseBackgroundProgram as a top-level event for background parsing since otherwise only pre-parsing was being tracked. Perf Sheriffs: Note this is likely to increase the Parse-Background bucket in v8.runtime_stats benchmarks as it now accounts all background parsing correclty. BUG=v8:5203 Change-Id: I6ff614b725d85b0bc1901a7bf0e2bac8de1f7cff Reviewed-on: https://chromium-review.googlesource.com/786237Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49603}
-
- 17 Nov, 2017 2 commits
-
-
Igor Sheludko authored
This CL also includes fixes for CF issues found while the previous reland was active. Bug: v8:5799, chromium:783902, chromium:783926, chromium:783822 Change-Id: I1f7d9b037d90838469c45f5d72771a77444c662e Reviewed-on: https://chromium-review.googlesource.com/764067Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49457}
-
Jakob Gruber authored
This reverts commit 4d3bc552. Reason for revert: https://crbug.com/785778 Original change's description: > [coverage] add coverage for binary expressions > > Adds block-level coverage tracking for binary && and || > expressions. Introduces a BinaryOperation source-range > for tracking the operations themselves and an Expression > source-range, used for tracking NaryLogical expressions. > > This builds on work by jgruber@chromium.org in > the issue. > > TBR=marja@chromium.org > R=jgruber@chromium.org, rmcilroy@chromium.org > > Bug: v8:6660 > Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 > Reviewed-on: https://chromium-review.googlesource.com/754564 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49304} TBR=rmcilroy@chromium.org,marja@chromium.org,jgruber@chromium.org,ben@npmjs.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6660 Change-Id: Ie017c528604b2e01400f527511413eaea5786198 Reviewed-on: https://chromium-review.googlesource.com/776768Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49454}
-
- 16 Nov, 2017 2 commits
-
-
Sathya Gunasekaran authored
Bug: v8:5367 Change-Id: I0c86d7204301665412ef0ef370eb1f0c61123031 Reviewed-on: https://chromium-review.googlesource.com/774264Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#49407}
-
Sathya Gunasekaran authored
Previously, we had lazy parsing of class constructor disabled when a class literal had class fields because we were using a reference to the initializer function variable to load the function and call it. Instead, in this patch, we use the scope analysis to lookup this initializer function variable. Bug: v8:5367 Change-Id: Ib73d7e6abed33c04d1f574e7976bea4869d54757 Reviewed-on: https://chromium-review.googlesource.com/768384 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49406}
-
- 14 Nov, 2017 1 commit
-
-
Adam Klein authored
Previously, the Parser stored a Scope alongside a RewritableExpression for each potential destructuring assignment. This Scope was later used during rewriting to set the correct context for the rewriting. But this approach failed if a new Scope was inserted into the Scope chain between the time the assignment was parsed and when it was rewritten. By storing the Scope directly in RewritableExpression, ReparentExpressionScopes() is able to appropriately re-scope such expressions prior to their rewriting. Bug: chromium:779457 Change-Id: Ieb429a3da841f76d5798610af59da4fccb000652 Reviewed-on: https://chromium-review.googlesource.com/767666 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49368}
-
- 13 Nov, 2017 1 commit
-
-
Adam Klein authored
Since each Array literal containing a spread is individually queued for rewriting, there's no need for an AstVisitor here: a simple linear pass through the queue is sufficient. This patch deletes AstExpressionRewriter and all the machinery supporting it in the AST. This code was built with the idea of using it as a general expression rewriting mechanism in the parser, but those use cases never materialized, and Array spread remains the only thing that used this code. Bug: v8:6092 Change-Id: I754c4883099e840881b005f20216f86e57721d5a Reviewed-on: https://chromium-review.googlesource.com/765051Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49337}
-
- 10 Nov, 2017 3 commits
-
-
Benjamin authored
Adds block-level coverage tracking for binary && and || expressions. Introduces a BinaryOperation source-range for tracking the operations themselves and an Expression source-range, used for tracking NaryLogical expressions. This builds on work by jgruber@chromium.org in the issue. TBR=marja@chromium.org R=jgruber@chromium.org, rmcilroy@chromium.org Bug: v8:6660 Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 Reviewed-on: https://chromium-review.googlesource.com/754564 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49304}
-
Jakob Gruber authored
This reverts commit 22932d6b. Reason for revert: TSAN https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/18232 Original change's description: > Reland "[runtime] Slightly optimize creation of class literals." > > Bug: v8:5799 > Change-Id: I782ec131c7194aef20942a19750168a974913c3f > Reviewed-on: https://chromium-review.googlesource.com/757337 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49291} TBR=ulan@chromium.org,rmcilroy@chromium.org,jarin@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: I0742d25b0e2364efc696d19492ba20614a3821fa No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5799 Reviewed-on: https://chromium-review.googlesource.com/763458Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49303}
-
Igor Sheludko authored
Bug: v8:5799 Change-Id: I782ec131c7194aef20942a19750168a974913c3f Reviewed-on: https://chromium-review.googlesource.com/757337 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#49291}
-
- 09 Nov, 2017 1 commit
-
-
Ross McIlroy authored
Converts the ast prettyprinter to printing literals from the raw values rather than internalized on-heap strings. This enables ast printing before internalizing, and means we can avoid use of the isolate in the interpreter's off-thread phase. Also removes --print-builtin-ast and relies on just --print-ast to print everything. Finally, converts FunctionLiteral's debug_name function to return a char[] which is created from the raw name literal where it exists, rather than relying on the value having been internalized. BUG=v8:5203 Change-Id: Ib69f754e254736f415db38713e6209465817e6f1 Reviewed-on: https://chromium-review.googlesource.com/758681Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49276}
-
- 08 Nov, 2017 2 commits
-
-
Adam Klein authored
This was a regression from 317cf321 which showed up, at least, on Kraken. Bug: chromium:782150 Change-Id: Ifd69b86c566182f1a50761b67c911bdde2aed997 Reviewed-on: https://chromium-review.googlesource.com/759101Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49238}
-
Sathya Gunasekaran authored
Creates a new initializer function to instantiate instance class fields in a base class. An initializer function (similar to the one created for static fields) is created during class declaration and assigned to a synthetic context allocated variable. This function is loaded from the variable during instantiation (when the constructor is run) and run. Bug: v8:5367 Change-Id: Ie11c2183b3001234ae41d7bcc2cb9b02c0764ab5 Reviewed-on: https://chromium-review.googlesource.com/754445 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49207}
-
- 07 Nov, 2017 1 commit
-
-
Georg Neis authored
The bytecode generator has special handling for comparing the result of the typeof operator against a string literal. This needs to be adapted for bigints. R=jkummerow@chromium.org, mythrie@chromium.org Bug: v8:6791 Change-Id: I42d6c9e9225ce05e19393f10e01ae496ecb70c9c Reviewed-on: https://chromium-review.googlesource.com/753465 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#49172}
-
- 06 Nov, 2017 1 commit
-
-
Sathya Gunasekaran authored
Initialize the home object when we create the initializer function keeping this in line with other functions that initialize home object. Bug: v8:5367 Change-Id: I1c5e32ae0cb496740341e6c99c9359f6c5e00875 Reviewed-on: https://chromium-review.googlesource.com/754163Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#49153}
-
- 03 Nov, 2017 3 commits
-
-
Ross McIlroy authored
This reverts commit c60934e9. Reason for revert: breaks nosnap build Original change's description: > [Ast] Teach Ast Printer to print raw literal values. > > Converts the ast prettyprinter to printing literals from the raw values > rather than internalized on-heap strings. This enables ast printing before > internalizing, and means we can avoid use of the isolate in the interpreter's > off-thread phase. > > Also removes --print-builtin-ast and relies on just --print-ast to print > everything. > > Finally, converts FunctionLiteral's debug_name function to return a > char[] which is created from the raw name literal where it exists, rather > than relying on the value having been internalized. > > BUG=v8:5203 > > Change-Id: I0e358d6acc9ae4516ed49e7a763e208fea5fcf66 > Reviewed-on: https://chromium-review.googlesource.com/749261 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49119} TBR=rmcilroy@chromium.org,adamk@chromium.org Change-Id: Ic9d511f5107666a2f6a2bf59d8e93643c32d4d2b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5203 Reviewed-on: https://chromium-review.googlesource.com/753627Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49120}
-
Ross McIlroy authored
Converts the ast prettyprinter to printing literals from the raw values rather than internalized on-heap strings. This enables ast printing before internalizing, and means we can avoid use of the isolate in the interpreter's off-thread phase. Also removes --print-builtin-ast and relies on just --print-ast to print everything. Finally, converts FunctionLiteral's debug_name function to return a char[] which is created from the raw name literal where it exists, rather than relying on the value having been internalized. BUG=v8:5203 Change-Id: I0e358d6acc9ae4516ed49e7a763e208fea5fcf66 Reviewed-on: https://chromium-review.googlesource.com/749261 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49119}
-
Sathya Gunasekaran authored
This patch evaluates computed properties in the order of declaration during class definition time. This patch creates a synthetic variable to store the result of evaluating a computed property and then looks this up in the initializer function. Bug: v8:5367 Change-Id: I4182c6a01196d2538991818142890f6afb0e532b Reviewed-on: https://chromium-review.googlesource.com/752567Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-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@{#49115}
-
- 31 Oct, 2017 5 commits
-
-
Adam Klein authored
The parser now throws for literals that are too big for the runtime to support, thus avoiding CHECK-failures further down the line. Tbr: rmcilroy@chromium.org Bug: v8:6791 Change-Id: Ie45ddebb8aa9e7a30e8b6b74f99916b700e38e4a Reviewed-on: https://chromium-review.googlesource.com/747682 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49059}
-
Leszek Swirski authored
When closing untagged template string literals, create a single n-ary addition operation, instead of a tree of binary operations. As a clean-up, this also entirely removes the "second" field from n-ary operations. This was proving to be too confusing an API when building an n-ary operation incrementally from a single expression (rather than converting a binary operation). Bug: v8:6964 Change-Id: I8f2a395d413cf345bab0a1a347b47f412cde83b1 Reviewed-on: https://chromium-review.googlesource.com/739821Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#49054}
-
Adam Klein authored
Also replaced kTrue/kFalse with a kBoolean type, and remove now-unused IsTypeX() methods (leaving ones that are called frequently). Bug: v8:6984 Change-Id: I0cbffc37efaa391981d8dce564051ce43257ed8a Reviewed-on: https://chromium-review.googlesource.com/745023Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49053}
-
Adam Klein authored
This reverts commit 521fa16e. Reason for revert: fails tests under code-serializer: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/17691 Original change's description: > [runtime] Slightly optimize creation of class literals. > > TBR=bmeurer@chromium.org > > Bug: v8:5799 > Change-Id: I61de5f8b3333db174dadf76ed983950acb39742b > Reviewed-on: https://chromium-review.googlesource.com/649509 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49044} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mythria@chromium.org,gsathya@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: I994edb855a8a0aa6e7e7476b0b013a46aac6f2e7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5799 Reviewed-on: https://chromium-review.googlesource.com/745581Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49046}
-
Igor Sheludko authored
TBR=bmeurer@chromium.org Bug: v8:5799 Change-Id: I61de5f8b3333db174dadf76ed983950acb39742b Reviewed-on: https://chromium-review.googlesource.com/649509 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49044}
-
- 27 Oct, 2017 2 commits
-
-
Adam Klein authored
This eliminates the AstValue class, effectively moving its implementation into the Literal AstNode. This should cause no difference in behavior, but it does signal some shifts in the underlying system. Biggest changes include: - Reduction in AST memory usage - No duplicate HeapNumbers in Ignition constant pools - Non-String values are allocated either at constant pool creation time (or at boilerplate creation time for literals), rather than at AstValueFactory::Internalize() time. There are a variety of test-only/debug-only changes due to these switches as well. Bug: v8:6984 Change-Id: I5f178040ce2796d4e7370c24d1063419e1c843a1 Reviewed-on: https://chromium-review.googlesource.com/731111 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#49013}
-
Sathya Gunasekaran authored
Instead of creating a runtime call for the static class field initializer in the AST, we do it in the bytecode generator. This adds the initializer function to the ClassLiteral AST node. Bug: v8:5367 Change-Id: Iffaa6531511023812011ee19fc96cea9e5c9d3f3 Reviewed-on: https://chromium-review.googlesource.com/736315Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#49008}
-
- 25 Oct, 2017 3 commits
-
-
Adam Klein authored
It's been on by default since Chrome 61. Bug: v8:4806 Change-Id: I748d9008d29997667458649d7bf4999e15ff8615 Reviewed-on: https://chromium-review.googlesource.com/737416 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#48943}
-
Adam Klein authored
For the tagged case, we never use the Literal AST node, so don't bother creating them in the first place. Instead, store AstRawStrings directly, and only wrap with Literals when desugaring untagged templates into binary ops. This also makes the upcoming merge of Literal and AstValue simpler. Bug: v8:6984 Change-Id: I9f12710b05c6d63d7e91f2707cd08093f7ff3f11 Reviewed-on: https://chromium-review.googlesource.com/736151Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48940}
-
Leszek Swirski authored
Expressions of the form a_0 + a_1 + a_2 + a_3 + ... + a_n seem to be reasonably common for cases such as building templates. However, parsing these expressions results in a n-deep expression tree: ... / + / \ + a_2 / \ a_0 a_1 Traversing this tree during compilation can cause a stack overflow when n is large. Instead, for left-associate operations such as add, we now build up an n-ary node in the parse tree, of the form n-ary + / | \ / | ... \ a_0 a_1 a_n The bytecode compiler can now iterate through the child expressions rather than recursing. This patch only supports arithmetic operations -- subsequent patches will enable the same optimization for logical tests and comma expressions. Bug: v8:6964 Bug: chromium:724961 Bug: chromium:731861 Bug: chromium:752081 Bug: chromium:771653 Bug: chromium:777302 Change-Id: Ie97e4ce42506fe62a7bc4ffbdaa90a9f698352cb Reviewed-on: https://chromium-review.googlesource.com/733120 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48920}
-
- 24 Oct, 2017 1 commit
-
-
Adam Klein authored
This removes all but one caller of Literal::raw_value(), thus hiding AstValue from the rest of the codebase. This is in preparation to move much of AstValue's implementation up into Literal itself, thus avoiding the overhead of the underling ZoneObjects and allowing us to remove complexity such as the cache of Smi-valued AstValues. Bug: v8:6984 Change-Id: I1b90aa64b9d26db36ef486afe73cda4473ef866e Reviewed-on: https://chromium-review.googlesource.com/731109Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48884}
-
- 23 Oct, 2017 2 commits
-
-
Adam Klein authored
Change-Id: I6288e295dd403be45cb2e4a648ac50c8f1376b73 Reviewed-on: https://chromium-review.googlesource.com/734481Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48849}
-
Sathya Gunasekaran authored
This patch implements the runtime semantics of static public class fields. Adds a new InitializeClassFieldsStatement AST node that contains all the static class fields and their initializers. ClassLiteral is now desugared to be included in a do-exp that calls an initializer function which contains this new AST node. Bug: v8:5367 Change-Id: I3574e4c685f1c039de42521c122e24f8d28e5d6c Reviewed-on: https://chromium-review.googlesource.com/714817Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#48835}
-
- 22 Oct, 2017 1 commit
-
-
Georg Neis authored
The information that such functions must be parsed in module mode didn't get properly propagated. Also refactor some related code to make it more robust. In particular, set parsing_module_ at parser construction time only. Bug: v8:1569, v8:6919 Change-Id: Id136fb15c240373cad07c82025b778d0c0c43148 Reviewed-on: https://chromium-review.googlesource.com/716478 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#48811}
-
- 20 Oct, 2017 1 commit
-
-
Jakob Kummerow authored
Whitespace-only strings count as empty too. This behavior is different from BigInt.parseInt(""), which throws a SyntaxError. Bug: v8:6791, v8:6957 Change-Id: I6671c803f3ba83e23c3e0cad81d3af29dba61c9f Reviewed-on: https://chromium-review.googlesource.com/727301Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#48797}
-
- 19 Oct, 2017 3 commits
-
-
Ross McIlroy authored
Moves the feedback vector slot allocation out of ast-numbering and into bytecode generation directly. This has a couple of benifits, including reduced AST size, avoid code duplication and reduced feedback vector sizes in many cases due to only allocating slots when needed. Also removes AstProperties since this is no longer needed. AstNumbering is now only used to allocate suspend ids for generators. BUG=v8:6921 Change-Id: I103e8593c94ef5b2e56c34ef4f77bd6e7d64796f Reviewed-on: https://chromium-review.googlesource.com/722959 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48757}
-
Daniel Clifford authored
BUG=v8:6333,v8:6921 R=franzih@chromium.org Change-Id: I18995282d372069ab576b87cebea4b405aa01c2c Reviewed-on: https://chromium-review.googlesource.com/719005 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#48755}
-
Marja Hölttä authored
We don't need to save any data for top-level leaf funcs (they contain no skippable funcs), so we don't need scope analysis for them either. BUG=v8:5516 Change-Id: I75700838a3df2f19da559145611c99e2c7ffd088 Reviewed-on: https://chromium-review.googlesource.com/691976 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#48746}
-