1. 01 Jul, 2019 1 commit
  2. 27 Jun, 2019 1 commit
    • Z Nguyen-Huu's avatar
      Implement fastpath for proxy trap setPrototypeOf · fc8c4ef2
      Z Nguyen-Huu authored
      ObjectSetPrototypeOf and ReflectSetPrototypeOf are now Torque builtins (previously CPP) and the Proxy path is implemented completely in Torque while everything else calls into runtime (and is thus a bit slower than previously).
      
      Perf improvement in micro-benchmark JSTests/Proxies
      Before:
      SetPrototypeOfWithoutTrap-Proxies(Score): 120
      SetPrototypeOfWithTrap-Proxies(Score): 112
      
      After:
      SetPrototypeOfWithoutTrap-Proxies(Score): 131
      SetPrototypeOfWithTrap-Proxies(Score): 127
      
      Bug: v8:6664
      Change-Id: I630096e1964c91d1ec39e19f380a2e9e948de4bb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1669787
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62402}
      fc8c4ef2
  3. 26 Jun, 2019 1 commit
  4. 18 Jun, 2019 1 commit
    • Z Nguyen-Huu's avatar
      Implement fastpath for proxy trap getPrototypeOf · 4e17a6be
      Z Nguyen-Huu authored
      ObjectGetPrototypeOf and ReflectGetPrototypeOf are now Torque builtins (previously CPP) and the Proxy path is implemented completely in Torque while everything else calls into runtime (and is thus a bit slower than previously).
      
      Perf improvement in micro-benchmark JSTests/Proxies
      Before:
      GetPrototypeOfWithoutTrap-Proxies(Score): 1876
      GetPrototypeOfWithTrap-Proxies(Score): 857
      
      After:
      GetPrototypeOfWithoutTrap-Proxies(Score): 2810
      GetPrototypeOfWithTrap-Proxies(Score): 3197
      
      Bug: v8:6664
      Change-Id: If60dda67d6e90c2d6f0ec743f6cb7c0fff54d607
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1658717
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62256}
      4e17a6be
  5. 14 Jun, 2019 3 commits
  6. 12 Jun, 2019 1 commit
    • Z Nguyen-Huu's avatar
      Add fast path for proxy with preventExtensions trap · 8e0ef9b9
      Z Nguyen-Huu authored
      ObjectPreventExtensions and ReflectPreventExtensions are now Torque builtins (previously CPP) and the Proxy path is implemented completely in Torque while everything else calls into runtime (and is thus a bit slower than previously).
      
      Perf improvement in micro-benchmark JSTests/Proxies
      Before:
      PreventExtensionsWithoutTrap-Proxies(Score): 1978
      PreventExtensionsWithTrap-Proxies(Score): 739
      
      After:
      PreventExtensionsWithoutTrap-Proxies(Score): 3017
      PreventExtensionsWithTrap-Proxies(Score): 2044
      
      Bug: v8:6664
      Change-Id: I6505d730cea6b0d197f6f5d0540b39056c8b763d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1652688
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62130}
      8e0ef9b9
  7. 06 Jun, 2019 1 commit
    • Simon Zünd's avatar
      [torque] Add lint errors for unused variable and label bindings · 0e53739c
      Simon Zünd authored
      This CL adds lint errors when 'let' bindings, arguments and labels
      are not used. Note that errors for 'const' bindings will be added
      later.
      
      In cases where arguments are actually needed to match the signature,
      the warning can be silenced by prefixing identifiers with "_". This
      might be needed for generic specializations or builtins called from
      TurboFan. Trying to use a variable or label that was marked with
      "_" results in a compilation error.
      
      Implicit arguments are not linted. They are implemented using exact
      string matching. Prefixing an implicit argument with "_" in a callee
      would break all callers as the names would no longer match.
      
      Drive-by: Fix all new lint errors in the existing Torque code.
      
      Bug: v8:7793
      Change-Id: I68b3c59c76b956e9f88709e9388a40a19546ce52
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1645092
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62027}
      0e53739c
  8. 05 Jun, 2019 1 commit
  9. 24 Jan, 2019 1 commit
    • Daniel Clifford's avatar
      [torque] Correctly support JSObject allocation with 'new' · 32a92cf5
      Daniel Clifford authored
      This requires honoring the instance size of the object stored in the
      map for JSObject. To do this, allocation is now split into two
      instrinsics, one that calculates the base size of the allocated object
      (%GetAllocationBaseSize) and one that actually allocates (%Allocate).
      
      In the process, remove objects.tq, which only existed to contain a
      macro to fetch the default JSObject map, which is functionality that
      is now in the JSObject class constructor.
      
      Bug: v8:7793
      Change-Id: I426a7943aac67eacad46d4ff39f5c821489a04bc
      Reviewed-on: https://chromium-review.googlesource.com/c/1426959
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59052}
      32a92cf5
  10. 23 Nov, 2018 1 commit
    • Caitlin Potter's avatar
      Reland "[builtins] Implement Object.fromEntries" · 8a9cbdac
      Caitlin Potter authored
      This is a reland of a5336471
      
      Original change's description:
      > [builtins] Implement Object.fromEntries
      > 
      > Adds the Object.fromEntries() method behind
      > --harmony-object-from-entries.
      > 
      > 
> Includes an initial implementation of the new experimental builtin
      > Object.fromEntries implemented by Daniel Clifford, and
      > has been modified by Caitlin Potter to support a fast case to skip
      > the iterator protocol when it can be done unobservably in common cases.
      > 
      > There are some incidental changes: A number of CSA macros have been
      > updated to use TNodes, and some Context arguments have been
      > re-arranged to be implicit in Torque.
> 
      > 
      > There are also a number of mjsunit tests written mirroring and
      > expanding on the test262 tests.
      > 
      > BUG=v8:8021
      > 
      > Change-Id: I1c12bee8a2f98c6297b77d5d723910a5e3b630cc
      > Co-authored-by: Daniel Clifford <danno@chromium.org>
      > Co-authored-by: Caitlin Potter <caitp@igalia.com>
      > Reviewed-on: https://chromium-review.googlesource.com/c/1337585
      > Commit-Queue: Daniel Clifford <danno@chromium.org>
      > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57667}
      
      Bug: v8:8021
      Change-Id: I706e2d87bfc2f688e833c1b7d40ca82f5d80f5a2
      Reviewed-on: https://chromium-review.googlesource.com/c/1346630Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Cr-Commit-Position: refs/heads/master@{#57798}
      8a9cbdac
  11. 21 Nov, 2018 2 commits
    • Clemens Hammacher's avatar
      Revert "[builtins] Implement Object.fromEntries" · 6abd6f3d
      Clemens Hammacher authored
      This reverts commit a5336471.
      
      Reason for revert: Fails nosnap debug tests: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/21838
      
      Original change's description:
      > [builtins] Implement Object.fromEntries
      > 
      > Adds the Object.fromEntries() method behind
      > --harmony-object-from-entries.
      > 
      > 
> Includes an initial implementation of the new experimental builtin
      > Object.fromEntries implemented by Daniel Clifford, and
      > has been modified by Caitlin Potter to support a fast case to skip
      > the iterator protocol when it can be done unobservably in common cases.
      > 
      > There are some incidental changes: A number of CSA macros have been
      > updated to use TNodes, and some Context arguments have been
      > re-arranged to be implicit in Torque.
> 
      > 
      > There are also a number of mjsunit tests written mirroring and
      > expanding on the test262 tests.
      > 
      > BUG=v8:8021
      > 
      > Change-Id: I1c12bee8a2f98c6297b77d5d723910a5e3b630cc
      > Co-authored-by: Daniel Clifford <danno@chromium.org>
      > Co-authored-by: Caitlin Potter <caitp@igalia.com>
      > Reviewed-on: https://chromium-review.googlesource.com/c/1337585
      > Commit-Queue: Daniel Clifford <danno@chromium.org>
      > Reviewed-by: Daniel Clifford <danno@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57667}
      
      TBR=danno@chromium.org,caitp@igalia.com,tebbi@chromium.org
      
      Change-Id: Id0cd8b16131f151a42dffbaca7e59ab17c68ab23
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8021
      Reviewed-on: https://chromium-review.googlesource.com/c/1346116Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57677}
      6abd6f3d
    • Caitlin Potter's avatar
      [builtins] Implement Object.fromEntries · a5336471
      Caitlin Potter authored
      Adds the Object.fromEntries() method behind
      --harmony-object-from-entries.
      
      
Includes an initial implementation of the new experimental builtin
      Object.fromEntries implemented by Daniel Clifford, and
      has been modified by Caitlin Potter to support a fast case to skip
      the iterator protocol when it can be done unobservably in common cases.
      
      There are some incidental changes: A number of CSA macros have been
      updated to use TNodes, and some Context arguments have been
      re-arranged to be implicit in Torque.

      
      There are also a number of mjsunit tests written mirroring and
      expanding on the test262 tests.
      
      BUG=v8:8021
      
      Change-Id: I1c12bee8a2f98c6297b77d5d723910a5e3b630cc
      Co-authored-by: 's avatarDaniel Clifford <danno@chromium.org>
      Co-authored-by: 's avatarCaitlin Potter <caitp@igalia.com>
      Reviewed-on: https://chromium-review.googlesource.com/c/1337585
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57667}
      a5336471