Luke Wilde
09536f5f48
LibJS: Fix typo in LHS Object and RHS BigInt loosely equals check
...
Step 12 was using `lhs.is_bigint()` instead of `rhs.is_bigint()`,
meaning you got:
```js
1n == Object(1n); // true
Object(1n) == 1n; // false
```
This also adds spec comments to is_loosely_equal.
2021-10-15 01:59:09 +01:00
Timothy Flynn
76589d6728
LibJS: Change wording of ErrorType::NotA to be independent of context
...
Currently, we have NotA and NotAn, to be used dependent on whether the
following word begins with a vowel or not. To avoid this, change the
wording on NotA to be independent of this context.
2021-09-12 00:16:39 +02:00
Linus Groh
3014e529be
LibJS: Tweak error message in the NumberToBigInt abstract operation
...
This is no longer specific to the BigInt() constructor, so it shouldn't
be mentioning an 'argument' that we might not have.
2021-07-09 13:20:51 +01:00
Idan Horowitz
690eb3bb8a
LibJS: Add support for hex, octal & binary big integer literals
2021-06-14 01:45:04 +01:00
Idan Horowitz
67a5e9f018
LibJS: Add left shift & right shift operator support for BigIntegers
...
Based on https://tc39.es/ecma262/#sec-numeric-types-bigint-leftShift
(This commit also includes the matching tests)
2021-05-31 19:50:29 +01:00
tuqqu
5438879277
LibJS: Removed a fixme in a test of BigInt.prototype.valueOf
2021-04-11 20:51:58 +02:00
Linus Groh
fa6bce5087
LibJS: Throw RangeError on BigInt exponentiation with negative exponent
...
https://tc39.es/ecma262/#sec-numeric-types-bigint-exponentiate
2021-03-16 21:54:51 +01:00
Linus Groh
11138f5c1f
LibJS: Throw RangeError on BigInt division/modulo by zero
...
https://tc39.es/ecma262/#sec-numeric-types-bigint-divide
https://tc39.es/ecma262/#sec-numeric-types-bigint-remainder
2021-03-16 21:54:51 +01:00
Linus Groh
4e2a961a3d
LibJS: Add BigInt equality tests for some large numbers
2021-02-14 10:51:00 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00