diff options
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r-- | src/binaryen-c.cpp | 11 |
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, {}); |