Bug 1892041 - Part 2: Update test262. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / built-ins / BigInt / negative-infinity-throws.rangeerror.js
blob8e7779d0e06add115b84b5df0edd26ab346c7063
1 // Copyright (C) 2017 The V8 project authors. All rights reserved.
2 // This code is governed by the BSD license found in the LICENSE file.
4 /*---
5 description: BigInt throws a RangeError if value is Infinity
6 esid: sec-bigint-constructor
7 info: |
8   BigInt ( value )
10   ...
11   2. Let prim be ? ToPrimitive(value, hint Number).
12   3. If Type(prim) is Number, return ? NumberToBigInt(prim).
13   ...
15   NumberToBigInt ( number )
17   ...
18   2. If IsSafeInteger(number) is false, throw a RangeError exception.
19   ...
21   IsSafeInteger ( number )
23   ...
24   2. If number is NaN, +∞, or -∞, return false.
25 features: [BigInt]
26 ---*/
28 assert.throws(RangeError, function() {
29   BigInt(-Infinity);
30 });
32 var calls = 0;
33 var obj = {
34   valueOf: function() {
35     calls++;
36     return -Infinity;
37   }
39 assert.throws(RangeError, function() {
40   BigInt(obj);
41 });
42 assert.sameValue(calls, 1, "it fails after fetching the primitive value");
44 reportCompare(0, 0);