Index: src/typedarray.js |
diff --git a/src/typedarray.js b/src/typedarray.js |
index 422dc4a03cba36b8a422b5913babaafe1c83bb06..ca87f8b62ac0d6b48bbd6715972ee3253d1fe457 100644 |
--- a/src/typedarray.js |
+++ b/src/typedarray.js |
@@ -87,6 +87,9 @@ macro TYPED_ARRAY_CONSTRUCTOR(ARRAY_ID, NAME, ELEMENT_SIZE) |
function NAMEConstructByLength(obj, length) { |
var l = IS_UNDEFINED(length) ? |
0 : ToPositiveInteger(length, "invalid_typed_array_length"); |
+ if (l > %MaxSmi()) { |
+ throw MakeRangeError("invalid_typed_array_length"); |
+ } |
var byteLength = l * ELEMENT_SIZE; |
var buffer = new $ArrayBuffer(byteLength); |
%TypedArrayInitialize(obj, ARRAY_ID, buffer, 0, byteLength); |