bigint-and-number.js |
---
esid: sec-multiplicative-operators-runtime-semantics-evaluation
description: Mixing BigInt and Number produces a TypeError for modulus operator
features: [BigInt]
info: |
Let lnum be ? ToNumeric(leftValue).
Let rnum be ? ToNumeric(rightValue).
If Type(lnum) does not equal Type(rnum), throw a TypeError exception.
--- |
2308 |
bigint-arithmetic.js |
---
esid: sec-multiplicative-operators-runtime-semantics-evaluation
description: BigInt remainder arithmetic
features: [BigInt]
--- |
28526 |
bigint-errors.js |
---
description: modulus operator ToNumeric with BigInt operands
esid: sec-multiplicative-operators-runtime-semantics-evaluation
features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names]
--- |
1960 |
bigint-modulo-zero.js |
---
description: BigInt modulo 0 throws a range error
esid: sec-multiplicative-operators-runtime-semantics-evaluation
info: |
Runtime Semantics: Evaluation
MultiplicativeExpression: MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
...
12. Otherwise, MultiplicativeOperator is %; return T::remainder(lnum, rnum).
...
BigInt::remainder (x, y)
1. If y is 0n, throw a RangeError exception.
2. Return the BigInt representing x modulo y.
features: [BigInt]
--- |
1029 |
bigint-toprimitive.js |
---
description: modulus operator ToNumeric with BigInt operands
esid: sec-multiplicative-operators-runtime-semantics-evaluation
features: [BigInt, Symbol.toPrimitive, computed-property-names]
--- |
8801 |
bigint-wrapped-values.js |
---
description: modulus operator ToNumeric with BigInt operands
esid: sec-multiplicative-operators-runtime-semantics-evaluation
features: [BigInt, Symbol.toPrimitive, computed-property-names]
--- |
1417 |
browser.js |
|
0 |
line-terminator.js |
---
esid: sec-multiplicative-operators-runtime-semantics-evaluation
description: Line terminator between the operands of a modulus operator
info: |
MultiplicativeExpression[Yield, Await]:
ExponentiationExpression
MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
MultiplicativeOperator : one of
/ %
--- |
549 |
order-of-evaluation.js |
---
esid: sec-multiplicative-operators-runtime-semantics-evaluation
description: Type coercion order of operations for modulus operator
features: [Symbol]
info: |
Evaluate lhs
Evaluate rhs
ToNumeric(lhs)
ToNumeric(rhs)
--- |
3037 |
S11.5.3_A1.js |
---
info: |
White Space and Line Terminator between MultiplicativeExpression and "%"
or between "%" and UnaryExpression are allowed
es5id: 11.5.3_A1
description: Checking by using eval
--- |
1640 |
S11.5.3_A2.1_T1.js |
---
info: Operator x % y uses GetValue
es5id: 11.5.3_A2.1_T1
description: Either Type is not Reference or GetBase is not null
--- |
1112 |
S11.5.3_A2.1_T2.js |
---
info: Operator x % y uses GetValue
es5id: 11.5.3_A2.1_T2
description: If GetBase(x) is null, throw ReferenceError
--- |
541 |
S11.5.3_A2.1_T3.js |
---
info: Operator x % y uses GetValue
es5id: 11.5.3_A2.1_T3
description: If GetBase(y) is null, throw ReferenceError
--- |
541 |
S11.5.3_A2.2_T1.js |
---
info: Operator x % y uses [[Default Value]]
es5id: 11.5.3_A2.2_T1
description: If Type(value) is Object, evaluate ToPrimitive(value, Number)
--- |
3214 |
S11.5.3_A2.3_T1.js |
---
info: |
ToNumber(first expression) is called first, and then ToNumber(second
expression)
es5id: 11.5.3_A2.3_T1
description: Checking with "throw"
--- |
987 |
S11.5.3_A2.4_T1.js |
---
info: First expression is evaluated first, and then second expression
es5id: 11.5.3_A2.4_T1
description: Checking with "="
--- |
566 |
S11.5.3_A2.4_T2.js |
---
info: First expression is evaluated first, and then second expression
es5id: 11.5.3_A2.4_T2
description: Checking with "throw"
--- |
881 |
S11.5.3_A2.4_T3.js |
---
info: First expression is evaluated first, and then second expression
es5id: 11.5.3_A2.4_T3
description: Checking with undeclarated variables
--- |
593 |
S11.5.3_A2.4_T4.js |
---
info: First expression is evaluated first, and then second expression
es5id: 11.5.3_A2.4_T4
description: Checking with undeclarated variables
flags: [noStrict]
--- |
442 |
S11.5.3_A3_T1.1.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T1.1
description: >
Type(x) and Type(y) vary between primitive boolean and Boolean
object
--- |
953 |
S11.5.3_A3_T1.2.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T1.2
description: Type(x) and Type(y) vary between primitive number and Number object
--- |
857 |
S11.5.3_A3_T1.3.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T1.3
description: Type(x) and Type(y) vary between primitive string and String object
--- |
1165 |
S11.5.3_A3_T1.4.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T1.4
description: Type(x) and Type(y) vary between Null and Undefined
--- |
913 |
S11.5.3_A3_T1.5.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T1.5
description: Type(x) and Type(y) vary between Object object and Function object
--- |
1036 |
S11.5.3_A3_T2.1.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.1
description: >
Type(x) is different from Type(y) and both types vary between
Number (primitive or object) and Boolean (primitive and object)
--- |
1541 |
S11.5.3_A3_T2.2.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.2
description: >
Type(x) is different from Type(y) and both types vary between
Number (primitive or object) and String (primitive and object)
--- |
1754 |
S11.5.3_A3_T2.3.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.3
description: >
Type(x) is different from Type(y) and both types vary between
Number (primitive or object) and Null
--- |
905 |
S11.5.3_A3_T2.4.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.4
description: >
Type(x) is different from Type(y) and both types vary between
Number (primitive or object) and Undefined
--- |
1012 |
S11.5.3_A3_T2.5.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.5
description: >
Type(x) is different from Type(y) and both types vary between
String (primitive or object) and Boolean (primitive and object)
--- |
1589 |
S11.5.3_A3_T2.6.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.6
description: >
Type(x) is different from Type(y) and both types vary between
String (primitive or object) and Undefined
--- |
1036 |
S11.5.3_A3_T2.7.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.7
description: >
Type(x) is different from Type(y) and both types vary between
String (primitive or object) and Null
--- |
929 |
S11.5.3_A3_T2.8.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.8
description: >
Type(x) is different from Type(y) and both types vary between
Boolean (primitive or object) and Undefined
--- |
1055 |
S11.5.3_A3_T2.9.js |
---
info: Operator x % y returns ToNumber(x) % ToNumber(y)
es5id: 11.5.3_A3_T2.9
description: >
Type(x) is different from Type(y) and both types vary between
Boolean (primitive or object) and Null
--- |
948 |
S11.5.3_A4_T1.1.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T1.1
description: If either operand is NaN, the result is NaN
--- |
1617 |
S11.5.3_A4_T1.2.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T1.2
description: If either operand is NaN, the result is NaN
--- |
1619 |
S11.5.3_A4_T2.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T2
description: >
The sign of the finite non-zero value result equals the sign of
the divided
--- |
1781 |
S11.5.3_A4_T3.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T3
description: If the dividend is an infinity results is NaN
--- |
2589 |
S11.5.3_A4_T4.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T4
description: If the divisor is zero results is NaN
--- |
2631 |
S11.5.3_A4_T5.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T5
description: >
If dividend is finite and the divisor is an infinity, the result
equals the dividend
--- |
3870 |
S11.5.3_A4_T6.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T6
description: >
If dividend is a zero and the divisor is nonzero finite, the
result equals the dividend
--- |
2558 |
S11.5.3_A4_T7.js |
---
info: |
The result of a ECMAScript floating-point remainder operation is
determined by the rules of IEEE arithmetics
es5id: 11.5.3_A4_T7
description: >
If operands neither an infinity, nor a zero, nor NaN, return x -
truncate(x / y) * y
--- |
1952 |
shell.js |
|
0 |