Index: src/typedarray.js |
diff --git a/src/typedarray.js b/src/typedarray.js |
index e12230dd7186e6ab49a5a4a72b4bae2c46fed1fe..ec9849df699a3ac69b5e52492ec441446f05fc2b 100644 |
--- a/src/typedarray.js |
+++ b/src/typedarray.js |
@@ -69,6 +69,9 @@ function CreateTypedArrayConstructor(name, elementSize, arrayId, constructor) { |
function ConstructByLength(obj, length) { |
var l = ToPositiveInteger(length, "invalid_typed_array_length"); |
+ if (l > %MaxSmi()) { |
+ throw MakeRangeError("invalid_typed_array_length"); |
+ } |
var byteLength = l * elementSize; |
var buffer = new global.ArrayBuffer(byteLength); |
%TypedArrayInitialize(obj, arrayId, buffer, 0, byteLength); |
@@ -77,9 +80,6 @@ function CreateTypedArrayConstructor(name, elementSize, arrayId, constructor) { |
function ConstructByArrayLike(obj, arrayLike) { |
var length = arrayLike.length; |
var l = ToPositiveInteger(length, "invalid_typed_array_length"); |
- if (l > %MaxSmi()) { |
- throw MakeRangeError("invalid_typed_array_length"); |
- } |
if(!%TypedArrayInitializeFromArrayLike(obj, arrayId, arrayLike, l)) { |
for (var i = 0; i < l; i++) { |
obj[i] = arrayLike[i]; |