length-is-too-large-throws.js (1093B)
1 // |reftest| skip-if(!this.hasOwnProperty('SharedArrayBuffer')) -- SharedArrayBuffer is not enabled unconditionally 2 // Copyright (C) 2015 André Bargull. All rights reserved. 3 // Copyright (C) 2017 Mozilla Corporation. All rights reserved. 4 // This code is governed by the BSD license found in the LICENSE file. 5 6 /*--- 7 esid: sec-sharedarraybuffer-length 8 description: > 9 Throws a RangeError if length >= 2 ** 53 10 info: | 11 SharedArrayBuffer( length ) 12 13 1. If NewTarget is undefined, throw a TypeError exception. 14 2. Let byteLength be ? ToIndex(length). 15 16 ToIndex( value ) 17 18 1. If value is undefined, then 19 a. Let index be 0. 20 2. Else, 21 a. Let integerIndex be ? ToInteger(value). 22 b. If integerIndex < 0, throw a RangeError exception. 23 ... 24 features: [SharedArrayBuffer] 25 ---*/ 26 27 assert.throws(RangeError, function() { 28 // Math.pow(2, 53) = 9007199254740992 29 new SharedArrayBuffer(9007199254740992); 30 }, "`length` parameter is too large"); 31 32 assert.throws(RangeError, function() { 33 new SharedArrayBuffer(Infinity); 34 }, "`length` parameter is positive Infinity"); 35 36 reportCompare(0, 0);