tor-browser

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

toindex-byteoffset-sab.js (2556B)


      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  ToIndex conversions on byteOffset
     10 info: |
     11  24.2.2.1 DataView ( buffer, byteOffset, byteLength )
     12 
     13  ...
     14  4. Let offset be ? ToIndex(byteOffset).
     15  ...
     16 
     17  ToIndex( value )
     18 
     19  1. If value is undefined, then
     20    a. Let index be 0.
     21  2. Else,
     22    a. Let integerIndex be ? ToInteger(value).
     23    b. If integerIndex < 0, throw a RangeError exception.
     24    c. Let index be ! ToLength(integerIndex).
     25    d. If SameValueZero(integerIndex, index) is false, throw a RangeError exception.
     26  3. Return index.
     27 features: [SharedArrayBuffer]
     28 ---*/
     29 
     30 var obj1 = {
     31  valueOf: function() {
     32    return 3;
     33  }
     34 };
     35 
     36 var obj2 = {
     37  toString: function() {
     38    return 4;
     39  }
     40 };
     41 
     42 var sample;
     43 var ab = new SharedArrayBuffer(42);
     44 
     45 sample = new DataView(ab, -0);
     46 assert.sameValue(sample.byteOffset, 0, "-0");
     47 
     48 sample = new DataView(ab, obj1);
     49 assert.sameValue(sample.byteOffset, 3, "object's valueOf");
     50 
     51 sample = new DataView(ab, obj2);
     52 assert.sameValue(sample.byteOffset, 4, "object's toString");
     53 
     54 sample = new DataView(ab, "");
     55 assert.sameValue(sample.byteOffset, 0, "the Empty string");
     56 
     57 sample = new DataView(ab, "0");
     58 assert.sameValue(sample.byteOffset, 0, "string '0'");
     59 
     60 sample = new DataView(ab, "1");
     61 assert.sameValue(sample.byteOffset, 1, "string '1'");
     62 
     63 sample = new DataView(ab, true);
     64 assert.sameValue(sample.byteOffset, 1, "true");
     65 
     66 sample = new DataView(ab, false);
     67 assert.sameValue(sample.byteOffset, 0, "false");
     68 
     69 sample = new DataView(ab, NaN);
     70 assert.sameValue(sample.byteOffset, 0, "NaN");
     71 
     72 sample = new DataView(ab, null);
     73 assert.sameValue(sample.byteOffset, 0, "null");
     74 
     75 sample = new DataView(ab, undefined);
     76 assert.sameValue(sample.byteOffset, 0, "undefined");
     77 
     78 sample = new DataView(ab, 0.1);
     79 assert.sameValue(sample.byteOffset, 0, "0.1");
     80 
     81 sample = new DataView(ab, 0.9);
     82 assert.sameValue(sample.byteOffset, 0, "0.9");
     83 
     84 sample = new DataView(ab, 1.1);
     85 assert.sameValue(sample.byteOffset, 1, "1.1");
     86 
     87 sample = new DataView(ab, 1.9);
     88 assert.sameValue(sample.byteOffset, 1, "1.9");
     89 
     90 sample = new DataView(ab, -0.1);
     91 assert.sameValue(sample.byteOffset, 0, "-0.1");
     92 
     93 sample = new DataView(ab, -0.99999);
     94 assert.sameValue(sample.byteOffset, 0, "-0.99999");
     95 
     96 reportCompare(0, 0);