Index: src/arraybuffer.js |
diff --git a/src/arraybuffer.js b/src/arraybuffer.js |
index 2b0c3dd85b1107bc2f5a98d355a24ad7a974e9fe..1ad470079d64b0e8faa4af0790c82beacaaeb235 100644 |
--- a/src/arraybuffer.js |
+++ b/src/arraybuffer.js |
@@ -31,12 +31,14 @@ var $ArrayBuffer = global.ArrayBuffer; |
// ------------------------------------------------------------------- |
-function ArrayBufferConstructor(byteLength) { // length = 1 |
+function ArrayBufferConstructor(length) { // length = 1 |
if (%_IsConstructCall()) { |
- var l = TO_POSITIVE_INTEGER(byteLength); |
- %ArrayBufferInitialize(this, l); |
+ var byteLength = IS_UNDEFINED(length) ? 0 : TO_INTEGER(length); |
rossberg
2013/06/24 12:36:03
Doesn't TO_INTEGER(undefined) yield 0 anyway?
|
+ if (byteLength < 0) |
+ throw MakeRangeError("invalid_array_buffer_length"); |
+ %ArrayBufferInitialize(this, byteLength); |
} else { |
- return new $ArrayBuffer(byteLength); |
+ return new $ArrayBuffer(length); |
} |
} |