Skip to content

Commit 6b9f71e

Browse files
authored
Add heap type utility definitions (#2549)
1 parent 625bf0d commit 6b9f71e

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/glue/binaryen.d.ts

+10
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ export declare function _BinaryenHeapTypeNofunc(): HeapTypeRef;
8282

8383
export declare function _BinaryenHeapTypeIsBottom(heapType: HeapTypeRef): bool;
8484
export declare function _BinaryenHeapTypeGetBottom(heapType: HeapTypeRef): HeapTypeRef;
85+
export declare function _BinaryenHeapTypeIsSubType(left: HeapTypeRef, right: HeapTypeRef): bool;
86+
export declare function _BinaryenStructTypeGetNumFields(heapType: HeapTypeRef): Index;
87+
export declare function _BinaryenStructTypeGetFieldType(heapType: HeapTypeRef, index: Index): TypeRef;
88+
export declare function _BinaryenStructTypeGetFieldPackedType(heapType: HeapTypeRef, index: Index): PackedType;
89+
export declare function _BinaryenStructTypeIsFieldMutable(heapType: HeapTypeRef, index: Index): bool;
90+
export declare function _BinaryenArrayTypeGetElementType(heapType: HeapTypeRef): TypeRef;
91+
export declare function _BinaryenArrayTypeGetElementPackedType(heapType: HeapTypeRef): PackedType;
92+
export declare function _BinaryenArrayTypeIsElementMutable(heapType: HeapTypeRef): bool;
93+
export declare function _BinaryenSignatureTypeGetParams(heapType: HeapTypeRef): TypeRef;
94+
export declare function _BinaryenSignatureTypeGetResults(heapType: HeapTypeRef): TypeRef;
8595

8696
export declare function _BinaryenModuleCreate(): ModuleRef;
8797
export declare function _BinaryenModuleDispose(module: ModuleRef): void;

src/glue/binaryen.js

+10
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ export const {
4545

4646
_BinaryenHeapTypeIsBottom,
4747
_BinaryenHeapTypeGetBottom,
48+
_BinaryenHeapTypeIsSubType,
49+
_BinaryenStructTypeGetNumFields,
50+
_BinaryenStructTypeGetFieldType,
51+
_BinaryenStructTypeGetFieldPackedType,
52+
_BinaryenStructTypeIsFieldMutable,
53+
_BinaryenArrayTypeGetElementType,
54+
_BinaryenArrayTypeGetElementPackedType,
55+
_BinaryenArrayTypeIsElementMutable,
56+
_BinaryenSignatureTypeGetParams,
57+
_BinaryenSignatureTypeGetResults,
4858

4959
_BinaryenModuleCreate,
5060
_BinaryenModuleDispose,

src/module.ts

+4
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ export namespace HeapTypeRef {
124124
export function getBottom(ht: HeapTypeRef): HeapTypeRef {
125125
return binaryen._BinaryenHeapTypeGetBottom(ht);
126126
}
127+
128+
export function isSubtype(ht: HeapTypeRef, superHt: HeapTypeRef): bool {
129+
return binaryen._BinaryenHeapTypeIsSubType(ht, superHt);
130+
}
127131
}
128132

129133
/** Packed array element respectively struct field types. */

0 commit comments

Comments
 (0)