- 04 Jul, 2018 1 commit
-
-
Igor Sheludko authored
This is a preliminary step before changing the way we store zone pointers in the zones. Bug: v8:7903, v8:7754 Change-Id: I1e1af1823766c888ee0f8fe190f205f5b7e21973 Reviewed-on: https://chromium-review.googlesource.com/1118887Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#54193}
-
- 02 Jul, 2018 1 commit
-
-
Creddy authored
This promotes CompileTimeValue as a seperate struct instead of FixedArray. This reduces the heap object size by one word (size field of FixedArray) Change-Id: Id09d9e04c4c1a98aa9fa53b1a44ec17e8cd06f34 Bug: v8:7787, chromium:818642 Reviewed-on: https://chromium-review.googlesource.com/1119918 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#54135}
-
- 18 Jun, 2018 2 commits
-
-
Alexey Kozyatinskiy authored
This is a reland of 4363a693 Original change's description: > [inspector] fixed location of top level function return > > We should pass false as has_braces argument to create FunctionLiteral > for top level function. > > R=dgozman@chromium.org,bmeurer@chromium.org > TBR=bmeurer@chromium.org > > Bug: none > Change-Id: I397f31b562d32c71f3a12bfc9ceeed16c367aa80 > Reviewed-on: https://chromium-review.googlesource.com/1098018 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53769} TBR=dgozman@chromium.org Bug: v8:7858 Change-Id: Ie636bc101f9d29d9d40bd10b96e62da6505c2734 Reviewed-on: https://chromium-review.googlesource.com/1104497 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#53808}
-
Clemens Hammacher authored
This reverts commit 4363a693. Reason for revert: Seems to break layout tests: https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064/24146 Original change's description: > [inspector] fixed location of top level function return > > We should pass false as has_braces argument to create FunctionLiteral > for top level function. > > R=dgozman@chromium.org,bmeurer@chromium.org > TBR=bmeurer@chromium.org > > Bug: none > Change-Id: I397f31b562d32c71f3a12bfc9ceeed16c367aa80 > Reviewed-on: https://chromium-review.googlesource.com/1098018 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53769} TBR=dgozman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: none Change-Id: I4495f6723daed63b7a38b0d3c3637724f6c2d484 Reviewed-on: https://chromium-review.googlesource.com/1104017Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53775}
-
- 15 Jun, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
We should pass false as has_braces argument to create FunctionLiteral for top level function. R=dgozman@chromium.org,bmeurer@chromium.org TBR=bmeurer@chromium.org Bug: none Change-Id: I397f31b562d32c71f3a12bfc9ceeed16c367aa80 Reviewed-on: https://chromium-review.googlesource.com/1098018 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#53769}
-
- 13 Apr, 2018 1 commit
-
-
Georg Neis authored
This factors out the element insertion code, so that it can be reused elsewhere in a follow-up CL. Change-Id: Ic085c8359b3024f381803ce64b49e976018277f9 Reviewed-on: https://chromium-review.googlesource.com/1010068Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#52592}
-
- 09 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Original review: https://chromium-review.googlesource.com/c/v8/v8/+/959533 Originally landed as r52416 / f9a2e24b Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Id072cbe6b3ed30afd339c7e502844b99ca12a647 Reviewed-on: https://chromium-review.googlesource.com/1000540 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52492}
-
- 06 Apr, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit f9a2e24b. Reason for revert: gc stress failures not all fixed by follow up. Original change's description: > [cleanup] Refactor the Factory > > There is no good reason to have the meat of most objects' initialization > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, > this CL changes the protocol between Heap and Factory to be AllocateRaw, > and all object initialization work after (possibly retried) successful > raw allocation happens in the Factory. > > This saves about 20KB of binary size on x64. > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca > Reviewed-on: https://chromium-review.googlesource.com/959533 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52416} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52420}
-
Jakob Kummerow authored
There is no good reason to have the meat of most objects' initialization logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead, this CL changes the protocol between Heap and Factory to be AllocateRaw, and all object initialization work after (possibly retried) successful raw allocation happens in the Factory. This saves about 20KB of binary size on x64. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca Reviewed-on: https://chromium-review.googlesource.com/959533 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52416}
-
- 05 Apr, 2018 1 commit
-
-
Camillo Bruni authored
This is another small step towards detaching the JSFunction from Contexts. In order to not break the debugger protocol we need the inferred name on the ScopeInfo chain. This CL might increase memory usage slightly, given that the inferred name field is duplicated on the ScopeInfo. Bug: v8:7066, chromium:818642 Change-Id: I0dd9f18ae69791f774cf835669afa50491f7433b Reviewed-on: https://chromium-review.googlesource.com/995792 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52415}
-
- 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 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 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}
-
- 05 Mar, 2018 1 commit
-
-
Adam Klein authored
This patch moves the has_braces_ bool to the bit_field_, and moves function_literal_id_ into the freed-up slack space. This saves 4 bytes on 32-bit platforms and 8 bytes on 64-bit. Change-Id: Ib5ba475915e46494c75019cfc184aafe72f6407f Reviewed-on: https://chromium-review.googlesource.com/947467Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51742}
-
- 20 Feb, 2018 1 commit
-
-
Adam Klein authored
Also delete a bit of dead code depending on dead types. Change-Id: I6cfc7e2f6c8fd006bd0de054bfc3e9f725996741 Reviewed-on: https://chromium-review.googlesource.com/923083Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51403}
-
- 12 Feb, 2018 1 commit
-
-
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}
-
- 03 Feb, 2018 1 commit
-
-
Sathya Gunasekaran authored
Report an error during scope analysis if we're unable to find a variable proxy for the given private field. This can happen if we try to access a private field that was not defined or if we're outside the class scope. This doesn't correctly throw an early error when pre parsing a top level function because we don't track it's variables. Bug: v8:5368 Change-Id: I0a1193fe0ae213c0732fae5d435e150852a8d87d Reviewed-on: https://chromium-review.googlesource.com/892093Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51082}
-
- 29 Jan, 2018 1 commit
-
-
Sathya Gunasekaran authored
Things that don't work yet: (a) pre parsed scope data is broken (b) private fields can be accessed outside classes (c) no early or runtime error for accessing unknown fields Things that do work: everything else Change-Id: I3d58be44e2be73ec50defb42403112a8a5e68c54 Bug: v8:5368 Reviewed-on: https://chromium-review.googlesource.com/865497 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@{#50935}
-
- 24 Jan, 2018 1 commit
-
-
Leszek Swirski authored
Instead of building suspend_ids in the AST numbering, collect suspend counts in the parser and assigning suspend ids during bytecode generation. Bug: v8:7178 Change-Id: I53421442afddc894db789fb9d0d3e3cc10e32ff0 Reviewed-on: https://chromium-review.googlesource.com/817598 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#50830}
-
- 11 Jan, 2018 1 commit
-
-
Caitlin Potter authored
https://github.com/tc39/ecma262/pull/988 gained concensus during the september 2017 TC39 meetings. This moves the load of the "next" method to the very beginning of the iteration protocol, rather than during each iteration step. This impacts: - yield* - for-of loops - spread arguments - array spreads In the v8 implementation, this also affects async iteration versions of these things (the sole exception being the Async-From-Sync iterator, which requires a few more changes to work with this, likely done in a followup patch). This change introduces a new AST node, ResolvedProperty, which can be used as a callee by Call nodes to produce the same bytecode as Property calls, without observably re-loading the property. This is used in several AST-desugarings involving the iteration protocol. BUG=v8:6861, v8:5699 R=rmcilroy@chromium.org TBR=neis@chromium.org, adamk@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I9685db6e85315ba8a2df87a4537c2bf491e1e35b Reviewed-on: https://chromium-review.googlesource.com/857593 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#50518}
-
- 09 Jan, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit bf4cc9ee. Reason for revert: Breaks windows with msvc and linux with gcc https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/841 https://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/17265 Original change's description: > [esnext] load `iterator.next` only once at beginning of iteration > > https://github.com/tc39/ecma262/pull/988 gained concensus during the > september 2017 TC39 meetings. This moves the load of the "next" method > to the very beginning of the iteration protocol, rather than during > each iteration step. > > This impacts: > > - yield* > - for-of loops > - spread arguments > - array spreads > > In the v8 implementation, this also affects async iteration versions of > these things (the sole exception being the Async-From-Sync iterator, > which requires a few more changes to work with this, likely done in a > followup patch). > > This change introduces a new AST node, ResolvedProperty, which can be used > as a callee by Call nodes to produce the same bytecode as Property calls, > without observably re-loading the property. This is used in several > AST-desugarings involving the iteration protocol. > > BUG=v8:6861, v8:5699 > R=rmcilroy@chromium.org, neis@chromium.org, adamk@chromium.org > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ib81106a0182687fc5efea0bc32302ad06376773b > Reviewed-on: https://chromium-review.googlesource.com/687997 > Commit-Queue: Caitlin Potter <caitp@igalia.com> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Adam Klein <adamk@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50452} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,caitp@igalia.com,caitp@chromium.org Change-Id: I1797c0d596dfd6850d6f0f505f591a7a990dd1f1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6861, v8:5699 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/857616Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#50454}
-
Caitlin Potter authored
https://github.com/tc39/ecma262/pull/988 gained concensus during the september 2017 TC39 meetings. This moves the load of the "next" method to the very beginning of the iteration protocol, rather than during each iteration step. This impacts: - yield* - for-of loops - spread arguments - array spreads In the v8 implementation, this also affects async iteration versions of these things (the sole exception being the Async-From-Sync iterator, which requires a few more changes to work with this, likely done in a followup patch). This change introduces a new AST node, ResolvedProperty, which can be used as a callee by Call nodes to produce the same bytecode as Property calls, without observably re-loading the property. This is used in several AST-desugarings involving the iteration protocol. BUG=v8:6861, v8:5699 R=rmcilroy@chromium.org, neis@chromium.org, adamk@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ib81106a0182687fc5efea0bc32302ad06376773b Reviewed-on: https://chromium-review.googlesource.com/687997 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#50452}
-
- 04 Jan, 2018 1 commit
-
-
Sathya Gunasekaran authored
This patch breaks out bailout reasons into two enum classes. This helps save 3 bits on the SharedFunctionInfo as we don't have to track the abort reasons. Change-Id: Ic2e7e7e32b0fa31491f1c6f0003a61390d68fd97 Reviewed-on: https://chromium-review.googlesource.com/848244Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#50364}
-
- 19 Dec, 2017 2 commits
-
-
peterwmwong authored
This is a reland of ab38b03d Original change's description: > [builtins] Port Object.p.toLocaleString to CSA from JS > > - Added ObjectPrototypeToLocaleString TFJ > - Remove v8natives.js > - Move GetMethod and GetIterator into prologue.js > > TBR=adamk@chromium.org > > Bug: v8:6005 > Change-Id: I2b5b65892304e62bf64375458f8ffb9473b2c9b7 > Reviewed-on: https://chromium-review.googlesource.com/826479 > Reviewed-by: Peter Wong <peter.wm.wong@gmail.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> > Cr-Commit-Position: refs/heads/master@{#50120} Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng TBR=adamk@chromium.org Bug: v8:6005 Change-Id: Ie8c8810c5231e933e61ea8babe963e58bb6dcaed Reviewed-on: https://chromium-review.googlesource.com/831156Reviewed-by:
Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#50218}
-
Leszek Swirski authored
Move the object and array literal flag and depth initialization to when they are visited by the bytecode generator. This avoids issues with doing this initialization before we know whether the (syntactic) literal is actually a literal value or a destructuring assignment. Bug: chromium:795922 Bug: v8:7178 Change-Id: I022178ab4bc9e71f80560f3b78a759d95d4d0584 Reviewed-on: https://chromium-review.googlesource.com/833882Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#50204}
-
- 18 Dec, 2017 2 commits
-
-
Leszek Swirski authored
Move literal initialization out of AST numbering and into the parser. The initialization includes setting the depth and flags of Object and Array literals, and calculating the emit store of object literals. Bug: v8:7178 Change-Id: I9af59a2fea44f8a1adcc5a0261f29ce97fa8da92 Reviewed-on: https://chromium-review.googlesource.com/814634 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#50168}
-
Yang Guo authored
This changes the implementation of v8::ScriptCompiler::CompileFunctionInContext See design doc: https://goo.gl/ppkK6Q R=adamk@chromium.org, marja@chromium.org, mstarzinger@chromium.org Bug: v8:7172, chromium:70895 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iab0b6e879c1a3b33b623bfa2af9c706643c06fa7 Reviewed-on: https://chromium-review.googlesource.com/810946 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#50148}
-
- 15 Dec, 2017 3 commits
-
-
Caitlin Potter authored
This gets rid of all the RewriteNonPattern gunk in the parser and expression classifier, and removes one use of RewritableExpression. This borrows pieces from several other CLs of mine which are currently open, and includes a new and modernized abstraction for dealing with iterators in BytecodeGenerator (so, this CL adds that, moves code from BuildGetIterator around, and makes some minor changes to yield* which should maintain compatability with the old behaviour). This also implements a portion of the changes to the iteration protocol (implemented fully in https://chromium-review.googlesource.com/c/v8/v8/+/687997), but only for the spread operator in Array Literals (the rest will follow). BUG=v8:5940, v8:3018 R=rmcilroy@chromium.org, marja@chromium.org, adamk@chromium.org TBR=adamk@chromium.org Change-Id: Ifc494d663d8e46066a439c3541c33f0243726234 Reviewed-on: https://chromium-review.googlesource.com/804396 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#50138}
-
Michael Achenbach authored
This reverts commit ab38b03d. Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/20480 https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [builtins] Port Object.p.toLocaleString to CSA from JS > > - Added ObjectPrototypeToLocaleString TFJ > - Remove v8natives.js > - Move GetMethod and GetIterator into prologue.js > > TBR=adamk@chromium.org > > Bug: v8:6005 > Change-Id: I2b5b65892304e62bf64375458f8ffb9473b2c9b7 > Reviewed-on: https://chromium-review.googlesource.com/826479 > Reviewed-by: Peter Wong <peter.wm.wong@gmail.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> > Cr-Commit-Position: refs/heads/master@{#50120} TBR=adamk@chromium.org,peter.wm.wong@gmail.com,jgruber@chromium.org Change-Id: Ib406a55562735cc4d879d62b76f27edf3f1ed211 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6005 Reviewed-on: https://chromium-review.googlesource.com/828813Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#50123}
-
peterwmwong authored
- Added ObjectPrototypeToLocaleString TFJ - Remove v8natives.js - Move GetMethod and GetIterator into prologue.js TBR=adamk@chromium.org Bug: v8:6005 Change-Id: I2b5b65892304e62bf64375458f8ffb9473b2c9b7 Reviewed-on: https://chromium-review.googlesource.com/826479Reviewed-by:
Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#50120}
-
- 12 Dec, 2017 1 commit
-
-
Marja Hölttä authored
If an initializer is a NaryOperation, its position ends up as a start position of a Scope, and a DCHECK used to fire. Interestingly, this was not caught by our existing tests. BUG=chromium:791256 Change-Id: Id47f850c7ad17ca580352f9bd56c9567b485c3b8 Reviewed-on: https://chromium-review.googlesource.com/822093Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#50051}
-
- 27 Nov, 2017 1 commit
-
-
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}
-
- 17 Nov, 2017 1 commit
-
-
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}
-
- 16 Nov, 2017 1 commit
-
-
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 2 commits
-
-
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}
-