tor-browser

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

toindex-byteoffset.js (2340B)


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