diff options
Diffstat (limited to 'src/wasm-delegations-fields.h')
-rw-r--r-- | src/wasm-delegations-fields.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/wasm-delegations-fields.h b/src/wasm-delegations-fields.h index fa93710ab..b90bf720b 100644 --- a/src/wasm-delegations-fields.h +++ b/src/wasm-delegations-fields.h @@ -597,7 +597,7 @@ switch (DELEGATE_ID) { DELEGATE_START(StructGet); DELEGATE_FIELD_INT(StructGet, index); DELEGATE_FIELD_CHILD(StructGet, ref); - DELEGATE_FIELD_INT(Load, signed_); + DELEGATE_FIELD_INT(StructGet, signed_); DELEGATE_END(StructGet); break; } @@ -611,25 +611,31 @@ switch (DELEGATE_ID) { } case Expression::Id::ArrayNewId: { DELEGATE_START(ArrayNew); - WASM_UNREACHABLE("TODO (gc): array.new"); + DELEGATE_FIELD_CHILD(ArrayNew, rtt); + DELEGATE_FIELD_CHILD(ArrayNew, size); + DELEGATE_FIELD_OPTIONAL_CHILD(ArrayNew, init); DELEGATE_END(ArrayNew); break; } case Expression::Id::ArrayGetId: { DELEGATE_START(ArrayGet); - WASM_UNREACHABLE("TODO (gc): array.get"); + DELEGATE_FIELD_CHILD(ArrayGet, ref); + DELEGATE_FIELD_CHILD(ArrayGet, index); + DELEGATE_FIELD_INT(ArrayGet, signed_); DELEGATE_END(ArrayGet); break; } case Expression::Id::ArraySetId: { DELEGATE_START(ArraySet); - WASM_UNREACHABLE("TODO (gc): array.set"); + DELEGATE_FIELD_CHILD(ArrayGet, ref); + DELEGATE_FIELD_CHILD(ArrayGet, index); + DELEGATE_FIELD_CHILD(ArrayGet, value); DELEGATE_END(ArraySet); break; } case Expression::Id::ArrayLenId: { DELEGATE_START(ArrayLen); - WASM_UNREACHABLE("TODO (gc): array.len"); + DELEGATE_FIELD_CHILD(ArrayLen, ref); DELEGATE_END(ArrayLen); break; } |