tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);