summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gen-s-parser.inc3
-rw-r--r--src/passes/Print.cpp3
-rw-r--r--src/wasm-binary.h1
-rw-r--r--src/wasm.h1
-rw-r--r--src/wasm/wasm-binary.cpp2
-rw-r--r--src/wasm/wasm-stack.cpp3
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*");
}