diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gen-s-parser.inc | 3 | ||||
-rw-r--r-- | src/passes/Print.cpp | 3 | ||||
-rw-r--r-- | src/wasm-binary.h | 1 | ||||
-rw-r--r-- | src/wasm.h | 1 | ||||
-rw-r--r-- | src/wasm/wasm-binary.cpp | 2 | ||||
-rw-r--r-- | src/wasm/wasm-stack.cpp | 3 |
6 files changed, 13 insertions, 0 deletions
diff --git a/src/gen-s-parser.inc b/src/gen-s-parser.inc index 9c3fa90e4..7001cb10b 100644 --- a/src/gen-s-parser.inc +++ b/src/gen-s-parser.inc @@ -3159,6 +3159,9 @@ switch (op[0]) { default: goto parse_error; } } + case 'i': + if (strcmp(op, "string.is_usv_sequence") == 0) { return makeStringMeasure(s, StringMeasureIsUSV); } + goto parse_error; case 'm': { switch (op[18]) { case '1': diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp index cf4e6c9e9..ec9926a30 100644 --- a/src/passes/Print.cpp +++ b/src/passes/Print.cpp @@ -2253,6 +2253,9 @@ struct PrintExpressionContents case StringMeasureWTF16: printMedium(o, "string.measure_wtf16"); break; + case StringMeasureIsUSV: + printMedium(o, "string.is_usv_sequence"); + break; default: WASM_UNREACHABLE("invalid string.measure*"); } diff --git a/src/wasm-binary.h b/src/wasm-binary.h index f89391186..97f6bc24e 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -1146,6 +1146,7 @@ enum ASTNodes { StringEncodeWTF16 = 0x87, StringConcat = 0x88, StringEq = 0x89, + StringIsUSV = 0x8a, }; enum MemoryAccess { diff --git a/src/wasm.h b/src/wasm.h index 41eaf328a..42de60a98 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -594,6 +594,7 @@ enum StringMeasureOp { StringMeasureUTF8, StringMeasureWTF8, StringMeasureWTF16, + StringMeasureIsUSV, }; enum StringEncodeOp { diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index ef564db6e..0ae17f47c 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -7191,6 +7191,8 @@ bool WasmBinaryBuilder::maybeVisitStringMeasure(Expression*& out, } } else if (code == BinaryConsts::StringMeasureWTF16) { op = StringMeasureWTF16; + } else if (code == BinaryConsts::StringIsUSV) { + op = StringMeasureIsUSV; } else { return false; } diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp index 9a5db2928..e1b093b26 100644 --- a/src/wasm/wasm-stack.cpp +++ b/src/wasm/wasm-stack.cpp @@ -2276,6 +2276,9 @@ void BinaryInstWriter::visitStringMeasure(StringMeasure* curr) { case StringMeasureWTF16: o << U32LEB(BinaryConsts::StringMeasureWTF16); break; + case StringMeasureIsUSV: + o << U32LEB(BinaryConsts::StringIsUSV); + break; default: WASM_UNREACHABLE("invalid string.new*"); } |