tor-browser

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

nan-throws-rangeerror.js (901B)


      1 // Copyright (C) 2017 Robin Templeton. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 description: BigInt throws a RangeError if value is NaN
      6 esid: sec-bigint-constructor
      7 info: |
      8  BigInt ( value )
      9 
     10  ...
     11  2. Let prim be ? ToPrimitive(value, hint Number).
     12  3. If Type(prim) is Number, return ? NumberToBigInt(prim).
     13  ...
     14 
     15  NumberToBigInt ( number )
     16 
     17  ...
     18  2. If IsSafeInteger(number) is false, throw a RangeError exception.
     19  ...
     20 
     21  IsSafeInteger ( number )
     22 
     23  ...
     24  2. If number is NaN, +∞, or -∞, return false.
     25 features: [BigInt]
     26 ---*/
     27 
     28 assert.throws(RangeError, function() {
     29  BigInt(NaN);
     30 });
     31 
     32 var calls = 0;
     33 var obj = {
     34  valueOf: function() {
     35    calls++;
     36    return NaN;
     37  }
     38 }
     39 assert.throws(RangeError, function() {
     40  BigInt(obj);
     41 });
     42 assert.sameValue(calls, 1, "it fails after fetching the primitive value");
     43 
     44 reportCompare(0, 0);