Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Binaryen #2683

Merged
merged 4 commits into from Apr 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 9 additions & 9 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -25,7 +25,7 @@
},
"engineStrict": true,
"dependencies": {
"binaryen": "111.0.0-nightly.20230202",
"binaryen": "112.0.0-nightly.20230411",
"long": "^5.2.1"
},
"devDependencies": {
Expand Down
29 changes: 16 additions & 13 deletions src/glue/binaryen.d.ts
Expand Up @@ -416,19 +416,19 @@ export declare function _BinaryenSIMDLoadStoreLaneGetVec(expr: ExpressionRef): E
export declare function _BinaryenSIMDLoadStoreLaneSetVec(expr: ExpressionRef, vecExpr: ExpressionRef): void;
export declare function _BinaryenSIMDLoadStoreLaneIsStore(expr: ExpressionRef): bool;

export declare function _BinaryenMemoryInit(module: ModuleRef, segmentIndex: u32, destExpr: ExpressionRef, offsetExpr: ExpressionRef, sizeExpr: ExpressionRef, memoryName: StringRef): ExpressionRef;
export declare function _BinaryenMemoryInitGetSegment(expr: ExpressionRef): u32;
export declare function _BinaryenMemoryInitSetSegment(expr: ExpressionRef, segmentIndex: u32): void;
export declare function _BinaryenMemoryInit(module: ModuleRef, segmentName: StringRef, destExpr: ExpressionRef, offsetExpr: ExpressionRef, sizeExpr: ExpressionRef, memoryName: StringRef): ExpressionRef;
export declare function _BinaryenMemoryInitGetSegment(expr: ExpressionRef): StringRef;
export declare function _BinaryenMemoryInitSetSegment(expr: ExpressionRef, segmentName: StringRef): void;
export declare function _BinaryenMemoryInitGetDest(expr: ExpressionRef): ExpressionRef;
export declare function _BinaryenMemoryInitSetDest(expr: ExpressionRef, destExpr: ExpressionRef): void;
export declare function _BinaryenMemoryInitGetOffset(expr: ExpressionRef): ExpressionRef;
export declare function _BinaryenMemoryInitSetOffset(expr: ExpressionRef, offsetExpr: ExpressionRef): void;
export declare function _BinaryenMemoryInitGetSize(expr: ExpressionRef): ExpressionRef;
export declare function _BinaryenMemoryInitSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void;

export declare function _BinaryenDataDrop(module: ModuleRef, segmentIndex: u32): ExpressionRef;
export declare function _BinaryenDataDropGetSegment(expr: ExpressionRef): u32;
export declare function _BinaryenDataDropSetSegment(expr: ExpressionRef, segmentIndex: u32): void;
export declare function _BinaryenDataDrop(module: ModuleRef, segmentName: StringRef): ExpressionRef;
export declare function _BinaryenDataDropGetSegment(expr: ExpressionRef): StringRef;
export declare function _BinaryenDataDropSetSegment(expr: ExpressionRef, segmentName: StringRef): void;

export declare function _BinaryenMemoryCopy(module: ModuleRef, destExpr: ExpressionRef, sourceExpr: ExpressionRef, sizeExpr: ExpressionRef, destMemoryName: StringRef, sourceMemoryName: StringRef): ExpressionRef;
export declare function _BinaryenMemoryCopyGetDest(expr: ExpressionRef): ExpressionRef;
Expand Down Expand Up @@ -620,13 +620,13 @@ export declare function _BinaryenArrayNewSetSize(expr: ExpressionRef, sizeExpr:

// TODO: BinaryenArrayNewSeg

export declare function _BinaryenArrayInit(module: ModuleRef, type: HeapTypeRef, values: ArrayRef<ExpressionRef>, numValues: Index): ExpressionRef;
export declare function _BinaryenArrayInitGetNumValues(expr: ExpressionRef): Index;
export declare function _BinaryenArrayInitGetValueAt(expr: ExpressionRef, index: Index): ExpressionRef;
export declare function _BinaryenArrayInitSetValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void;
export declare function _BinaryenArrayInitAppendValue(expr: ExpressionRef, valueExpr: ExpressionRef): Index;
export declare function _BinaryenArrayInitInsertValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void;
export declare function _BinaryenArrayInitRemoveValueAt(expr: ExpressionRef, index: Index): ExpressionRef;
export declare function _BinaryenArrayNewFixed(module: ModuleRef, type: HeapTypeRef, values: ArrayRef<ExpressionRef>, numValues: Index): ExpressionRef;
export declare function _BinaryenArrayNewFixedGetNumValues(expr: ExpressionRef): Index;
export declare function _BinaryenArrayNewFixedGetValueAt(expr: ExpressionRef, index: Index): ExpressionRef;
export declare function _BinaryenArrayNewFixedSetValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void;
export declare function _BinaryenArrayNewFixedAppendValue(expr: ExpressionRef, valueExpr: ExpressionRef): Index;
export declare function _BinaryenArrayNewFixedInsertValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void;
export declare function _BinaryenArrayNewFixedRemoveValueAt(expr: ExpressionRef, index: Index): ExpressionRef;

export declare function _BinaryenArrayGet(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, type: TypeRef, signed: bool): ExpressionRef;
export declare function _BinaryenArrayGetGetRef(expr: ExpressionRef): ExpressionRef;
Expand Down Expand Up @@ -660,6 +660,9 @@ export declare function _BinaryenArrayCopySetSrcIndex(expr: ExpressionRef, srcIn
export declare function _BinaryenArrayCopyGetLength(expr: ExpressionRef): ExpressionRef;
export declare function _BinaryenArrayCopySetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void;

// TODO: BinaryenArrayFill
// TODO: BinaryenArrayInit

export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ptr: ExpressionRef, length: ExpressionRef, start: ExpressionRef, end: ExpressionRef, isTry: bool): ExpressionRef;
export declare function _BinaryenStringNewGetOp(expr: ExpressionRef): Op;
export declare function _BinaryenStringNewSetOp(expr: ExpressionRef, op: Op): void;
Expand Down
14 changes: 7 additions & 7 deletions src/glue/binaryen.js
Expand Up @@ -576,13 +576,13 @@ export const {
_BinaryenArrayNewGetSize,
_BinaryenArrayNewSetSize,

_BinaryenArrayInit,
_BinaryenArrayInitGetNumValues,
_BinaryenArrayInitGetValueAt,
_BinaryenArrayInitSetValueAt,
_BinaryenArrayInitAppendValue,
_BinaryenArrayInitInsertValueAt,
_BinaryenArrayInitRemoveValueAt,
_BinaryenArrayNewFixed,
_BinaryenArrayNewFixedGetNumValues,
_BinaryenArrayNewFixedGetValueAt,
_BinaryenArrayNewFixedSetValueAt,
_BinaryenArrayNewFixedAppendValue,
_BinaryenArrayNewFixedInsertValueAt,
_BinaryenArrayNewFixedRemoveValueAt,

_BinaryenArrayGet,
_BinaryenArrayGetGetRef,
Expand Down
32 changes: 17 additions & 15 deletions src/module.ts
Expand Up @@ -298,25 +298,27 @@ export const enum ExpressionId {
StructSet = 62 /* _BinaryenStructSetId */,
ArrayNew = 63 /* _BinaryenArrayNewId */,
ArrayNewSeg = 64 /* TODO_BinaryenArraySegId */,
ArrayInit = 65 /* _BinaryenArrayInitId */,
ArrayNewFixed = 65 /* _BinaryenArrayNewFixedId */,
ArrayGet = 66 /* _BinaryenArrayGetId */,
ArraySet = 67 /* _BinaryenArraySetId */,
ArrayLen = 68 /* _BinaryenArrayLenId */,
ArrayCopy = 69 /* _BinaryenArrayCopyId */,
RefAs = 70 /* _BinaryenRefAsId */,
StringNew = 71 /* _BinaryenStringNewId */,
StringConst = 72 /* _BinaryenStringConstId */,
StringMeasure = 73 /* _BinaryenStringMeasureId */,
StringEncode = 74 /* _BinaryenStringEncodeId */,
StringConcat = 75 /* _BinaryenStringConcatId */,
StringEq = 76 /* _BinaryenStringEqId */,
StringAs = 77 /* _BinaryenStringAsId */,
StringWTF8Advance = 78 /* _BinaryenStringWTF8AdvanceId */,
StringWTF16Get = 79 /* _BinaryenStringWTF16GetId */,
StringIterNext = 80 /* _BinaryenStringIterNextId */,
StringIterMove = 81 /* _BinaryenStringIterMoveId */,
StringSliceWTF = 82 /* _BinaryenStringSliceWTFId */,
StringSliceIter = 83 /* _BinaryenStringSliceIterId */
ArrayFill = 70 /* _BinaryenArrayFillId */,
ArrayInit = 71 /* _BinaryenArrayInitId */,
RefAs = 72 /* _BinaryenRefAsId */,
StringNew = 73 /* _BinaryenStringNewId */,
StringConst = 74 /* _BinaryenStringConstId */,
StringMeasure = 75 /* _BinaryenStringMeasureId */,
StringEncode = 76 /* _BinaryenStringEncodeId */,
StringConcat = 77 /* _BinaryenStringConcatId */,
StringEq = 78 /* _BinaryenStringEqId */,
StringAs = 79 /* _BinaryenStringAsId */,
StringWTF8Advance = 80 /* _BinaryenStringWTF8AdvanceId */,
StringWTF16Get = 81 /* _BinaryenStringWTF16GetId */,
StringIterNext = 82 /* _BinaryenStringIterNextId */,
StringIterMove = 83 /* _BinaryenStringIterMoveId */,
StringSliceWTF = 84 /* _BinaryenStringSliceWTFId */,
StringSliceIter = 85 /* _BinaryenStringSliceIterId */
}

/** Binaryen external kind constants. */
Expand Down
24 changes: 12 additions & 12 deletions src/passes/pass.ts
Expand Up @@ -195,8 +195,8 @@ import {
_BinaryenStructGetGetIndex,
_BinaryenArrayNewGetSize,
_BinaryenArrayNewGetInit,
_BinaryenArrayInitGetNumValues,
_BinaryenArrayInitGetValueAt,
_BinaryenArrayNewFixedGetNumValues,
_BinaryenArrayNewFixedGetValueAt,
_BinaryenArrayGetGetRef,
_BinaryenArrayGetGetIndex,
_BinaryenArraySetGetRef,
Expand Down Expand Up @@ -283,7 +283,7 @@ import {
_BinaryenStringSliceWTFSetEnd,
_BinaryenStringSliceIterSetRef,
_BinaryenStringSliceIterSetNum,
_BinaryenArrayInitSetValueAt
_BinaryenArrayNewFixedSetValueAt
} from "../glue/binaryen";

/** Base class of custom Binaryen visitors. */
Expand Down Expand Up @@ -552,7 +552,7 @@ export abstract class Visitor {
// unimp
}

visitArrayInit(expr: ExpressionRef): void {
visitArrayNewFixed(expr: ExpressionRef): void {
// unimp
}

Expand Down Expand Up @@ -1127,16 +1127,16 @@ export abstract class Visitor {
this.visitArrayNew(expr);
break;
}
case ExpressionId.ArrayInit: {
let numValues = _BinaryenArrayInitGetNumValues(expr);
case ExpressionId.ArrayNewFixed: {
let numValues = _BinaryenArrayNewFixedGetNumValues(expr);
if (numValues) {
this.stack.push(expr);
for (let i: Index = 0; i < numValues; ++i) {
this.visit(_BinaryenArrayInitGetValueAt(expr, i));
this.visit(_BinaryenArrayNewFixedGetValueAt(expr, i));
}
assert(this.stack.pop() == expr);
}
this.visitArrayInit(expr);
this.visitArrayNewFixed(expr);
break;
}
case ExpressionId.ArrayGet: {
Expand Down Expand Up @@ -1985,12 +1985,12 @@ export function replaceChild(
}
break;
}
case ExpressionId.ArrayInit: {
let numValues = _BinaryenArrayInitGetNumValues(parent);
case ExpressionId.ArrayNewFixed: {
let numValues = _BinaryenArrayNewFixedGetNumValues(parent);
for (let i: Index = 0; i < numValues; ++i) {
let value = _BinaryenArrayInitGetValueAt(parent, i);
let value = _BinaryenArrayNewFixedGetValueAt(parent, i);
if (value == search) {
_BinaryenArrayInitSetValueAt(parent, i, replacement);
_BinaryenArrayNewFixedSetValueAt(parent, i, replacement);
return value;
}
}
Expand Down
12 changes: 6 additions & 6 deletions tests/compiler/NonNullable.debug.wat
Expand Up @@ -15,12 +15,12 @@
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 33132))
(global $~lib/memory/__heap_base i32 (i32.const 33132))
(memory $0 1)
(data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00")
(data (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00")
(data (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00")
(data (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 236) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00u\003\002\00\00\00\00\00\00\00")
(data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s\00")
(data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g\00")
(data $3 (i32.const 124) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>\00\00\00\00\00\00\00\00\00\00\00")
(data $4 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00z\00\00\00\00\00\00\00\00\00\00\00")
(data $5 (i32.const 236) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(table $0 1 1 funcref)
(elem $0 (i32.const 1))
(export "memory" (memory $0))
Expand Down
24 changes: 12 additions & 12 deletions tests/compiler/NonNullable.release.wat
Expand Up @@ -6,18 +6,18 @@
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 34156))
(memory $0 1)
(data (i32.const 1036) "\1c")
(data (i32.const 1048) "\02\00\00\00\06\00\00\00u\003\002")
(data (i32.const 1068) ",")
(data (i32.const 1080) "\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s")
(data (i32.const 1116) "\1c")
(data (i32.const 1128) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g")
(data (i32.const 1148) "L")
(data (i32.const 1160) "\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>")
(data (i32.const 1228) "\1c")
(data (i32.const 1240) "\02\00\00\00\02\00\00\00z")
(data (i32.const 1260) "|")
(data (i32.const 1272) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)")
(data $0 (i32.const 1036) "\1c")
(data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\00u\003\002")
(data $1 (i32.const 1068) ",")
(data $1.1 (i32.const 1080) "\02\00\00\00\1c\00\00\00N\00o\00n\00N\00u\00l\00l\00a\00b\00l\00e\00.\00t\00s")
(data $2 (i32.const 1116) "\1c")
(data $2.1 (i32.const 1128) "\02\00\00\00\0c\00\00\00S\00t\00r\00i\00n\00g")
(data $3 (i32.const 1148) "L")
(data $3.1 (i32.const 1160) "\02\00\00\002\00\00\00A\00r\00r\00a\00y\00<\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00/\00S\00t\00r\00i\00n\00g\00>")
(data $4 (i32.const 1228) "\1c")
(data $4.1 (i32.const 1240) "\02\00\00\00\02\00\00\00z")
(data $5 (i32.const 1260) "|")
(data $5.1 (i32.const 1272) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)")
(export "memory" (memory $0))
(start $~start)
(func $~start
Expand Down
2 changes: 1 addition & 1 deletion tests/compiler/abi.debug.wat
Expand Up @@ -9,7 +9,7 @@
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 32812))
(global $~lib/memory/__heap_base i32 (i32.const 32812))
(memory $0 1)
(data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00")
(data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00")
(table $0 1 1 funcref)
(elem $0 (i32.const 1))
(export "exported" (func $abi/exported))
Expand Down
4 changes: 2 additions & 2 deletions tests/compiler/abi.release.wat
@@ -1,8 +1,8 @@
(module
(type $none_=>_i32 (func (result i32)))
(memory $0 1)
(data (i32.const 1036) "\1c")
(data (i32.const 1048) "\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s")
(data $0 (i32.const 1036) "\1c")
(data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s")
(export "exported" (func $abi/exported))
(export "exportedExported" (func $abi/exported))
(export "exportedInternal" (func $abi/exported))
Expand Down
10 changes: 5 additions & 5 deletions tests/compiler/assert-nonnull.debug.wat
Expand Up @@ -13,11 +13,11 @@
(global $~lib/memory/__stack_pointer (mut i32) (i32.const 33212))
(global $~lib/memory/__heap_base i32 (i32.const 33212))
(memory $0 1)
(data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00")
(data (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00")
(data (i32.const 316) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data $0 (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(data $1 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00a\00s\00s\00e\00r\00t\00-\00n\00o\00n\00n\00u\00l\00l\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00")
(data $2 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00")
(data $3 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00")
(data $4 (i32.const 316) "|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00")
(table $0 1 1 funcref)
(elem $0 (i32.const 1))
(export "memory" (memory $0))
Expand Down