negative-bytelength-throws-sab.js (1449B)
1 // |reftest| skip-if(!this.hasOwnProperty('SharedArrayBuffer')) -- SharedArrayBuffer is not enabled unconditionally 2 // Copyright (C) 2016 the V8 project authors. 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-dataview-buffer-byteoffset-bytelength 8 description: > 9 Throws a RangeError if ToInteger(byteLength) < 0 10 info: | 11 24.2.2.1 DataView (buffer, byteOffset, byteLength ) 12 13 ... 14 8. If byteLength is either not present or undefined, then 15 a. Let viewByteLength be bufferByteLength - offset. 16 9. Else, 17 a. Let viewByteLength be ? ToIndex(byteLength). 18 ... 19 20 ToIndex ( value ) 21 22 1. If value is undefined, then 23 a. Let index be 0. 24 2. Else, 25 a. Let integerIndex be ? ToInteger(value). 26 b. If integerIndex < 0, throw a RangeError exception. 27 ... 28 features: [SharedArrayBuffer] 29 ---*/ 30 31 var buffer = new SharedArrayBuffer(2); 32 33 assert.throws(RangeError, function() { 34 new DataView(buffer, 0, -1); 35 }, "new DataView(buffer, 0, -1);"); 36 37 assert.throws(RangeError, function() { 38 new DataView(buffer, 0, -Infinity); 39 }, "new DataView(buffer, 0, -Infinity);"); 40 41 assert.throws(RangeError, function() { 42 new DataView(buffer, 1, -1); 43 }, "new DataView(buffer, 1, -1);"); 44 45 assert.throws(RangeError, function() { 46 new DataView(buffer, 2, -Infinity); 47 }, "new DataView(buffer, 2, -Infinity);"); 48 49 reportCompare(0, 0);