- 18 Dec, 2019 1 commit
-
-
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: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65503}
-
- 26 Aug, 2019 1 commit
-
-
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: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63395}
-
- 07 Aug, 2019 2 commits
-
-
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: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63115}
-
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: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63114}
-
- 16 Jul, 2019 1 commit
-
-
Z Nguyen-Huu authored
Bail out if name in proxy is private symbol. Also, do stack check to avoid deeply nested proxy. Spec: https://tc39.es/ecma262/#sec-reflect.get Change-Id: I0761762b074d5af892e8d7e419c87c9bbea99241 Bug: v8:8958 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682680 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#62747}
-
- 27 Jun, 2019 1 commit
-
-
Z Nguyen-Huu authored
GetPropertyWithReceiver is similar to GetProperty, except that additional receiver parameter is used in TryPrototypeChainLookup to support GetPropertyWithReceiver stub. We only use this stub in ProxyGetProperty builtin for now. Bug: v8:8958 Change-Id: Ied60e4f6ee6e09bca2f161048b481a0bf37a78a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1676879 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62431}
-
- 19 Jun, 2019 1 commit
-
-
Tobias Tebbi authored
This disallows using CSA macros from Torque that have a Node* return type instead of TNode<>. By enforcing CSA types at the boundary between CSA and Torque, we can ensure that the Torque types and the CSA types match. As a drive-by, this CL adds a bit more of CSA typing where it made sense. Bug: v8:7793, v8:6949 Change-Id: I12ea0337c628105ea3c420be747ae50d3a172547 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660481 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62293}
-
- 14 May, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
Reverted CL is in https://chromium-review.googlesource.com/c/v8/v8/+/1585269 This includes fix for ThrowTypeErrorIfStrict and add regression test. Spec: https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver Bug: v8:6664, v8:9234 Change-Id: I785df3f12f619e2e0fe7b011b72043758e4083e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1604071Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#61497}
-
- 10 May, 2019 1 commit
-
-
Dan Elphick authored
This reverts commit 7275c9c8. Reason for revert: Introduces a crash Original change's description: > Port Proxy SetProperty trap builtin to Torque > > Spec: https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver > Bug: v8:6664 > Change-Id: Ieddb645669a72d78ff9c0a45267165de3c5276f1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585269 > Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61351} TBR=jgruber@chromium.org,mslekova@chromium.org,duongn@microsoft.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6664, v8:9234 Change-Id: I4e26f5321a51498ab44efac75a963afea7b2ca16 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605944Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61415}
-
- 08 May, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
Spec: https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver Bug: v8:6664 Change-Id: Ieddb645669a72d78ff9c0a45267165de3c5276f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585269 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#61351}
-
- 24 Apr, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
Also, fix CSA generator for call runtime with return type of object. Spec: https://tc39.github.io/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver Bug: v8:6664 Change-Id: I61ce1fa72a498520dd811f034e182f060f115330 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1573042 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60995}
-