tor-browser

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

options-maxbytelength-object.js (1248B)


      1 // Copyright (C) 2021 the V8 project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 /*---
      4 esid: sec-arraybuffer-constructor
      5 description: |
      6  Invoked with an options object whose `maxByteLength` property cannot be
      7  coerced to a primitive value
      8 info: |
      9  ArrayBuffer( length [ , options ] )
     10 
     11  1. If NewTarget is undefined, throw a TypeError exception.
     12  2. Let byteLength be ? ToIndex(length).
     13  3. Let requestedMaxByteLength be ? GetArrayBufferMaxByteLengthOption(options).
     14  [...]
     15 
     16  1.1.5 GetArrayBufferMaxByteLengthOption ( options )
     17 
     18  1. If Type(options) is not Object, return empty.
     19  2. Let maxByteLength be ? Get(options, "maxByteLength").
     20  3. If maxByteLength is undefined, return empty.
     21  4. Return ? ToIndex(maxByteLength).
     22 features: [resizable-arraybuffer]
     23 ---*/
     24 
     25 var log = [];
     26 var options = {
     27  maxByteLength: {
     28    toString: function() {
     29      log.push('toString');
     30      return {};
     31    },
     32    valueOf: function() {
     33      log.push('valueOf');
     34      return {};
     35    }
     36  }
     37 };
     38 
     39 assert.throws(TypeError, function() {
     40  new ArrayBuffer(0, options);
     41 });
     42 
     43 assert.sameValue(log.length, 2);
     44 assert.sameValue(log[0], 'valueOf');
     45 assert.sameValue(log[1], 'toString');
     46 
     47 reportCompare(0, 0);