diff options
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r-- | src/wasm-interpreter.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index c4bf21d54..7b8812d69 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -15,6 +15,8 @@ using namespace cashew; // An instance of a WebAssembly module, which can execute it via AST interpretation // +IString WASM("wasm"); + class ModuleInstance { public: typedef std::vector<Literal> LiteralList; @@ -562,7 +564,18 @@ public: } Flow visitHost(Host *curr) override { NOTE_ENTER("Host"); - abort(); + + switch (curr->op) { + case PageSize: return Literal(64*1024); + case MemorySize: return Literal(instance.memorySize); + case GrowMemory: abort(); + case HasFeature: { + IString id = curr->nameOperand; + if (id == WASM) return Literal(1); + return Literal(0); + } + default: abort(); + } } Flow visitNop(Nop *curr) override { NOTE_ENTER("Nop"); |