-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathportable-typescript-v1.json
More file actions
89 lines (89 loc) · 3.42 KB
/
Copy pathportable-typescript-v1.json
File metadata and controls
89 lines (89 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
"schema": "flight-portable-typescript-profile/1",
"profile": "flight-portable-typescript/1",
"supportStatus": "incubating",
"target": "cpp",
"language": {
"source": "TypeScript",
"moduleKind": "ESNext",
"strict": true,
"target": "ES2022"
},
"runtime": {
"contract": "flight-runtime-contract/2",
"cppAbi": 1,
"cxxStandard": 20,
"profile": "flight-cpp"
},
"supportedCore": [
"arrays",
"async-functions",
"classes",
"closed-multi-member-unions",
"dates",
"default-and-optional-parameters",
"enums",
"for-in-over-exact-closed-records",
"functions-and-closures-with-shared-mutable-binding-capture",
"interfaces-and-structural-records",
"maps-and-sets",
"nullish-presence",
"numeric-and-boolean-operators",
"strings",
"typed-arrays"
],
"restrictions": [
{
"id": "explicit-public-types",
"rule": "Exported signatures and context-sensitive empty collections must carry enough source type information for deterministic target spelling."
},
{
"id": "closed-runtime-surface",
"rule": "Runtime globals and members must have a binding in flight-runtime-contract/2; dynamic prototype extension, eval, and ambient reflection are outside the profile."
},
{
"id": "closed-property-access",
"rule": "Computed object access and open-ended JavaScript property-key coercion require lowering before C++ emission."
},
{
"id": "exact-closed-record-enumeration",
"rule": "Closed-record for-in applies only when the runtime value has exactly the statically declared own enumerable string keys; extra structural properties and inherited enumerable properties are outside the profile."
},
{
"id": "closed-union-representation",
"rule": "Closed multi-member unions require distinct C++ alternative representations. Typeof and discriminant access requires checker proof; type assertions use checked access. Alternatives that collapse to the same C++ type, and unions combining several values with null or undefined, remain excluded."
},
{
"id": "captured-referent-identity",
"rule": "Captured binding reassignment uses shared cells. Referent mutation is supported only for flight-cpp containers with shared reference identity; value-represented structural objects remain excluded."
},
{
"id": "initialized-capture-storage",
"rule": "A captured mutable binding must have initialized, concretely typed storage; uninitialized and captured for-in bindings remain excluded until absence and iteration storage are explicit."
},
{
"id": "resolved-module-graph",
"rule": "Relative imports must be compiled as one resolved module graph and provided to the downstream include path."
},
{
"id": "host-unicode-service",
"rule": "Non-ASCII case conversion requires a host Unicode service with pinned data and application-level conformance tests."
},
{
"id": "utc-date-instants",
"rule": "Date support is limited to epoch instants and UTC calendar projection until a local civil-time policy is elected."
}
],
"requiredProof": [
"abi-snapshot",
"bazel-platform-toolchain-build",
"build-system-parity",
"deterministic-emission",
"native-compile",
"performance-smoke",
"source-differential-behavior",
"runtime-unit-tests",
"installed-package-consumer",
"gcc-clang-appleclang-msvc"
]
}