diff options
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r-- | src/wasm-interpreter.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 93c409797..b6e526544 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -1402,7 +1402,15 @@ public: } Flow visitStructGet(StructGet* curr) { NOTE_ENTER("StructGet"); - WASM_UNREACHABLE("TODO (gc): struct.get"); + Flow flow = this->visit(curr->value); + if (flow.breaking()) { + return flow; + } + auto data = flow.getSingleValue().getGCData(); + if (!data) { + trap("null ref"); + } + return (*data)[curr->index]; } Flow visitStructSet(StructSet* curr) { NOTE_ENTER("StructSet"); |