tor-browser

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

constructor-from-binary-string.js (1199B)


      1 // Copyright (C) 2017 Caio Lima. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 description: String should be parsed to BigInt according StringToBigInt
      6 esid: sec-string-to-bigint
      7 info: |
      8  ToBigInt ( argument )
      9 
     10  String:
     11 
     12  Let n be StringToBigInt(prim).
     13  If n is NaN, throw a SyntaxError exception.
     14  Return n.
     15 
     16  StringToBigInt ( argument )
     17 
     18  Replace the StrUnsignedDecimalLiteral production with DecimalDigits to not allow Infinity, decimal points, or exponents.
     19 
     20 features: [BigInt]
     21 ---*/
     22 
     23 assert.sameValue(BigInt("0b1111"), 15n);
     24 assert.sameValue(BigInt("0b10"), 2n);
     25 assert.sameValue(BigInt("0b0"), 0n);
     26 assert.sameValue(BigInt("0b1"), 1n);
     27 
     28 let binaryString = "0b1";
     29 for (let i = 0; i < 128; i++)
     30  binaryString += "0";
     31 
     32 assert.sameValue(BigInt(binaryString), 340282366920938463463374607431768211456n);
     33 
     34 assert.sameValue(BigInt("0B1111"), 15n);
     35 assert.sameValue(BigInt("0B10"), 2n);
     36 assert.sameValue(BigInt("0B0"), 0n);
     37 assert.sameValue(BigInt("0B1"), 1n);
     38 
     39 binaryString = "0B1";
     40 for (let i = 0; i < 128; i++)
     41  binaryString += "0";
     42 
     43 assert.sameValue(BigInt(binaryString), 340282366920938463463374607431768211456n);
     44 
     45 reportCompare(0, 0);