non-integer-rangeerror.js (1163B)
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: Non integer number values will throw a RangeError 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 3. Let integer be ToInteger(number). 26 4. If integer is not equal to number, return false. 27 ... 28 features: [BigInt] 29 ---*/ 30 31 assert.throws(RangeError, function() { 32 BigInt(0.00005); 33 }); 34 35 assert.throws(RangeError, function() { 36 BigInt(-0.00005); 37 }); 38 39 assert.throws(RangeError, function() { 40 BigInt(.1); 41 }); 42 43 assert.throws(RangeError, function() { 44 BigInt(-.1); 45 }); 46 47 assert.throws(RangeError, function() { 48 BigInt(1.1); 49 }); 50 51 assert.throws(RangeError, function() { 52 BigInt(-1.1); 53 }); 54 55 assert.throws(RangeError, function() { 56 BigInt(Number.MIN_VALUE); 57 }); 58 59 reportCompare(0, 0);