diff --git a/package-lock.json b/package-lock.json index 59edf5a86b..3732399445 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,10 +5,11 @@ "requires": true, "packages": { "": { + "name": "assemblyscript", "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "110.0.0-nightly.20221105", + "binaryen": "111.0.0-nightly.20221122", "long": "^5.2.0" }, "bin": { @@ -397,9 +398,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "110.0.0-nightly.20221105", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221105.tgz", - "integrity": "sha512-OBESOc51q3SwgG8Uv8nMzGnSq7LJpSB/Fu8B3AjlZg6YtCEwRnlDWlnwNB6mdql+VdexfKmNcsrs4K7MYidmdQ==", + "version": "111.0.0-nightly.20221122", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20221122.tgz", + "integrity": "sha512-zFPQT3WhbvUbqCUcfz+lvdv/sL395Qo1XnkWQSm/GqQc0wvzTOd1k+bw6O5b4avijnKFiWa+ytxFUFc3+LRtQg==", "bin": { "wasm-opt": "bin/wasm-opt", "wasm2js": "bin/wasm2js" @@ -2116,9 +2117,9 @@ "dev": true }, "binaryen": { - "version": "110.0.0-nightly.20221105", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-110.0.0-nightly.20221105.tgz", - "integrity": "sha512-OBESOc51q3SwgG8Uv8nMzGnSq7LJpSB/Fu8B3AjlZg6YtCEwRnlDWlnwNB6mdql+VdexfKmNcsrs4K7MYidmdQ==" + "version": "111.0.0-nightly.20221122", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20221122.tgz", + "integrity": "sha512-zFPQT3WhbvUbqCUcfz+lvdv/sL395Qo1XnkWQSm/GqQc0wvzTOd1k+bw6O5b4avijnKFiWa+ytxFUFc3+LRtQg==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 788eb8ef3e..9b4c230823 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "110.0.0-nightly.20221105", + "binaryen": "111.0.0-nightly.20221122", "long": "^5.2.0" }, "devDependencies": { diff --git a/src/module.ts b/src/module.ts index eb8644e4c2..9dd44cb48e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -258,25 +258,26 @@ export const enum ExpressionId { StructGet = 61 /* _BinaryenStructGetId */, StructSet = 62 /* _BinaryenStructSetId */, ArrayNew = 63 /* _BinaryenArrayNewId */, - ArrayInit = 64 /* _BinaryenArrayInitId */, - ArrayGet = 65 /* _BinaryenArrayGetId */, - ArraySet = 66 /* _BinaryenArraySetId */, - ArrayLen = 67 /* _BinaryenArrayLenId */, - ArrayCopy = 68 /* _BinaryenArrayCopyId */, - RefAs = 69 /* _BinaryenRefAsId */, - StringNew = 70 /* _BinaryenStringNewId */, - StringConst = 71 /* _BinaryenStringConstId */, - StringMeasure = 72 /* _BinaryenStringMeasureId */, - StringEncode = 73 /* _BinaryenStringEncodeId */, - StringConcat = 74 /* _BinaryenStringConcatId */, - StringEq = 75 /* _BinaryenStringEqId */, - StringAs = 76 /* _BinaryenStringAsId */, - StringWTF8Advance = 77 /* _BinaryenStringWTF8AdvanceId */, - StringWTF16Get = 78 /* _BinaryenStringWTF16GetId */, - StringIterNext = 79 /* _BinaryenStringIterNextId */, - StringIterMove = 80 /* _BinaryenStringIterMoveId */, - StringSliceWTF = 81 /* _BinaryenStringSliceWTFId */, - StringSliceIter = 82 /* _BinaryenStringSliceIterId */ + ArrayNewSeg = 64 /* TODO_BinaryenArrayNewSegId */, + ArrayInit = 65 /* _BinaryenArrayInitId */, + 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 */ } /** Binaryen external kind constants. */ @@ -2749,6 +2750,7 @@ export class Module { passes.push("vacuum"); passes.push("simplify-globals-optimizing"); + passes.push("reorder-globals"); passes.push("remove-unused-brs"); passes.push("optimize-instructions"); } diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index d588e4c6c9..0317b61b8a 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -16,6 +16,7 @@ (data (i32.const 1276) "|") (data (i32.const 1288) "\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") (table $0 1 1 funcref) + (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) (export "testObj" (func $export:assert-nonnull/testObj)) diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index de754b6996..94622b370d 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -14,6 +14,7 @@ (data (i32.const 1276) "\1c") (data (i32.const 1288) "\02") (table $0 1 1 funcref) + (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "i32ArrayArrayElementAccess" (func $export:std/array-access/i32ArrayArrayElementAccess)) (export "stringArrayPropertyAccess" (func $export:std/array-access/stringArrayPropertyAccess)) diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index 1c864b0699..4c9d5a746e 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -10,6 +10,7 @@ (data (i32.const 1036) "\1c") (data (i32.const 1048) "\02\00\00\00\02\00\00\00a") (table $0 1 1 funcref) + (elem $0 (i32.const 1)) (export "test" (func $ternary/test)) (export "testDropWithTypeMismatch" (func $ternary/testDropWithTypeMismatch)) (export "memory" (memory $0))