summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index f9a778a68..29e0597d7 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -5851,14 +5851,15 @@ char* BinaryenModuleAllocateAndWriteStackIR(BinaryenModuleRef module,
return output;
}
-BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize) {
+BinaryenModuleRef BinaryenModuleReadWithFeatures(char* input,
+ size_t inputSize,
+ BinaryenFeatures features) {
auto* wasm = new Module;
std::vector<char> buffer(false);
buffer.resize(inputSize);
std::copy_n(input, inputSize, buffer.begin());
try {
- // TODO: allow providing features in the C API
- WasmBinaryReader parser(*wasm, FeatureSet::MVP, buffer);
+ WasmBinaryReader parser(*wasm, features, buffer);
parser.read();
} catch (ParseException& p) {
p.dump(std::cerr);
@@ -5867,6 +5868,10 @@ BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize) {
return wasm;
}
+BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize) {
+ return BinaryenModuleReadWithFeatures(input, inputSize, BinaryenFeatureMVP());
+}
+
void BinaryenModuleInterpret(BinaryenModuleRef module) {
ShellExternalInterface interface;
ModuleRunner instance(*(Module*)module, &interface, {});