Index: src/typedarray.js |
diff --git a/src/typedarray.js b/src/typedarray.js |
index ca87f8b62ac0d6b48bbd6715972ee3253d1fe457..4729bb2cd62fee82aa13d5075230bfff307ed597 100644 |
--- a/src/typedarray.js |
+++ b/src/typedarray.js |
@@ -78,7 +78,8 @@ macro TYPED_ARRAY_CONSTRUCTOR(ARRAY_ID, NAME, ELEMENT_SIZE) |
var newLength = ToPositiveInteger(length, "invalid_typed_array_length"); |
newByteLength = newLength * ELEMENT_SIZE; |
} |
- if (offset + newByteLength > bufferByteLength) { |
+ if ((offset + newByteLength > bufferByteLength) |
+ || (newLength > %MaxSmi())) { |
throw MakeRangeError("invalid_typed_array_length"); |
} |
%TypedArrayInitialize(obj, ARRAY_ID, buffer, offset, newByteLength); |