1. 13 Feb, 2019 1 commit
  2. 11 Feb, 2019 1 commit
  3. 02 Feb, 2019 1 commit
  4. 30 Jan, 2019 2 commits
  5. 29 Jan, 2019 1 commit
  6. 23 Jan, 2019 1 commit
  7. 22 Jan, 2019 1 commit
  8. 21 Jan, 2019 1 commit
  9. 19 Jan, 2019 1 commit
  10. 16 Jan, 2019 1 commit
    • Leszek Swirski's avatar
      [parser] Declarations store Variables not proxies · 92841799
      Leszek Swirski authored
      Storing a VariableProxy in declarations means that a declaration and
      initialisation assignment are tightly coupled to use the same var. In
      particular, this means that Var declarations in with scopes have to
      clone the VariableProxy to split the declaration and initializer LHS
      lookup.
      
      This patch changes declarations to point directly to the Variable, not
      the VariableProxy. This will allow future refactoring to decouple
      declarations and initialisations.
      
      Change-Id: I0baa77bfd12fe175f9521d292740d7d712cffd37
      Reviewed-on: https://chromium-review.googlesource.com/c/1406683Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58843}
      92841799
  11. 10 Jan, 2019 1 commit
    • Leszek Swirski's avatar
      [destructuring] Get non-coercible message contents in runtime · 5e2c23e2
      Leszek Swirski authored
      For desrtucturing assignments from null/undefined, we throw an error
      that references the destructuring object literal's property name, e.g.
      for
        var { x } = null;
      we report that we cannot destructure 'x' from null.
      
      Rather than calculating this property during bytecode generation (and
      including it in the bytecode as an argument to the type error
      constructor), we can calculate it at exception throwing time, by
      re-parsing the source in a similar way to the existing call site
      rendering.
      
      This slightly decreases bytecode size and slightly decreases the amount
      of work the bytecode compiler needs to do. In the future, it could also
      allow us to give more detailed error messages, as we now have access to
      the entire AST and are on the slow path anyway.
      
      Bug: v8:6499
      Change-Id: Icdbd4667db548b4e5e62ef97797a3771b5c1bf72
      Reviewed-on: https://chromium-review.googlesource.com/c/1396080Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58706}
      5e2c23e2
  12. 09 Jan, 2019 2 commits
  13. 07 Jan, 2019 1 commit
  14. 19 Dec, 2018 2 commits
  15. 10 Dec, 2018 2 commits
  16. 23 Nov, 2018 1 commit
    • Toon Verwaest's avatar
      [parser] Cleanup pattern classification · 2e052332
      Toon Verwaest authored
      This changes the split from AssignmentPattern and BindingPattern to Pattern and
      BindingPattern. Pattern collects all errors that are invalid in both assignment
      and binding pattern contexts. Binding pattern additionally collects errors for
      binding pattern contexts (property access isn't a valid target). The
      distinction is piggybacked on to distinguish assignment vs binding pattern
      errors since binding pattern verification will first throw the binding pattern
      error.
      
      Since we don't throw pattern error as binding pattern as well, this can mean
      that a later binding pattern syntax error will show up before an early pattern
      error. Since that just changes the message to another syntax violation, I think
      that's fine.
      
      Change-Id: Ib6a22c8d11c49eacc6667ae8ee5e98bababadd43
      Reviewed-on: https://chromium-review.googlesource.com/c/1349273Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57774}
      2e052332
  17. 12 Nov, 2018 1 commit
  18. 08 Nov, 2018 2 commits
  19. 06 Nov, 2018 1 commit
  20. 02 Nov, 2018 3 commits
  21. 17 Oct, 2018 2 commits
  22. 16 Oct, 2018 1 commit
  23. 11 Oct, 2018 1 commit
  24. 17 Sep, 2018 1 commit
  25. 05 Sep, 2018 1 commit
    • Hai Dang's avatar
      Reland "[interpreter] Add bytecode for leading array spreads." · 5f8a4272
      Hai Dang authored
      This is a reland of 1c48d52b.
      
      It turned out that IterableToList doesn't always behave according to
      the ES operation with the same name. Specifically, it allows holey arrays
      to take its fast path, which produces an output array with holes where
      actually "undefined" elements should appear.
      
      This CL changes the version of IterableToList that is used for spreads
      (IterableToListWithSymbolLookup) such that holey arrays take the slow path.
      It also includes tests for such situations.
      
      Original change's description:
      > [interpreter] Add bytecode for leading array spreads.
      >
      > This CL improves the performance of creating [...a, b] or [...a].
      > If the array literal has a leading spread, this CL emits the bytecode
      > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable
      > is implemented by [IterableToListDefault] builtin to create the initial
      > array for the leading spread. IterableToListDefault has a fast path to
      > clone efficiently if the spread is an actual array.
      >
      > The bytecode generated is now shorter. Bytecode generation is refactored
      > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit
      > from this optimization also.
      > For now, turbofan also lowers the bytecode to the builtin.
      >
      > The idiomatic use of [...a] to clone the array a now performs better
      > than a simple for-loop, but still does not match the performance of slice.
      >
      > Bug: v8:7980
      >
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35
      > Reviewed-on: https://chromium-review.googlesource.com/1181024
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Commit-Queue: Hai Dang <dhai@google.com>
      > Cr-Commit-Position: refs/heads/master@{#55520}
      
      Bug: v8:7980
      Change-Id: I0b5603a12d2b588327658bf0a9b214bd0f22e237
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1201882
      Commit-Queue: Hai Dang <dhai@google.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55639}
      5f8a4272
  26. 31 Aug, 2018 1 commit
    • Georg Neis's avatar
      Revert "[interpreter] Add bytecode for leading array spreads." · ef569028
      Georg Neis authored
      This reverts commit 1c48d52b.
      
      Reason for revert: Clusterfuzz found something.
      
      Original change's description:
      > [interpreter] Add bytecode for leading array spreads.
      > 
      > This CL improves the performance of creating [...a, b] or [...a].
      > If the array literal has a leading spread, this CL emits the bytecode
      > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable
      > is implemented by [IterableToListDefault] builtin to create the initial
      > array for the leading spread. IterableToListDefault has a fast path to
      > clone efficiently if the spread is an actual array.
      > 
      > The bytecode generated is now shorter. Bytecode generation is refactored
      > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit
      > from this optimization also.
      > For now, turbofan also lowers the bytecode to the builtin.
      > 
      > The idiomatic use of [...a] to clone the array a now performs better
      > than a simple for-loop, but still does not match the performance of slice.
      > 
      > Bug: v8:7980
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35
      > Reviewed-on: https://chromium-review.googlesource.com/1181024
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Commit-Queue: Hai Dang <dhai@google.com>
      > Cr-Commit-Position: refs/heads/master@{#55520}
      
      TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com
      
      Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7980
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1199303Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55544}
      ef569028
  27. 30 Aug, 2018 1 commit
    • Hai Dang's avatar
      [interpreter] Add bytecode for leading array spreads. · 1c48d52b
      Hai Dang authored
      This CL improves the performance of creating [...a, b] or [...a].
      If the array literal has a leading spread, this CL emits the bytecode
      [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable
      is implemented by [IterableToListDefault] builtin to create the initial
      array for the leading spread. IterableToListDefault has a fast path to
      clone efficiently if the spread is an actual array.
      
      The bytecode generated is now shorter. Bytecode generation is refactored
      into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit
      from this optimization also.
      For now, turbofan also lowers the bytecode to the builtin.
      
      The idiomatic use of [...a] to clone the array a now performs better
      than a simple for-loop, but still does not match the performance of slice.
      
      Bug: v8:7980
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35
      Reviewed-on: https://chromium-review.googlesource.com/1181024Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Commit-Queue: Hai Dang <dhai@google.com>
      Cr-Commit-Position: refs/heads/master@{#55520}
      1c48d52b
  28. 23 Aug, 2018 3 commits
    • Simon Zünd's avatar
      Reland ^2 "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · fa11e2ac
      Simon Zünd authored
      This is a reland of 9e48a24f
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      >
      > The CL was reverted because it broke some tests in ChromeOS.
      >
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      >
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      Bug: v8:7382, v8:7624
      Change-Id: I297611f45c09967e0f6961156b0c9ebdebc7053f
      Reviewed-on: https://chromium-review.googlesource.com/1186801
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55360}
      fa11e2ac
    • Maya Lekova's avatar
      Revert "Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"" · 8e43b9c0
      Maya Lekova authored
      This reverts commit 9e48a24f.
      
      Reason for revert: Possibly breaking the V8-Blink Mac bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15097
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      > 
      > The CL was reverted because it broke some tests in ChromeOS.
      > 
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      > 
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      TBR=jgruber@chromium.org,szuend@google.com
      
      Change-Id: Ie7e2af57a6480aa0504ba21ec98ee825d7ac74fe
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7382, v8:7624
      Reviewed-on: https://chromium-review.googlesource.com/1186601Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55355}
      8e43b9c0
    • Simon Zünd's avatar
      Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · 9e48a24f
      Simon Zünd authored
      The CL was reverted because it broke some tests in ChromeOS.
      
      > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      >
      > This CL changes the sorting algorithm used in Array.p.sort from
      > QuickSort to TimSort (implemented in Torque).
      >
      > Detailed performance results can be found here: https://goo.gl/4E733J
      >
      > To save on code space, fast-paths are implemented as sets of
      > function pointers instead of specializing generics.
      >
      > R=cbruni@chromium.org, jgruber@chromium.org
      >
      > Bug: v8:7382, v8:7624
      > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55003}
      
      Bug: v8:7382, v8:7624
      Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      Reviewed-on: https://chromium-review.googlesource.com/1184901
      Commit-Queue: Simon Zünd <szuend@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55325}
      9e48a24f
  29. 14 Aug, 2018 1 commit
  30. 09 Aug, 2018 1 commit