diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 15 | ||||
-rw-r--r-- | src/binaryen-c.h | 9 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 0cc4bb115..e2afe66dc 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -184,6 +184,21 @@ BinaryenPackedType BinaryenPackedTypeInt16(void) { return Field::PackedType::i16; } +// Heap types + +BinaryenHeapType BinaryenTypeGetHeapType(BinaryenType type) { + return Type(type).getHeapType().getID(); +} +bool BinaryenTypeIsNullable(BinaryenType type) { + return Type(type).isNullable(); +} +BinaryenType BinaryenTypeFromHeapType(BinaryenHeapType heapType, + bool nullable) { + return Type(HeapType(heapType), + nullable ? Nullability::Nullable : Nullability::NonNullable) + .getID(); +} + // TypeSystem BinaryenTypeSystem BinaryenTypeSystemEquirecursive() { diff --git a/src/binaryen-c.h b/src/binaryen-c.h index bf8ed01bb..7b5c22bf9 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -129,6 +129,15 @@ BINARYEN_API BinaryenPackedType BinaryenPackedTypeNotPacked(void); BINARYEN_API BinaryenPackedType BinaryenPackedTypeInt8(void); BINARYEN_API BinaryenPackedType BinaryenPackedTypeInt16(void); +// Heap types + +typedef uintptr_t BinaryenHeapType; + +BINARYEN_API BinaryenHeapType BinaryenTypeGetHeapType(BinaryenType type); +BINARYEN_API bool BinaryenTypeIsNullable(BinaryenType type); +BINARYEN_API BinaryenType BinaryenTypeFromHeapType(BinaryenHeapType heapType, + bool nullable); + // TypeSystem typedef uint32_t BinaryenTypeSystem; |