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);