summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 43b001f35..6d25e4398 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -1595,6 +1595,13 @@ public:
Flow visitArrayNew(ArrayNew* curr) {
NOTE_ENTER("ArrayNew");
+ Flow init;
+ if (!curr->isWithDefault()) {
+ init = self()->visit(curr->init);
+ if (init.breaking()) {
+ return init;
+ }
+ }
auto size = self()->visit(curr->size);
if (size.breaking()) {
return size;
@@ -1618,10 +1625,6 @@ public:
data[i] = Literal::makeZero(element.type);
}
} else {
- auto init = self()->visit(curr->init);
- if (init.breaking()) {
- return init;
- }
auto field = curr->type.getHeapType().getArray().element;
auto value = truncateForPacking(init.getSingleValue(), field);
for (Index i = 0; i < num; i++) {