- 13 Apr, 2018 1 commit
-
-
Georg Neis authored
This patch moves the desugaring from the parser to the bytecode generator for super calls that have a spread at a non last position. This allows us to have the post super() call behavior, such as initializing instance fields in one place in VisitCallSuper. Bug: v8:7642 Change-Id: I00a693beb7078a63282359c1121b66bb62c157c8 Reviewed-on: https://chromium-review.googlesource.com/1009907 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#52596}
-
- 06 Apr, 2018 1 commit
-
-
Leszek Swirski authored
Merge the outer_scope_info and feedback_metadata fields on SharedFunctionInfo. outer_scope_info is only used during parsing, and feedback_metadata is only available after compilation, so the two never exist at the same time. Thus, they can share a field slot. The exception is un-compiling and re-compiling a function, where we need the outer_scope_info again. Fortunately, the outer_scope_info can be re-calculated from the SFI's scope_info. Bug: v8:7606 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I6b97fefe859e89df75ad870da4a0bfa4b869772a Reviewed-on: https://chromium-review.googlesource.com/992432Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52454}
-
- 27 Mar, 2018 1 commit
-
-
Leszek Swirski authored
Since the flags are used for more than just giving hints to the compiler, the name isn't appropriate anymore. Change-Id: I4b2f87a117490e7f1e1a693394e46633e751b444 Reviewed-on: https://chromium-review.googlesource.com/982012Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52245}
-
- 26 Mar, 2018 1 commit
-
-
Adam Klein authored
This reverts commit 3d7ad2e7. Reason for revert: too many regressions to handle for now. Original change's description: > Reland "[parser] Remove pretenuring of closures assigned to properties" > > The memory gains were significant, so despite the bluebird-doxbee > regression, we think it's better to have this patch than not. > See the attached Chromium bug for more discussion. > > This is a reland of 20e346bd. > > Original change's description: > > [parser] Remove pretenuring of closures assigned to properties > > > > This pretenuring was added in https://codereview.chromium.org/5220007, > > back when it was necessary in order to allow use of the closure > > as a "constant function" property. This should no longer be the case, > > and the pretenuring causes some unfortunate downstream effects. > > > > This patch removes the parser's setting of this bit. If it doesn't > > cause regressions on the perf bots, followup CLs will remove the > > rest of the support for this feature. > > > > Bug: v8:7442 > > Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a > > Reviewed-on: https://chromium-review.googlesource.com/914610 > > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > > Commit-Queue: Adam Klein <adamk@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#51254} > > Bug: v8:7442, chromium:814182 > Change-Id: I228c59dccef3844803f115749e72ae6c5f286eda > Reviewed-on: https://chromium-review.googlesource.com/938241 > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Commit-Queue: Adam Klein <adamk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51668} Tbr: gsathya@chromium.org Bug: v8:7442, v8:7524, chromium:814182, chromium:818627, chromium:818672, chromium:819994, chromium:821788 Change-Id: Ib760d63f879613f3b874889c5cb29ba2a77ba430 Reviewed-on: https://chromium-review.googlesource.com/980795 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#52233}
-
- 16 Mar, 2018 2 commits
-
-
Camillo Bruni authored
With this CL the name of an SFI is either stored directly on the SFI itself (for uncompiled ones) or on the related ScopeInfo if present. - Combine scope_info and name field on SFI into name_or_scope_info field - Change the name of a couple of SFI accessors: name => Name, has_shared_name => HasSharedName, set_name => SetName - Add Runtime::kGetFunctionName due to more complex SFI name accessing Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Idcce158446c9447b92d9a15125d086952c6e0824 Reviewed-on: https://chromium-review.googlesource.com/964201 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52001}
-
Camillo Bruni authored
This CL ads a StartPosition and EndPosition accessors on SFI and ScopeInfo to facilitate future refactoring. In a future CL the start and end position are no longer stored directly on SFIs. This CL will temporarily increase memory since the position info is duplicated on the SFI and the ScopeInfo. Drive-by-fix: Clean up some constants in ScopeInfo Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I1a8c5dd4e2156c007e04d92e72e478b915516e0d Reviewed-on: https://chromium-review.googlesource.com/955629Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51987}
-
- 15 Mar, 2018 2 commits
-
-
Sathya Gunasekaran authored
Pointing to the exact spot of the incorrect numeric separator seems clearer both in terms of the error itself, and the resulting code in scanner because we don't have to keep track of the start position. Previously, the error was: ➜ ./out.gn/x64.release/d8 --harmony-numeric-separator -e '0x1__1' unnamed:1: SyntaxError: Only one underscore is allowed as numeric separator 0x1__1 ^^^^ SyntaxError: Only one underscore is allowed as numeric separator Now, the error is: ➜ ./out.gn/x64.release/d8 --harmony-numeric-separator -e '0x1__1' unnamed:1: SyntaxError: Only one underscore is allowed as numeric separator 0x1__1 ^ SyntaxError: Only one underscore is allowed as numeric separator Bug: v8:7317 Change-Id: I7df1b39816e51a97234da6ed0fca1bf8c0223c3e Reviewed-on: https://chromium-review.googlesource.com/962241 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#51950}
-
Sathya Gunasekaran authored
Bug: v8:7317 Change-Id: I20fb706c05852668a5a6ae8b69c150ae2e6b2f65 Reviewed-on: https://chromium-review.googlesource.com/960901Reviewed-by:
Mathias Bynens <mathias@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51943}
-
- 14 Mar, 2018 1 commit
-
-
Caitlin Potter authored
- Add a new bytecode for the ToString operation, replacing the old intrinsic call (currently does not collect type feedback). - Add a new AST node to represent TemplateLiterals, and avoid generating unnecessary ToString operations in some simple cases. - Use a single feedback slot for each string addition, because the type feedback should always be the same for each addition This seems to produce a very slight improvement on JSTests benchmarks and bench-ruben.js from v8:7415, and it's possible that type feedback for the ToString bytecode could provide more opportunities to eliminate the runtime call in TurboFan. Doesn't touch tagged templates [esnext] fix OOB read in ASTPrinter::VisistTemplateLiteral Fixes an error where TemplateLiteral printing in --print-ast would try to read an element beyond the length of a vector. BUG=v8:7415, chromium:820596 R=adamk@chromium.org, gsathya@chromum.org, rmcilroy@chromium.org, ishell@chromium.org, bmeurer@chromium.org Change-Id: Ie56894f73a6445550a5f95f42160c4e29ab1da42 Reviewed-on: https://chromium-review.googlesource.com/958408Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#51933}
-
- 13 Mar, 2018 1 commit
-
-
Georg Neis authored
This removes the last use of %AppendElement (and the function itself), which was in the pattern rewriter's code for destructuring assignment with an array rest pattern. In its place, it introduces a StoreInArrayLiteral AST node that corresponds to the StoreInArrayLiteral bytecode (which in turn corresponds to the StoreInArrayLiteral IC). Change-Id: I1d212407b025cf0919263d119f6f47c88bd9a71e Reviewed-on: https://chromium-review.googlesource.com/955307 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51898}
-
- 10 Mar, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit 8ae19e08. Reason for revert: Speculative revert for layout test: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/22215 See: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [esnext] re-implement template strings > > - Add a new bytecode for the ToString operation, replacing the old > intrinsic call (currently does not collect type feedback). > - Add a new AST node to represent TemplateLiterals, and avoid > generating unnecessary ToString operations in some simple cases. > - Use a single feedback slot for each string addition, because the > type feedback should always be the same for each addition > > This seems to produce a very slight improvement on JSTests benchmarks > and bench-ruben.js from v8:7415, and it's possible that type feedback > for the ToString bytecode could provide more opportunities to eliminate > the runtime call in TurboFan. > > Doesn't touch tagged templates > > BUG=v8:7415 > R=rmcilroy@chromium.org, ishell@chromium.org, bmeurer@chromium.org > > Change-Id: If5a8c68558431f058db894d65776324abf54218e > Reviewed-on: https://chromium-review.googlesource.com/945408 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Cr-Commit-Position: refs/heads/master@{#51853} TBR=rmcilroy@chromium.org,caitp@igalia.com,ishell@chromium.org,bmeurer@chromium.org Change-Id: Id0529b065493ffc20c8f2b1abacc4c1484c3c046 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7415 Reviewed-on: https://chromium-review.googlesource.com/958163Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51862}
-
- 09 Mar, 2018 2 commits
-
-
Caitlin Potter authored
- Add a new bytecode for the ToString operation, replacing the old intrinsic call (currently does not collect type feedback). - Add a new AST node to represent TemplateLiterals, and avoid generating unnecessary ToString operations in some simple cases. - Use a single feedback slot for each string addition, because the type feedback should always be the same for each addition This seems to produce a very slight improvement on JSTests benchmarks and bench-ruben.js from v8:7415, and it's possible that type feedback for the ToString bytecode could provide more opportunities to eliminate the runtime call in TurboFan. Doesn't touch tagged templates BUG=v8:7415 R=rmcilroy@chromium.org, ishell@chromium.org, bmeurer@chromium.org Change-Id: If5a8c68558431f058db894d65776324abf54218e Reviewed-on: https://chromium-review.googlesource.com/945408Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#51853}
-
Peter Marshall authored
Previously we used a FixedArray for the FeedbackMetadata, packing bits of information into Smi fields. On 64-bit platforms, we waste at least half of the available memory by using the Smi representation. Given that this is just raw data (no pointers), we can just use a new type that uses the existing packing scheme to store the data in int32 format instead. This CL changes FeedbackMetadata to a new subclass of HeapObject. This is to reduce the API surface exposed, in comparison to extending/using a more general purpose data structure like ByteArray, which is also just raw data. FeedbackMetadata only exposes general purpose methods for accessing slots, but hides the implementation detail of packing bits into int32 fields. This CL also introduces a sentinal EmptyFeedbackMetadata, because there are ~750 empty FeedbackMetadata objects when running an empty program in V8. These are probably for builtins. Bug: v8:7500 Change-Id: Ic85563153abbd71a22854cee8519260c32b1e9ab Reviewed-on: https://chromium-review.googlesource.com/945730 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#51842}
-
- 08 Mar, 2018 1 commit
-
-
Teddy Katz authored
This updates the scanner to use the correct error message when it encounters an octal escape sequence in a template literal. Previously, the error message referred to strict mode, even when the template literal was not in strict mode code. Bug: v8:7502 Change-Id: I37bb1338cf796c471108bc10f35f824cdf3ce0b7 Reviewed-on: https://chromium-review.googlesource.com/945411Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51823}
-
- 06 Mar, 2018 1 commit
-
-
Taketoshi Aono authored
Revert "Revert "[parser] Implements proposal-numeric-separator."" This reverts commit 782f6401. Original CL is https://chromium-review.googlesource.com/c/v8/v8/+/923441 Bug: v8:7317 Change-Id: I6f541c038bad0cff625094ba84aebe582bdeb12f Reviewed-on: https://chromium-review.googlesource.com/945034Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51749}
-
- 02 Mar, 2018 4 commits
-
-
Georg Neis authored
... and use it in the implementation of array literal spreads, replacing calls to %AppendElement. Array spreads in destructuring will be taken care of in a separate CL. Bug: v8:5940, v8:7446 Change-Id: Idec52398902a7fd3c1244852cf73246f142404f0 Reviewed-on: https://chromium-review.googlesource.com/915364 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#51709}
-
Georg Neis authored
This reverts commit f48e7349. Reason for revert: innocent!! Original change's description: > Revert "[parsing] inline ArrayLiteral creation for spread calls" > > This reverts commit 93fc3841. > > Reason for revert: may break node.js integration > > Original change's description: > > [parsing] inline ArrayLiteral creation for spread calls > > > > Instead of using runtime calls to generate the Array Literal passed to > > %reflect_call / %reflect_construct, we create an ArrayLiteral from the > > list of arguments, and perform spreads using the interpreter mechanism for > > spreading in ArrayLiterals (thus, the spreading becomes inline). This > > array literal is still passed to %reflect_call / %reflect_construct as > > before. > > > > This cuts the runtime for bench-spread-call.js -> testSpread roughly in > > half, and will likely improve further once > > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed. > > > > BUG=v8:7446 > > R=neis@chromium.org, adamk@chromium.org > > > > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad > > Reviewed-on: https://chromium-review.googlesource.com/939587 > > Commit-Queue: Georg Neis <neis@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#51678} > > TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org > > Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: v8:7446 > Reviewed-on: https://chromium-review.googlesource.com/945769 > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51682} TBR=adamk@chromium.org,neis@chromium.org,sigurds@chromium.org,caitp@igalia.com,bmeurer@chromium.org Change-Id: I977513bea06a4f3fba03fa4a89270298475422e2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7446 Reviewed-on: https://chromium-review.googlesource.com/945808Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51686}
-
Sigurd Schneider authored
This reverts commit 93fc3841. Reason for revert: may break node.js integration Original change's description: > [parsing] inline ArrayLiteral creation for spread calls > > Instead of using runtime calls to generate the Array Literal passed to > %reflect_call / %reflect_construct, we create an ArrayLiteral from the > list of arguments, and perform spreads using the interpreter mechanism for > spreading in ArrayLiterals (thus, the spreading becomes inline). This > array literal is still passed to %reflect_call / %reflect_construct as > before. > > This cuts the runtime for bench-spread-call.js -> testSpread roughly in > half, and will likely improve further once > https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed. > > BUG=v8:7446 > R=neis@chromium.org, adamk@chromium.org > > Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad > Reviewed-on: https://chromium-review.googlesource.com/939587 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51678} TBR=adamk@chromium.org,neis@chromium.org,caitp@igalia.com,bmeurer@chromium.org Change-Id: I4730077591bce0e5e7b2ce7d59678e8b7135cc08 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7446 Reviewed-on: https://chromium-review.googlesource.com/945769Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#51682}
-
Caitlin Potter authored
Instead of using runtime calls to generate the Array Literal passed to %reflect_call / %reflect_construct, we create an ArrayLiteral from the list of arguments, and perform spreads using the interpreter mechanism for spreading in ArrayLiterals (thus, the spreading becomes inline). This array literal is still passed to %reflect_call / %reflect_construct as before. This cuts the runtime for bench-spread-call.js -> testSpread roughly in half, and will likely improve further once https://chromium-review.googlesource.com/c/v8/v8/+/915364 has landed. BUG=v8:7446 R=neis@chromium.org, adamk@chromium.org Change-Id: I74a6acd3a60aad422e4ac575275c7b567659d8ad Reviewed-on: https://chromium-review.googlesource.com/939587 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51678}
-
- 01 Mar, 2018 4 commits
-
-
Deepti Gandluri authored
This reverts commit 517df524. Reason for revert: Fails MSAN tests - https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/20030 Original change's description: > [parser] Implements proposal-numeric-separator. > > https://github.com/tc39/proposal-numeric-separator > > This proposal-numeric-separator extends NumericLiteral and > allows developers to insert underscore(_) inside numeric literal. > > Bug: v8:7317 > Change-Id: I2a1a45cd6fe09cc5df63433bc915988fde687a33 > Reviewed-on: https://chromium-review.googlesource.com/923441 > Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51671} TBR=adamk@chromium.org,jkummerow@chromium.org,hablich@chromium.org,gsathya@chromium.org,mathias@chromium.org,goto@google.com,brn@b6n.ch Change-Id: I6dcf46820caf20f28fbc11d94a5e8ced3cbbc78d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7317 Reviewed-on: https://chromium-review.googlesource.com/944767Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#51672}
-
Taketoshi Aono authored
https://github.com/tc39/proposal-numeric-separator This proposal-numeric-separator extends NumericLiteral and allows developers to insert underscore(_) inside numeric literal. Bug: v8:7317 Change-Id: I2a1a45cd6fe09cc5df63433bc915988fde687a33 Reviewed-on: https://chromium-review.googlesource.com/923441 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51671}
-
Caitlin Potter authored
Avoid generating ADDs when concatenating the empty string with other template parts. This prevents the creation of useless feedback slots, and reduces the number of extra dispatches. The impact on performance is negligible. BUG=v8:7415 Change-Id: I7ef3806b53f7252f3a86f7007ae7050ac697c1e3 Reviewed-on: https://chromium-review.googlesource.com/938145Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#51669}
-
Adam Klein authored
The memory gains were significant, so despite the bluebird-doxbee regression, we think it's better to have this patch than not. See the attached Chromium bug for more discussion. This is a reland of 20e346bd. Original change's description: > [parser] Remove pretenuring of closures assigned to properties > > This pretenuring was added in https://codereview.chromium.org/5220007, > back when it was necessary in order to allow use of the closure > as a "constant function" property. This should no longer be the case, > and the pretenuring causes some unfortunate downstream effects. > > This patch removes the parser's setting of this bit. If it doesn't > cause regressions on the perf bots, followup CLs will remove the > rest of the support for this feature. > > Bug: v8:7442 > Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a > Reviewed-on: https://chromium-review.googlesource.com/914610 > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Commit-Queue: Adam Klein <adamk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51254} Bug: v8:7442, chromium:814182 Change-Id: I228c59dccef3844803f115749e72ae6c5f286eda Reviewed-on: https://chromium-review.googlesource.com/938241Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51668}
-
- 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}
-
- 21 Feb, 2018 5 commits
-
-
Sathya Gunasekaran authored
Bug: v8:5368 Change-Id: I7c4f9101837a0bf4917bbb0c2f09587118168a02 Reviewed-on: https://chromium-review.googlesource.com/923362 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51449}
-
Sathya Gunasekaran authored
Bug: v8:5368 Change-Id: I92874d5ea190cd892f3cb5216e0f4bb5373d5350 Reviewed-on: https://chromium-review.googlesource.com/927345Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51436}
-
Ross McIlroy authored
Moves BackgroundParsingTask to compiler.cc and renames as BackgroundCompileTask. This moves code out api.cc and parsing/ into compiler.cc where it belongs. BUG=v8:7311,v8:5203 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I08a72ab8a6bdb480f519d42b36875d347b801ddc Reviewed-on: https://chromium-review.googlesource.com/919481 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#51421}
-
Mythri authored
We don't use parser caches anymore and request code caches explicitly using ScriptCompiler::CreateCodeCache. Hence removing the support for both parser cache and code cache options. They are still retained in CompileOptions for backwards compatibility. Apart from the api.cc, no other part should see this option. Bug: chromium:779254, chromium:783124 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic8ad9afe3fa44bbb5adc71bdde59c0b4057a523d Reviewed-on: https://chromium-review.googlesource.com/916261 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#51416}
-
Sathya Gunasekaran authored
Change-Id: I5a706b015a36a7a176a03e740f3fc3c406e6a837 Reviewed-on: https://chromium-review.googlesource.com/927263 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51411}
-
- 20 Feb, 2018 1 commit
-
-
Adam Klein authored
After f1a55180, we no longer have to deal with a case where we rewrite destructuring assignments belonging to some inner function. Remove a bit of code and add DCHECKs to reflect that fact. Change-Id: I7553e86d4ae2f6290853eee38f85d2f243b778a9 Reviewed-on: https://chromium-review.googlesource.com/922893Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51404}
-
- 19 Feb, 2018 1 commit
-
-
Caitlin Potter authored
Previously, eval caching was only disabled if the root eval body code contained a tagged template. Per discussion on https://github.com/tc39/ecma262/pull/890, this is incorrect. This change tracks if eval caching is allowed during parsing, and uses this information to decide to insert new entries into the cache, or not. This change also removes the TemplateObject feedback kind, as it's no longer needed (behaves the same as Literal feedback). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Change-Id: Ib75abe9159baf4d8ad10f8de99d2152714bd0094 Reviewed-on: https://chromium-review.googlesource.com/916945 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51373}
-
- 16 Feb, 2018 1 commit
-
-
Jakob Kummerow authored
This doesn't enable the warning yet, but adds V8_FALLTHROUGH annotations in enough places so that v8 can build with the warning on on my linux box. Found one real bug (in effect-control-linearizer.cc, https://chromium-review.googlesource.com/c/v8/v8/+/850392/3/src/compiler/effect-control-linearizer.cc#825 ). Bug: chromium:812686 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I3542550b9c24b545641d0f0fc43f28f2780b0ab3 Reviewed-on: https://chromium-review.googlesource.com/911731Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51322}
-
- 15 Feb, 2018 3 commits
-
-
Adam Klein authored
Tbr: jarin@chromium.org Change-Id: I17477e2c82398b228a366a3d1fd8eb521dd51eae Reviewed-on: https://chromium-review.googlesource.com/922270 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#51317}
-
Mathias Bynens authored
This patch makes ECMAScript a syntactic superset of JSON by allowing U+2028 and U+2029 in string literals. Proposal repo: https://github.com/tc39/proposal-json-superset Bug: v8:7418 Change-Id: I7ef4ae6d85854ebc44a66e0eaf789814576832b7 Reviewed-on: https://chromium-review.googlesource.com/921228Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#51313}
-
Marja Hölttä authored
Apparently it can happen that the variable to which we're restoring to has a two-byte name corresponding to the one-byte name we expect. Modify the debug-mode name check to allow this. BUG=v8:7428 Change-Id: I94c56a4b2de3c58b50246fecaead332b0f9679b4 Reviewed-on: https://chromium-review.googlesource.com/911801Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#51304}
-
- 14 Feb, 2018 2 commits
-
-
Camillo Bruni authored
This CL introduces the FailureMessage and StackTraceFailureMessage objects. They are force to be stack allocated and their first and last member contain marker values. With the help of these markers we can easily extract the stored information in external tools such as grokdump and crash. Change-Id: Iec4f5195eec5a2bf08e1f674c9ced13d2345f030 Reviewed-on: https://chromium-review.googlesource.com/915067Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51295}
-
Adam Klein authored
This reverts commit 20e346bd. Reason for revert: tanks bluebird-doxbee Original change's description: > [parser] Remove pretenuring of closures assigned to properties > > This pretenuring was added in https://codereview.chromium.org/5220007, > back when it was necessary in order to allow use of the closure > as a "constant function" property. This should no longer be the case, > and the pretenuring causes some unfortunate downstream effects. > > This patch removes the parser's setting of this bit. If it doesn't > cause regressions on the perf bots, followup CLs will remove the > rest of the support for this feature. > > Bug: v8:7442 > Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a > Reviewed-on: https://chromium-review.googlesource.com/914610 > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Commit-Queue: Adam Klein <adamk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51254} Change-Id: I3e133046a4df64792a6652227d419239c628dbfb Tbr: gsathya@chromium.org Bug: v8:7442 Reviewed-on: https://chromium-review.googlesource.com/917701Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51280}
-
- 13 Feb, 2018 1 commit
-
-
Benedikt Meurer authored
This introduces dedicated builtins - FulfillPromise, - RejectPromise, and - ResolvePromise, which perform the corresponding operations from the language specification, and removes the redundant entry points and the excessive inlining of these operations into other builtins. We also add the same logic on the C++ side, so that we don't need to go into JavaScript land when resolving/rejecting from the API. The C++ side has a complete implementation, including full support for the debugger and the current PromiseHook machinery. This is to avoid constantly crossing the boundary for those cases, and to also simplify the CSA side (and soon the TurboFan side), where we only do the fast-path and bail out to the runtime for the general handling. On top of this we introduce %_RejectPromise and %_ResolvePromise, which are entry points used by the bytecode and parser desugarings for async functions, and also used by the V8 Extras API. Thanks to this we can uniformly optimize these in TurboFan, where we have corresponding operators JSRejectPromise and JSResolvePromise, which currently just call into the builtins, but middle-term can be further optimized, i.e. to skip the "then" lookup for JSResolvePromise when we know something about the resolution. In TurboFan we can also already inline the default PromiseCapability [[Reject]] and [[Resolve]] functions, although this is not as effective as it can be right now, until we have inlining support for the Promise constructor (being worked on by petermarshall@ right now) and/or SFI based CALL_IC feedback. Overall this change is meant as a refactoring without significant performance impact anywhere; it seems to improve performance of simple async functions a bit, but otherwise is neutral. Bug: v8:7253 Change-Id: Id0b979f9b2843560e38cd8df4b02627dad4b6d8c Reviewed-on: https://chromium-review.googlesource.com/911632Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51260}
-
- 12 Feb, 2018 2 commits
-
-
Adam Klein authored
This pretenuring was added in https://codereview.chromium.org/5220007, back when it was necessary in order to allow use of the closure as a "constant function" property. This should no longer be the case, and the pretenuring causes some unfortunate downstream effects. This patch removes the parser's setting of this bit. If it doesn't cause regressions on the perf bots, followup CLs will remove the rest of the support for this feature. Bug: v8:7442 Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a Reviewed-on: https://chromium-review.googlesource.com/914610Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51254}
-
Caitlin Potter authored
Implements the change outlined in https://github.com/tc39/ecma262/pull/890, which has been ratified and pulled into the specification. In particular, template callsite objects are no longer kept in a global, eternal Map, but are instead associated with their callsite, which can be collected. This prevents a memory leak incurred by TaggedTemplate calls. Changes, summarized: - Remove the TemplateMap and TemplateMapShape objects, instead caching template objects in the feedback vector. - Remove the `hash` member of TemplateObjectDescriptor, and the Equals method (used by TemplateMap) - Add a new FeedbackSlotKind (kTemplateObject), which behaves similarly to FeedbackSlotKind::kLiteral, but prevents eval caching. This ensures that a new feedback vector is always created for eval() containing tagged templates, even when the CompilationCache is used. - GetTemplateObject bytecode now takes a feedback index, and only calls into the runtime if the feedback is Smi::kZero (uninitialized). BUG=v8:3230, v8:2891 R=littledan@chromium.org, yangguo@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7827bc148d3d93e2b056ebf63dd624da196ad423 Reviewed-on: https://chromium-review.googlesource.com/624564 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51248}
-