diff --git a/package-lock.json b/package-lock.json index 456acaa94d..23811fbf8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "111.0.0-nightly.20230111", + "binaryen": "111.0.0-nightly.20230202", "long": "^5.2.0" }, "bin": { @@ -398,9 +398,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "111.0.0-nightly.20230111", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20230111.tgz", - "integrity": "sha512-CUEED/yMHoGeGnOZhQJW5+Luf5z/F58PHK5lw2feh5fbbqauodgnxyYkc2oxSjYwHHRCmFmaYyeQH4zlhRbebg==", + "version": "111.0.0-nightly.20230202", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20230202.tgz", + "integrity": "sha512-aGMDtxmc8zQHzAamyOBvO38n2e/GuXM0dZCJg+IuG2YUQODTqI37XSkAixS8c0wXn2dgLntDMk1VDblKCsy0GA==", "bin": { "wasm-opt": "bin/wasm-opt", "wasm2js": "bin/wasm2js" @@ -2117,9 +2117,9 @@ "dev": true }, "binaryen": { - "version": "111.0.0-nightly.20230111", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20230111.tgz", - "integrity": "sha512-CUEED/yMHoGeGnOZhQJW5+Luf5z/F58PHK5lw2feh5fbbqauodgnxyYkc2oxSjYwHHRCmFmaYyeQH4zlhRbebg==" + "version": "111.0.0-nightly.20230202", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-111.0.0-nightly.20230202.tgz", + "integrity": "sha512-aGMDtxmc8zQHzAamyOBvO38n2e/GuXM0dZCJg+IuG2YUQODTqI37XSkAixS8c0wXn2dgLntDMk1VDblKCsy0GA==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index b6fb390069..f07ece4328 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "111.0.0-nightly.20230111", + "binaryen": "111.0.0-nightly.20230202", "long": "^5.2.0" }, "devDependencies": { diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 871037397d..466a3fac39 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -660,7 +660,7 @@ export declare function _BinaryenArrayCopySetSrcIndex(expr: ExpressionRef, srcIn export declare function _BinaryenArrayCopyGetLength(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; -export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ptr: ExpressionRef, length: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; +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; export declare function _BinaryenStringNewGetPtr(expr: ExpressionRef): ExpressionRef; @@ -671,6 +671,8 @@ export declare function _BinaryenStringNewGetStart(expr: ExpressionRef): Express export declare function _BinaryenStringNewSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; +export declare function _BinaryenStringNewIsTry(expr: ExpressionRef): bool; +export declare function _BinaryenStringNewSetTry(expr: ExpressionRef, isTry: bool): void; export declare function _BinaryenStringConst(module: ExpressionRef, name: StringRef): ExpressionRef; export declare function _BinaryenStringConstGetString(expr: ExpressionRef): StringRef; @@ -698,7 +700,9 @@ export declare function _BinaryenStringConcatSetLeft(expr: ExpressionRef, leftEx export declare function _BinaryenStringConcatGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringConcatSetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenStringEq(module: ExpressionRef, left: ExpressionRef, right: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEq(module: ExpressionRef, op: Op, left: ExpressionRef, right: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEqGetOp(expr: ExpressionRef): Op; +export declare function _BinaryenStringEqSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenStringEqGetLeft(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEqSetLeft(expr: ExpressionRef, leftExpr: ExpressionRef): void; export declare function _BinaryenStringEqGetRight(expr: ExpressionRef): ExpressionRef; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index caa0521836..fe503e6f5c 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -627,6 +627,8 @@ export const { _BinaryenStringNewSetStart, _BinaryenStringNewGetEnd, _BinaryenStringNewSetEnd, + _BinaryenStringNewIsTry, + _BinaryenStringNewSetTry, _BinaryenStringConst, _BinaryenStringConstGetString, @@ -655,6 +657,8 @@ export const { _BinaryenStringConcatSetRight, _BinaryenStringEq, + _BinaryenStringEqGetOp, + _BinaryenStringEqSetOp, _BinaryenStringEqGetLeft, _BinaryenStringEqSetLeft, _BinaryenStringEqGetRight, diff --git a/src/module.ts b/src/module.ts index cc5e22e92b..4564ca972f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1231,7 +1231,9 @@ export const enum StringNewOp { /** string.new_wtf8_array replace */ ReplaceArray = 6 /* _BinaryenStringNewReplaceArray */, /** string.new_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringNewWTF16Array */ + WTF16Array = 7 /* _BinaryenStringNewWTF16Array */, + /** string.from_code_point */ + FromCodePoint = 8 /* _BinaryenStringNewFromCodePoint */ } /** Binaryen StringMeasure operation constants. */ @@ -1264,6 +1266,14 @@ export const enum StringEncodeOp { WTF16Array = 5 /* _BinaryenStringEncodeWTF16Array */ } +/** Binaryen StringEq operation constants. */ +export const enum StringEqOp { + /** string.eq */ + Equal = 0 /* _BinaryenStringEqEqual */, + /** string.compare */ + Compare = 1 /* _BinaryenStringEqCompare */ +} + /** Binaryen StringAs operation constants. */ export const enum StringAsOp { /** string.as_wtf8 */ @@ -1412,7 +1422,11 @@ export class Module { } string_eq(left: ExpressionRef, right: ExpressionRef): ExpressionRef { - return binaryen._BinaryenStringEq(this.ref, left, right); + return binaryen._BinaryenStringEq(this.ref, StringEqOp.Equal, left, right); + } + + string_compare(left: ExpressionRef, right: ExpressionRef): ExpressionRef { + return binaryen._BinaryenStringEq(this.ref, StringEqOp.Compare, left, right); } // expressions