summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2019-08-29 01:53:00 +0200
committerThomas Lively <7121787+tlively@users.noreply.github.com>2019-08-28 16:53:00 -0700
commit44aec78e7bd176502c5a8434564e5949a0bb128d (patch)
treed7861116105127d1151d2225eb885091fe47c71a
parente06fc1414bff1085047a559eca1a8b659a20a32e (diff)
downloadbinaryen-44aec78e7bd176502c5a8434564e5949a0bb128d.tar.gz
binaryen-44aec78e7bd176502c5a8434564e5949a0bb128d.tar.bz2
binaryen-44aec78e7bd176502c5a8434564e5949a0bb128d.zip
Add missing new features to the C and JS APIs (#2312)
-rwxr-xr-xbuild-js.sh2
-rw-r--r--src/binaryen-c.cpp6
-rw-r--r--src/binaryen-c.h2
-rw-r--r--src/js/binaryen.js-post.js2
-rw-r--r--test/binaryen.js/kitchen-sink.js2
-rw-r--r--test/binaryen.js/kitchen-sink.js.txt2
-rw-r--r--test/example/c-api-kitchen-sink.c2
-rw-r--r--test/example/c-api-kitchen-sink.txt2
8 files changed, 20 insertions, 0 deletions
diff --git a/build-js.sh b/build-js.sh
index d05304bca..15f0ea843 100755
--- a/build-js.sh
+++ b/build-js.sh
@@ -252,6 +252,8 @@ export_function "_BinaryenFeatureNontrappingFPToInt"
export_function "_BinaryenFeatureSignExt"
export_function "_BinaryenFeatureSIMD128"
export_function "_BinaryenFeatureExceptionHandling"
+export_function "_BinaryenFeatureTailCall"
+export_function "_BinaryenFeatureReferenceTypes"
export_function "_BinaryenFeatureAll"
# Literals
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index a06e32d87..9743dbcd9 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -416,6 +416,12 @@ BinaryenFeatures BinaryenFeatureSIMD128(void) {
BinaryenFeatures BinaryenFeatureExceptionHandling(void) {
return static_cast<BinaryenFeatures>(FeatureSet::Feature::ExceptionHandling);
}
+BinaryenFeatures BinaryenFeatureTailCall(void) {
+ return static_cast<BinaryenFeatures>(FeatureSet::Feature::TailCall);
+}
+BinaryenFeatures BinaryenFeatureReferenceTypes(void) {
+ return static_cast<BinaryenFeatures>(FeatureSet::Feature::ReferenceTypes);
+}
BinaryenFeatures BinaryenFeatureAll(void) {
return static_cast<BinaryenFeatures>(FeatureSet::Feature::All);
}
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index 0637b65b0..71e68464b 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -159,6 +159,8 @@ BinaryenFeatures BinaryenFeatureNontrappingFPToInt(void);
BinaryenFeatures BinaryenFeatureSignExt(void);
BinaryenFeatures BinaryenFeatureSIMD128(void);
BinaryenFeatures BinaryenFeatureExceptionHandling(void);
+BinaryenFeatures BinaryenFeatureTailCall(void);
+BinaryenFeatures BinaryenFeatureReferenceTypes(void);
BinaryenFeatures BinaryenFeatureAll(void);
// Modules
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 799cb30e4..4537140eb 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -104,6 +104,8 @@ Module['Features'] = {
'SignExt': Module['_BinaryenFeatureSignExt'](),
'SIMD128': Module['_BinaryenFeatureSIMD128'](),
'ExceptionHandling': Module['_BinaryenFeatureExceptionHandling'](),
+ 'TailCall': Module['_BinaryenFeatureTailCall'](),
+ 'ReferenceTypes': Module['_BinaryenFeatureReferenceTypes'](),
'All': Module['_BinaryenFeatureAll']()
};
diff --git a/test/binaryen.js/kitchen-sink.js b/test/binaryen.js/kitchen-sink.js
index 89e7fdfc6..714305d9b 100644
--- a/test/binaryen.js/kitchen-sink.js
+++ b/test/binaryen.js/kitchen-sink.js
@@ -72,6 +72,8 @@ function test_features() {
console.log("Binaryen.Features.SignExt: " + Binaryen.Features.SignExt);
console.log("Binaryen.Features.SIMD128: " + Binaryen.Features.SIMD128);
console.log("Binaryen.Features.ExceptionHandling: " + Binaryen.Features.ExceptionHandling);
+ console.log("Binaryen.Features.TailCall: " + Binaryen.Features.TailCall);
+ console.log("Binaryen.Features.ReferenceTypes: " + Binaryen.Features.ReferenceTypes);
console.log("Binaryen.Features.All: " + Binaryen.Features.All);
}
diff --git a/test/binaryen.js/kitchen-sink.js.txt b/test/binaryen.js/kitchen-sink.js.txt
index d4ca83b1c..955ddf0f3 100644
--- a/test/binaryen.js/kitchen-sink.js.txt
+++ b/test/binaryen.js/kitchen-sink.js.txt
@@ -16,6 +16,8 @@ Binaryen.Features.NontrappingFPToInt: 4
Binaryen.Features.SignExt: 32
Binaryen.Features.SIMD128: 8
Binaryen.Features.ExceptionHandling: 64
+Binaryen.Features.TailCall: 128
+Binaryen.Features.ReferenceTypes: 256
Binaryen.Features.All: 511
BinaryenInvalidId: 0
BinaryenBlockId: 1
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 77349529b..95bc398b5 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -170,6 +170,8 @@ void test_features() {
printf("BinaryenFeatureSignExt: %d\n", BinaryenFeatureSignExt());
printf("BinaryenFeatureSIMD128: %d\n", BinaryenFeatureSIMD128());
printf("BinaryenFeatureExceptionHandling: %d\n", BinaryenFeatureExceptionHandling());
+ printf("BinaryenFeatureTailCall: %d\n", BinaryenFeatureTailCall());
+ printf("BinaryenFeatureReferenceTypes: %d\n", BinaryenFeatureReferenceTypes());
printf("BinaryenFeatureAll: %d\n", BinaryenFeatureAll());
}
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index a5c300653..7f9266207 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -16,6 +16,8 @@ BinaryenFeatureNontrappingFPToInt: 4
BinaryenFeatureSignExt: 32
BinaryenFeatureSIMD128: 8
BinaryenFeatureExceptionHandling: 64
+BinaryenFeatureTailCall: 128
+BinaryenFeatureReferenceTypes: 256
BinaryenFeatureAll: 511
(f32.neg
(f32.const -33.61199951171875)