• 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
constants.h 3.53 KB