1. 12 May, 2020 1 commit
  2. 07 May, 2020 1 commit
  3. 06 May, 2020 1 commit
  4. 18 Dec, 2019 1 commit
    • Nico Hartmann's avatar
      [torque] Enum language feature · fdc9fade
      Nico Hartmann authored
      This CL implements enums in Torque in three steps:
      
      1.) It implements necessary changes to Torque's type system. In
      particular, the constraints on constexpr types are relaxed such that
      constexpr types can exist without a corresponding non-constexpr
      version. Furthermore, constexpr and their non-constexpr counterpart
      need not be of the same kind of type. This allows an AbstractType to
      have a UnionType as its non-constexpr counterpart.
      
      2.) The enum feature itself is realized as a pure desugaring in the
      parser, where all required types, constants and macro specializations
      (like FromConstexpr<>) are generated from a simple enum declaration,
      such that enum entries are not just constants, but are namespace
      scoped and have distinct types so that they can be used within
      typeswitch constructs.
      
      3.) Almost all of the existing constants defined in torque
      (.tq files) are ported to new enum definitions.
      
      Bug: v8:10053
      Change-Id: I72426d3b1434f301fd690847e15603de0dc1021b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1964392
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65503}
      fdc9fade
  5. 20 Nov, 2019 1 commit
  6. 26 Aug, 2019 1 commit
    • Tobias Tebbi's avatar
      Reland "[torque] introduce JSAny type for user-accessible JavaScript values" · 1ef99b93
      Tobias Tebbi authored
      Changes in the reland: Rebased and added a check that JavaScript-linkage
      builtins use JSAny in parameters and return type, plus the necessary
      cleanups for this test to pass.
      
      Design Doc: https://docs.google.com/document/d/1z6j0pWHnNIfId0v00uWN2HBrGRDJxJfYuCr5K7Kr1xA
      
      This reverts commit 4418a7b9.
      
      Original change's description:
      > Revert "[torque] introduce JSAny type for user-accessible JavaScript values"
      >
      > This reverts commit 79b00555.
      >
      > Reason for revert: needs more discussion
      >
      > Original change's description:
      > > [torque] introduce JSAny type for user-accessible JavaScript values
      > >
      > > This CL introduces a JSAny type for user-exposed JavaScript values and
      > > a few new types to define it. Especially, it splits Symbol into
      > > PrivateSymbol (not exposed) and PublicSymbol (JavaScript exposed
      > > symbols).
      > >
      > > The change is mostly mechanical, but a few things are interesting:
      > > - PropertyKey and JSPrimitive were designed to coincide with the spec
      > >   notions of IsPropertyKey() and primitive value, respectively.
      > > - Since Name is an open type, we define AnyName to be the known
      > >   subtypes of Name. This is not too elegant, but by using AnyName
      > >   instead of Name, typeswitch can properly conclude something if a
      > >   subtype of Name is excluded.
      > >
      > > Small drive-by changes, which were necessary:
      > > - Allow subtyping on label parameters.
      > > - Fix the formatting of typeswitch, it was broken with union types
      > >   in case types.
      > >
      > > Bug: v8:7793
      > > Change-Id: I14b10507f8cf316ad85e048fe8d53d1df5e0bb13
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735322
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#63114}
      >
      > TBR=neis@chromium.org,jgruber@chromium.org,tebbi@chromium.org
      >
      > Change-Id: Ifde7881d74afe407628f40047997339d54cb2424
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: v8:7793
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741652
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63115}
      
      TBR=neis@chromium.org,jgruber@chromium.org,tebbi@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7793
      Change-Id: Icca34e3824f55009b984d9348fd21884400f0081
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1769316
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63395}
      1ef99b93
  7. 07 Aug, 2019 2 commits
    • Tobias Tebbi's avatar
      Revert "[torque] introduce JSAny type for user-accessible JavaScript values" · 4418a7b9
      Tobias Tebbi authored
      This reverts commit 79b00555.
      
      Reason for revert: needs more discussion
      
      Original change's description:
      > [torque] introduce JSAny type for user-accessible JavaScript values
      > 
      > This CL introduces a JSAny type for user-exposed JavaScript values and
      > a few new types to define it. Especially, it splits Symbol into
      > PrivateSymbol (not exposed) and PublicSymbol (JavaScript exposed
      > symbols).
      > 
      > The change is mostly mechanical, but a few things are interesting:
      > - PropertyKey and JSPrimitive were designed to coincide with the spec
      >   notions of IsPropertyKey() and primitive value, respectively.
      > - Since Name is an open type, we define AnyName to be the known
      >   subtypes of Name. This is not too elegant, but by using AnyName
      >   instead of Name, typeswitch can properly conclude something if a
      >   subtype of Name is excluded.
      > 
      > Small drive-by changes, which were necessary:
      > - Allow subtyping on label parameters.
      > - Fix the formatting of typeswitch, it was broken with union types
      >   in case types.
      > 
      > Bug: v8:7793
      > Change-Id: I14b10507f8cf316ad85e048fe8d53d1df5e0bb13
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735322
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63114}
      
      TBR=neis@chromium.org,jgruber@chromium.org,tebbi@chromium.org
      
      Change-Id: Ifde7881d74afe407628f40047997339d54cb2424
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7793
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741652Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63115}
      4418a7b9
    • Tobias Tebbi's avatar
      [torque] introduce JSAny type for user-accessible JavaScript values · 79b00555
      Tobias Tebbi authored
      This CL introduces a JSAny type for user-exposed JavaScript values and
      a few new types to define it. Especially, it splits Symbol into
      PrivateSymbol (not exposed) and PublicSymbol (JavaScript exposed
      symbols).
      
      The change is mostly mechanical, but a few things are interesting:
      - PropertyKey and JSPrimitive were designed to coincide with the spec
        notions of IsPropertyKey() and primitive value, respectively.
      - Since Name is an open type, we define AnyName to be the known
        subtypes of Name. This is not too elegant, but by using AnyName
        instead of Name, typeswitch can properly conclude something if a
        subtype of Name is excluded.
      
      Small drive-by changes, which were necessary:
      - Allow subtyping on label parameters.
      - Fix the formatting of typeswitch, it was broken with union types
        in case types.
      
      Bug: v8:7793
      Change-Id: I14b10507f8cf316ad85e048fe8d53d1df5e0bb13
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735322
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63114}
      79b00555
  8. 19 Jun, 2019 1 commit
  9. 14 Jun, 2019 3 commits
  10. 06 May, 2019 1 commit
  11. 01 Mar, 2019 1 commit
  12. 27 Feb, 2019 2 commits
  13. 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
  14. 11 Dec, 2018 1 commit
  15. 27 Nov, 2018 1 commit
  16. 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
  17. 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