1. 05 Oct, 2020 1 commit
  2. 15 Jul, 2020 1 commit
  3. 08 Jul, 2020 1 commit
  4. 22 Jun, 2020 1 commit
  5. 04 Mar, 2020 1 commit
  6. 20 Feb, 2020 2 commits
  7. 17 Feb, 2020 1 commit
  8. 22 Jan, 2020 1 commit
    • Shiyu Zhang's avatar
      Reland "Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo"" · 6f3cf7aa
      Shiyu Zhang authored
      This is a reland of 3b753563
      
      Original change's description:
      > Reland "[runtime] Cache prototype chain enumerable keys in PrototypeInfo"
      > 
      > This is a reland of 5253d7bf
      > 
      > Original change's description:
      > > [runtime] Cache prototype chain enumerable keys in PrototypeInfo
      > > 
      > > This CL adds a prototype_chain_enum_cache to cache the enumeration of a
      > > prototype and its entire chain on the PrototypeInfo. It can improve for-in
      > > performance via simply merging the receiver enumeration with this cache.
      > > 
      > > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook.
      > > 
      > > Contributed by tao.pan@intel.com
      > > 
      > > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844
      > > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
      > > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#65224}
      > 
      > Change-Id: I93b74727c46abbaab163324c50fbd977fcc9bb36
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1955232
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
      > Cr-Commit-Position: refs/heads/master@{#65377}
      
      Change-Id: If4b4631e1b8a3d2df748b6be8500f838836a3291
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2008253
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65919}
      6f3cf7aa
  9. 11 Dec, 2019 1 commit
  10. 09 Dec, 2019 1 commit
  11. 29 Nov, 2019 1 commit
    • Toon Verwaest's avatar
      Revert "[runtime] Cache prototype chain enumerable keys in PrototypeInfo" · 21ad38ef
      Toon Verwaest authored
      This reverts commit 5253d7bf.
      
      Reason for revert: Elements don't properly invalidate the cache.
      
      Original change's description:
      > [runtime] Cache prototype chain enumerable keys in PrototypeInfo
      > 
      > This CL adds a prototype_chain_enum_cache to cache the enumeration of a
      > prototype and its entire chain on the PrototypeInfo. It can improve for-in
      > performance via simply merging the receiver enumeration with this cache.
      > 
      > It improves the score of JetStream2-tagcloud-SP case by ~9% on IA Chromebook.
      > 
      > Contributed by tao.pan@intel.com
      > 
      > Change-Id: Ib40bfe41e772672337155584672f06fa1ba1e70d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1870844
      > Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#65224}
      
      TBR=verwaest@chromium.org,shiyu.zhang@intel.com
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: Ic5d476bc8b334241b2accb8344749fcf7dcf5e09
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943153Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65259}
      21ad38ef
  12. 28 Nov, 2019 1 commit
  13. 26 Nov, 2019 1 commit
  14. 15 Nov, 2019 1 commit
  15. 12 Oct, 2019 1 commit
  16. 11 Oct, 2019 2 commits
  17. 06 Sep, 2019 1 commit
    • Zhang, Shiyu's avatar
      [runtime] Do not add shadowing key for end prototype · a2e86bf6
      Zhang, Shiyu authored
      Shadowing key is used to exclude non-enumerable keys when iterating
      over the prototype chain. This CL skips adding shadowing key for
      end prototype to improve for-in performance. It can improve the
      performance of below microbench by ~50%.
      
      Object.prototype.foo = function() {};
      let obj = {
      	a:0,
      	b:1
      };
      let start = Date.now();
      for (let i = 0; i<1e6; i++) {
      	for (var j in obj) {}
      }
      console.log(Date.now() - start);
      
      This CL also improves the score of JetStream2-tagcloud-SP case
      by 8% on IA Chromebook.
      
      Contributed by tao.pan@intel.com
      
      Change-Id: I456082c08bf70f1f450ff54f657cdab26eb7bc2b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781113Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
      Cr-Commit-Position: refs/heads/master@{#63587}
      a2e86bf6
  18. 28 Aug, 2019 1 commit
  19. 11 Jul, 2019 1 commit
    • Mythri A's avatar
      [runtime] Remove try_fast path from GetOwnPropertyNames builtin · b048429e
      Mythri A authored
      GetOwnPropertyNameTryFast uses ENUMERABLE_STRINGS filter to trigger fast
      path in KeyAccumulator::GetKeys conditionally when all properties on the
      receiver are enumerable. It is not easy to verify if all properties are
      enumerable and the current check is incorrect in some cases.
      For ex: when we have non-enumerable properties when we have elements on
      the receiver. This cl removes this try_fast path from the builtin. This
      could impact performance. The long term fix for this would be to fix
      KeyAccumulator::GetKeys to use fast path for more cases.
      
      
      Bug: chromium:977870
      Change-Id: Iecde730739c2c452ffa0d893d0d1b3612a45d1b2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679499Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62649}
      b048429e
  20. 23 May, 2019 4 commits
  21. 22 May, 2019 1 commit
  22. 20 May, 2019 1 commit
  23. 17 May, 2019 1 commit
  24. 16 May, 2019 2 commits
  25. 07 May, 2019 1 commit
    • Peter Marshall's avatar
      Reland "[typedarray] Make JSTypedArray::length authoritative." · 330e5ba2
      Peter Marshall authored
      This is a reland of ad44c258
      
      Patchset 2 is the original CL
      Patchset 3 fixes some misuses of FixedArrayBase::length() and adds some
      DCHECKS to flush out any more misuses.
      Patchset 4 adds the PPC/S390 port by miladfar@ca.ibm.com.
      
      Original change's description:
      > [typedarray] Make JSTypedArray::length authoritative.
      >
      > This is the first step towards full huge typed array support in V8.
      > Before this change, the JSTypedArray::length and the elements backing
      > store length (FixedTypedArrayBase::length) were used more or less
      > interchangeably to determine the number of elements in a JSTypedArray.
      >
      > With this change we disentangle these two lengths, and instead make
      > JSTypedArray::length authoritative. For on-heap typed arrays, the
      > FixedTypedArrayBase::length will remain the number of elements in the
      > backing store, but for the off-heap typed arrays, this length will be
      > set to 0 (matching the fact that the FixedTypedArrayBase instance does
      > not contain any elements itself).
      >
      > This also unifies the JSTypedArray::set_/length() and length_value()
      > methods to only have JSTypedArray::set_/length() which returns/takes
      > size_t values. Currently this still requires the values to be in Smi
      > range, but later we will extend this to allow arbitrary size_t values
      > (in the safe integer range).
      >
      > Bug: v8:4153, v8:7881
      > Change-Id: Iff9089130bb31fa9e08e0cf913e7ab52c3dbf107
      > Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      > Doc: http://doc/1Z-wM2qwvAuxH46e9ivtkYvKzzwYZg8ymm0x0wJaomow
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543729
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60648}
      
      Bug: v8:4153, v8:7881, v8:9105
      Change-Id: Ic38f833071a723642ebc6f82a4012dbc0878ef98
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594435Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61275}
      330e5ba2
  26. 02 May, 2019 1 commit
    • Peter Marshall's avatar
      Revert "[typedarray] Make JSTypedArray::length authoritative." · 18100666
      Peter Marshall authored
      This reverts commit ad44c258.
      
      Reason for revert: Missed some users: crbug.com/v8/9105
      
      Original change's description:
      > [typedarray] Make JSTypedArray::length authoritative.
      >
      > This is the first step towards full huge typed array support in V8.
      > Before this change, the JSTypedArray::length and the elements backing
      > store length (FixedTypedArrayBase::length) were used more or less
      > interchangeably to determine the number of elements in a JSTypedArray.
      >
      > With this change we disentangle these two lengths, and instead make
      > JSTypedArray::length authoritative. For on-heap typed arrays, the
      > FixedTypedArrayBase::length will remain the number of elements in the
      > backing store, but for the off-heap typed arrays, this length will be
      > set to 0 (matching the fact that the FixedTypedArrayBase instance does
      > not contain any elements itself).
      >
      > This also unifies the JSTypedArray::set_/length() and length_value()
      > methods to only have JSTypedArray::set_/length() which returns/takes
      > size_t values. Currently this still requires the values to be in Smi
      > range, but later we will extend this to allow arbitrary size_t values
      > (in the safe integer range).
      >
      > Bug: v8:4153, v8:7881
      > Change-Id: Iff9089130bb31fa9e08e0cf913e7ab52c3dbf107
      > Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      > Doc: http://doc/1Z-wM2qwvAuxH46e9ivtkYvKzzwYZg8ymm0x0wJaomow
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543729
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60648}
      
      TBR=jarin@chromium.org,titzer@chromium.org,hpayer@chromium.org,petermarshall@chromium.org,bmeurer@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      TBR=jarin@chromium.org, szuend@chromium.org
      
      Bug: v8:4153, v8:7881
      Change-Id: I96992bff15b4a2765ae4a557d2c37e78269c927d
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593294
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61172}
      18100666
  27. 05 Apr, 2019 1 commit
    • Benedikt Meurer's avatar
      [typedarray] Make JSTypedArray::length authoritative. · ad44c258
      Benedikt Meurer authored
      This is the first step towards full huge typed array support in V8.
      Before this change, the JSTypedArray::length and the elements backing
      store length (FixedTypedArrayBase::length) were used more or less
      interchangeably to determine the number of elements in a JSTypedArray.
      
      With this change we disentangle these two lengths, and instead make
      JSTypedArray::length authoritative. For on-heap typed arrays, the
      FixedTypedArrayBase::length will remain the number of elements in the
      backing store, but for the off-heap typed arrays, this length will be
      set to 0 (matching the fact that the FixedTypedArrayBase instance does
      not contain any elements itself).
      
      This also unifies the JSTypedArray::set_/length() and length_value()
      methods to only have JSTypedArray::set_/length() which returns/takes
      size_t values. Currently this still requires the values to be in Smi
      range, but later we will extend this to allow arbitrary size_t values
      (in the safe integer range).
      
      Bug: v8:4153, v8:7881
      Change-Id: Iff9089130bb31fa9e08e0cf913e7ab52c3dbf107
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Doc: http://doc/1Z-wM2qwvAuxH46e9ivtkYvKzzwYZg8ymm0x0wJaomow
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543729
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60648}
      ad44c258
  28. 27 Feb, 2019 1 commit
  29. 09 Feb, 2019 1 commit
  30. 08 Feb, 2019 1 commit
  31. 29 Jan, 2019 1 commit
  32. 08 Jan, 2019 1 commit
  33. 26 Dec, 2018 1 commit
  34. 14 Dec, 2018 1 commit