summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/binaryen-c.cpp10
-rw-r--r--src/binaryen-c.h10
-rw-r--r--src/js/binaryen.js-post.js6
3 files changed, 23 insertions, 3 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 26a9c5801..0635046fe 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -2727,6 +2727,16 @@ void BinaryenMemoryFillSetSize(BinaryenExpressionRef expr,
static_cast<MemoryFill*>(expression)->size = (Expression*)sizeExpr;
}
// RefIs
+BinaryenOp BinaryenRefIsGetOp(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefIs>());
+ return static_cast<RefIs*>(expression)->op;
+}
+void BinaryenRefIsSetOp(BinaryenExpressionRef expr, BinaryenOp op) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefIs>());
+ static_cast<RefIs*>(expression)->op = RefIsOp(op);
+}
BinaryenExpressionRef BinaryenRefIsGetValue(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;
assert(expression->is<RefIs>());
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index 44895f970..e70e9830e 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -1688,12 +1688,16 @@ BinaryenMemoryFillGetSize(BinaryenExpressionRef expr);
BINARYEN_API void BinaryenMemoryFillSetSize(BinaryenExpressionRef expr,
BinaryenExpressionRef sizeExpr);
-// RefIsNull
+// RefIs
-// Gets the value expression tested to be null of a `ref.is_null` expression.
+// Gets the operation performed by a `ref.is_*` expression.
+BINARYEN_API BinaryenOp BinaryenRefIsGetOp(BinaryenExpressionRef expr);
+// Sets the operation performed by a `ref.is_*` expression.
+BINARYEN_API void BinaryenRefIsSetOp(BinaryenExpressionRef expr, BinaryenOp op);
+// Gets the value expression tested by a `ref.is_*` expression.
BINARYEN_API BinaryenExpressionRef
BinaryenRefIsGetValue(BinaryenExpressionRef expr);
-// Sets the value expression tested to be null of a `ref.is_null` expression.
+// Sets the value expression tested by a `ref.is_*` expression.
BINARYEN_API void BinaryenRefIsSetValue(BinaryenExpressionRef expr,
BinaryenExpressionRef valueExpr);
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 7c53298ad..4f4af2b63 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -4142,6 +4142,12 @@ Module['MemoryFill'] = makeExpressionWrapper({
});
Module['RefIs'] = makeExpressionWrapper({
+ 'getOp'(expr) {
+ return Module['_BinaryenRefIsGetOp'](expr);
+ },
+ 'setOp'(expr, op) {
+ Module['_BinaryenRefIsSetOp'](expr, op);
+ },
'getValue'(expr) {
return Module['_BinaryenRefIsGetValue'](expr);
},