Skip to content

Commit f9eecea

Browse files
committed
feat(WebAssembly): Add WebAssembly.ValueTypeMap
1 parent 97c03ae commit f9eecea

File tree

6 files changed

+63
-15
lines changed

6 files changed

+63
-15
lines changed

baselines/dom.generated.d.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19052,13 +19052,13 @@ declare namespace WebAssembly {
1905219052
};
1905319053

1905419054
interface Global<T extends ValueType = ValueType> {
19055-
value: T extends 'i64' ? bigint : number;
19056-
valueOf(): T extends 'i64' ? bigint : number;
19055+
value: ValueTypeMap[T];
19056+
valueOf(): ValueTypeMap[T];
1905719057
}
1905819058

1905919059
var Global: {
1906019060
prototype: Global;
19061-
new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: T extends 'i64' ? bigint : number): Global<T>;
19061+
new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>;
1906219062
};
1906319063

1906419064
interface Instance {
@@ -19146,14 +19146,21 @@ declare namespace WebAssembly {
1914619146
maximum?: number;
1914719147
}
1914819148

19149+
interface ValueTypeMap {
19150+
f32: number;
19151+
f64: number;
19152+
i32: number;
19153+
i64: bigint;
19154+
}
19155+
1914919156
interface WebAssemblyInstantiatedSource {
1915019157
instance: Instance;
1915119158
module: Module;
1915219159
}
1915319160

1915419161
type ImportExportKind = "function" | "global" | "memory" | "table";
1915519162
type TableKind = "anyfunc";
19156-
type ValueType = "f32" | "f64" | "i32" | "i64";
19163+
type ValueType = keyof ValueTypeMap;
1915719164
type ExportValue = Function | Global | Memory | Table;
1915819165
type Exports = Record<string, ExportValue>;
1915919166
type ImportValue = ExportValue | number;

baselines/webworker.generated.d.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5714,13 +5714,13 @@ declare var console: Console;
57145714

57155715
declare namespace WebAssembly {
57165716
interface Global<T extends ValueType = ValueType> {
5717-
value: T extends 'i64' ? bigint : number;
5718-
valueOf(): T extends 'i64' ? bigint : number;
5717+
value: ValueTypeMap[T];
5718+
valueOf(): ValueTypeMap[T];
57195719
}
57205720

57215721
var Global: {
57225722
prototype: Global;
5723-
new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: T extends 'i64' ? bigint : number): Global<T>;
5723+
new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>;
57245724
};
57255725

57265726
interface Instance {
@@ -5792,14 +5792,21 @@ declare namespace WebAssembly {
57925792
maximum?: number;
57935793
}
57945794

5795+
interface ValueTypeMap {
5796+
f32: number;
5797+
f64: number;
5798+
i32: number;
5799+
i64: bigint;
5800+
}
5801+
57955802
interface WebAssemblyInstantiatedSource {
57965803
instance: Instance;
57975804
module: Module;
57985805
}
57995806

58005807
type ImportExportKind = "function" | "global" | "memory" | "table";
58015808
type TableKind = "anyfunc";
5802-
type ValueType = "f32" | "f64" | "i32" | "i64";
5809+
type ValueType = keyof ValueTypeMap;
58035810
type ExportValue = Function | Global | Memory | Table;
58045811
type Exports = Record<string, ExportValue>;
58055812
type ImportValue = ExportValue | number;

inputfiles/addedTypes.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2368,6 +2368,35 @@
23682368
}
23692369
}
23702370
}
2371+
},
2372+
"ValueTypeMap": {
2373+
"name": "ValueTypeMap",
2374+
"legacy-namespace": "WebAssembly",
2375+
"exposed":"Window Worker Worklet",
2376+
"members": {
2377+
"member": {
2378+
"f32": {
2379+
"name": "f32",
2380+
"override-type": "number",
2381+
"required": 1
2382+
},
2383+
"f64": {
2384+
"name": "f64",
2385+
"override-type": "number",
2386+
"required": 1
2387+
},
2388+
"i32": {
2389+
"name": "i32",
2390+
"override-type": "number",
2391+
"required": 1
2392+
},
2393+
"i64": {
2394+
"name": "i64",
2395+
"override-type": "bigint",
2396+
"required": 1
2397+
}
2398+
}
2399+
}
23712400
}
23722401
}
23732402
},
@@ -2418,6 +2447,11 @@
24182447
"new-type": "WindowProxy",
24192448
"type": "Window"
24202449
},
2450+
{
2451+
"new-type": "ValueType",
2452+
"legacy-namespace": "WebAssembly",
2453+
"override-type": "keyof ValueTypeMap"
2454+
},
24212455
{
24222456
"new-type": "ExportValue",
24232457
"legacy-namespace": "WebAssembly",

inputfiles/knownTypes.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
"RsaOaepParams",
8787
"RsaPssParams",
8888
"Transferable",
89+
"ValueTypeMap",
8990
"VideoFacingModeEnum",
9091
"MouseWheelEvent",
9192
"WorkerOptions"
@@ -125,6 +126,7 @@
125126
"RsaPssParams",
126127
"RsaOaepParams",
127128
"Transferable",
129+
"ValueTypeMap",
128130
"WorkerOptions"
129131
]
130132
}

inputfiles/overridingTypes.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -325,9 +325,6 @@
325325
},
326326
"TableKind": {
327327
"legacy-namespace": "WebAssembly"
328-
},
329-
"ValueType": {
330-
"legacy-namespace": "WebAssembly"
331328
}
332329
}
333330
},
@@ -2626,21 +2623,21 @@
26262623
],
26272624
"constructor": {
26282625
"override-signatures": [
2629-
"new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: T extends 'i64' ? bigint : number): Global<T>"
2626+
"new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>"
26302627
]
26312628
},
26322629
"properties": {
26332630
"property": {
26342631
"value": {
2635-
"override-type": "T extends 'i64' ? bigint : number"
2632+
"override-type": "ValueTypeMap[T]"
26362633
}
26372634
}
26382635
},
26392636
"methods": {
26402637
"method": {
26412638
"valueOf": {
26422639
"override-signatures": [
2643-
"valueOf(): T extends 'i64' ? bigint : number"
2640+
"valueOf(): ValueTypeMap[T]"
26442641
]
26452642
}
26462643
}

inputfiles/removedTypes.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@
6161
"ClientType": null,
6262
"ReadableStreamReaderMode": null,
6363
"ReadableStreamType": null,
64-
"RequestType": null
64+
"RequestType": null,
65+
"ValueType": null
6566
}
6667
},
6768
"interfaces": {

0 commit comments

Comments
 (0)