Skip to content

Commit 97c03ae

Browse files
committed
feat(WebAssembly): Make WebAssembly.Global generic
1 parent 7345e8d commit 97c03ae

File tree

3 files changed

+58
-13
lines changed

3 files changed

+58
-13
lines changed

baselines/dom.generated.d.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19051,14 +19051,14 @@ declare namespace WebAssembly {
1905119051
new(): CompileError;
1905219052
};
1905319053

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

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

1906419064
interface Instance {
@@ -19119,9 +19119,9 @@ declare namespace WebAssembly {
1911919119
new(descriptor: TableDescriptor): Table;
1912019120
};
1912119121

19122-
interface GlobalDescriptor {
19122+
interface GlobalDescriptor<T extends ValueType = ValueType> {
1912319123
mutable?: boolean;
19124-
value: ValueType;
19124+
value: T;
1912519125
}
1912619126

1912719127
interface MemoryDescriptor {

baselines/webworker.generated.d.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5713,14 +5713,14 @@ interface Console {
57135713
declare var console: Console;
57145714

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

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

57265726
interface Instance {
@@ -5765,9 +5765,9 @@ declare namespace WebAssembly {
57655765
new(descriptor: TableDescriptor): Table;
57665766
};
57675767

5768-
interface GlobalDescriptor {
5768+
interface GlobalDescriptor<T extends ValueType = ValueType> {
57695769
mutable?: boolean;
5770-
value: ValueType;
5770+
value: T;
57715771
}
57725772

57735773
interface MemoryDescriptor {

inputfiles/overridingTypes.json

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2614,6 +2614,37 @@
26142614
}
26152615
}
26162616
}
2617+
},
2618+
"Global": {
2619+
"name": "Global",
2620+
"type-parameters": [
2621+
{
2622+
"name": "T",
2623+
"extends": "ValueType",
2624+
"default": "ValueType"
2625+
}
2626+
],
2627+
"constructor": {
2628+
"override-signatures": [
2629+
"new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: T extends 'i64' ? bigint : number): Global<T>"
2630+
]
2631+
},
2632+
"properties": {
2633+
"property": {
2634+
"value": {
2635+
"override-type": "T extends 'i64' ? bigint : number"
2636+
}
2637+
}
2638+
},
2639+
"methods": {
2640+
"method": {
2641+
"valueOf": {
2642+
"override-signatures": [
2643+
"valueOf(): T extends 'i64' ? bigint : number"
2644+
]
2645+
}
2646+
}
2647+
}
26172648
}
26182649
}
26192650
},
@@ -3032,7 +3063,21 @@
30323063
"legacy-namespace": "WebAssembly"
30333064
},
30343065
"GlobalDescriptor": {
3035-
"legacy-namespace": "WebAssembly"
3066+
"legacy-namespace": "WebAssembly",
3067+
"type-parameters": [
3068+
{
3069+
"name": "T",
3070+
"extends": "ValueType",
3071+
"default": "ValueType"
3072+
}
3073+
],
3074+
"members": {
3075+
"member": {
3076+
"value": {
3077+
"override-type": "T"
3078+
}
3079+
}
3080+
}
30363081
},
30373082
"WebAssemblyInstantiatedSource": {
30383083
"legacy-namespace": "WebAssembly"

0 commit comments

Comments
 (0)