summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2023-01-26 16:11:24 -0800
committerGitHub <noreply@github.com>2023-01-26 16:11:24 -0800
commit0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb (patch)
treed6ad070bb4030ea52e4881de276f8334adb2624d /src/passes/Print.cpp
parent07362b354b42b3c8cda2eff58fcaa9e74a2b2d18 (diff)
downloadbinaryen-0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb.tar.gz
binaryen-0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb.tar.bz2
binaryen-0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb.zip
[Strings] Add experimental StringNew variants (#5459)
string.from_code_point makes a string from an int code point. string.new_utf8*_try makes a utf8 string and returns null on a UTF8 encoding error rather than trap.
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index d9a4c38e5..8c112d6a5 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -2345,7 +2345,11 @@ struct PrintExpressionContents
void visitStringNew(StringNew* curr) {
switch (curr->op) {
case StringNewUTF8:
- printMedium(o, "string.new_wtf8 utf8");
+ if (!curr->try_) {
+ printMedium(o, "string.new_wtf8 utf8");
+ } else {
+ printMedium(o, "string.new_utf8_try");
+ }
break;
case StringNewWTF8:
printMedium(o, "string.new_wtf8 wtf8");
@@ -2357,7 +2361,11 @@ struct PrintExpressionContents
printMedium(o, "string.new_wtf16");
break;
case StringNewUTF8Array:
- printMedium(o, "string.new_wtf8_array utf8");
+ if (!curr->try_) {
+ printMedium(o, "string.new_wtf8_array utf8");
+ } else {
+ printMedium(o, "string.new_utf8_array_try");
+ }
break;
case StringNewWTF8Array:
printMedium(o, "string.new_wtf8_array wtf8");
@@ -2368,6 +2376,9 @@ struct PrintExpressionContents
case StringNewWTF16Array:
printMedium(o, "string.new_wtf16_array");
break;
+ case StringNewFromCodePoint:
+ printMedium(o, "string.from_code_point");
+ break;
default:
WASM_UNREACHABLE("invalid string.new*");
}