summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-interpreter.h3
-rw-r--r--src/wasm.h2
m---------test/spec0
3 files changed, 3 insertions, 2 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 59e42783d..2a841f6fd 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -579,6 +579,7 @@ private:
case GrowMemory: {
Flow flow = visit(curr->operands[0]);
if (flow.breaking()) return flow;
+ int32_t ret = instance.memorySize;
uint32_t delta = flow.value.geti32();
if (delta % pageSize != 0) trap("growMemory: delta not multiple");
if (delta > uint32_t(-1) - pageSize) trap("growMemory: delta relatively too big");
@@ -587,7 +588,7 @@ private:
if (newSize > instance.wasm.memory.max) trap("growMemory: exceeds max");
instance.externalInterface->growMemory(instance.memorySize, newSize);
instance.memorySize = newSize;
- return Literal();
+ return Literal(ret);
}
case HasFeature: {
IString id = curr->nameOperand;
diff --git a/src/wasm.h b/src/wasm.h
index 4c8dca331..ec2cd469e 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1017,7 +1017,7 @@ public:
break;
}
case GrowMemory: {
- type = none;
+ type = i32;
break;
}
default: abort();
diff --git a/test/spec b/test/spec
-Subproject 40558d388b7f99b0edf01d3cbb2a3d3efea3a41
+Subproject 3c92466f5a67d6d81c7c511baf1242c7af9cfd1