diff options
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r-- | src/wasm-interpreter.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 36542e6ed..1e0cf3ed0 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -1986,6 +1986,7 @@ public: if (ref.breaking()) { return ref; } + // TODO: "WTF-16 position treatment", as in stringview_wtf16.slice? Flow ptr = visit(curr->ptr); if (ptr.breaking()) { return ptr; @@ -2173,9 +2174,7 @@ public: auto& refValues = refData->values; auto startVal = start.getSingleValue().getUnsigned(); auto endVal = end.getSingleValue().getUnsigned(); - if (endVal > refValues.size()) { - trap("array oob"); - } + endVal = std::min<size_t>(endVal, refValues.size()); if (hasNonAsciiUpTo(refValues, endVal)) { return Flow(NONCONSTANT_FLOW); } |