tor-browser

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

excessive-bytelength-throws-sab.js (1640B)


      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 RangeError if offset + viewByteLength > bufferByteLength
     10 info: |
     11  24.2.2.1 DataView (buffer, byteOffset, byteLength )
     12 
     13  ...
     14  10. If byteLength is undefined, then
     15    ...
     16  11. Else,
     17    a. Let viewByteLength be ? ToLength(byteLength).
     18    b. If offset+viewByteLength > bufferByteLength, throw a RangeError
     19    exception.
     20  ...
     21 features: [SharedArrayBuffer]
     22 ---*/
     23 
     24 var buffer = new SharedArrayBuffer(3);
     25 
     26 assert.throws(RangeError, function() {
     27  new DataView(buffer, 0, 4);
     28 }, "offset: 0, length 4");
     29 
     30 assert.throws(RangeError, function() {
     31  new DataView(buffer, 1, 3);
     32 }, "offset: 1, length: 3");
     33 
     34 assert.throws(RangeError, function() {
     35  new DataView(buffer, 2, 2);
     36 }, "offset: 2, length: 2");
     37 
     38 assert.throws(RangeError, function() {
     39  new DataView(buffer, 3, 1);
     40 }, "offset: 3, length: 1");
     41 
     42 assert.throws(RangeError, function() {
     43  new DataView(buffer, 4, 0);
     44 }, "offset: 4, length: 0");
     45 
     46 assert.throws(RangeError, function() {
     47  new DataView(buffer, 4, -1);
     48 }, "offset: 4, length: -1");
     49 
     50 assert.throws(RangeError, function() {
     51  new DataView(buffer, 4, -Infinity);
     52 }, "offset: 4, length: -Infinity");
     53 
     54 assert.throws(RangeError, function() {
     55  new DataView(buffer, 0, Infinity);
     56 }, "offset: 0, length: Infinity");
     57 
     58 reportCompare(0, 0);