2017-08-24 21:56:21 +02:00
|
|
|
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
|
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
|
|
description: BigInt division of complex infinity (1/0)
|
|
|
|
esid: sec-multiplicative-operators-runtime-semantics-evaluation
|
|
|
|
info: |
|
|
|
|
Runtime Semantics: Evaluation
|
|
|
|
|
|
|
|
MultiplicativeExpression: MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
|
|
|
|
|
|
|
|
...
|
|
|
|
11. If MultiplicativeOperator is /, return T::divide(lnum, rnum).
|
|
|
|
...
|
|
|
|
|
|
|
|
BigInt::divide (x, y)
|
|
|
|
|
|
|
|
1. If y is 0n, throw a RangeError exception.
|
|
|
|
...
|
|
|
|
features: [BigInt]
|
|
|
|
---*/
|
|
|
|
assert.throws(RangeError, function() {
|
2018-05-09 23:14:09 +02:00
|
|
|
1n / 0n;
|
|
|
|
}, '1n / 0n throws RangeError');
|
2017-08-24 21:56:21 +02:00
|
|
|
|
|
|
|
assert.throws(RangeError, function() {
|
2018-05-09 23:14:09 +02:00
|
|
|
10n / 0n;
|
|
|
|
}, '10n / 0n throws RangeError');
|
2017-08-24 21:56:21 +02:00
|
|
|
|
|
|
|
assert.throws(RangeError, function() {
|
2018-05-09 23:14:09 +02:00
|
|
|
0n / 0n;
|
|
|
|
}, '0n / 0n throws RangeError');
|
2017-08-24 21:56:21 +02:00
|
|
|
|
|
|
|
assert.throws(RangeError, function() {
|
2018-05-09 23:14:09 +02:00
|
|
|
1000000000000000000n / 0n;
|
2019-11-11 05:11:18 +01:00
|
|
|
}, '1000000000000000000n / 0n throws RangeError');
|