applying-the-exp-operator_A1.js |
---
esid: sec-applying-the-exp-operator
description: If exponent is NaN, the result is NaN.
features: [exponentiation]
--- |
731 |
applying-the-exp-operator_A2.js |
---
esid: sec-applying-the-exp-operator
description: >
If exponent is +0, the result is 1, even if base is NaN.
features: [exponentiation]
--- |
780 |
applying-the-exp-operator_A3.js |
---
esid: sec-applying-the-exp-operator
description: >
If exponent is −0, the result is 1, even if base is NaN.
features: [exponentiation]
--- |
767 |
applying-the-exp-operator_A4.js |
---
esid: sec-applying-the-exp-operator
description: If base is NaN and exponent is nonzero, the result is NaN.
features: [exponentiation]
--- |
754 |
applying-the-exp-operator_A5.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) > 1 and exponent is +∞, the result is +∞.
features: [exponentiation]
--- |
754 |
applying-the-exp-operator_A6.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) > 1 and exponent is −∞, the result is +0.
features: [exponentiation]
--- |
740 |
applying-the-exp-operator_A7.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) is 1 and exponent is +∞, the result is NaN.
features: [exponentiation]
--- |
504 |
applying-the-exp-operator_A8.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) is 1 and exponent is −∞, the result is NaN.
features: [exponentiation]
--- |
506 |
applying-the-exp-operator_A9.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) < 1 and exponent is +∞, the result is +0.
features: [exponentiation]
--- |
626 |
applying-the-exp-operator_A10.js |
---
esid: sec-applying-the-exp-operator
description: If abs(base) < 1 and exponent is −∞, the result is +∞.
--- |
622 |
applying-the-exp-operator_A11.js |
---
esid: sec-applying-the-exp-operator
description: If base is +∞ and exponent > 0, the result is +∞.
features: [exponentiation]
--- |
662 |
applying-the-exp-operator_A12.js |
---
esid: sec-applying-the-exp-operator
description: If base is +∞ and exponent < 0, the result is +0.
features: [exponentiation]
--- |
657 |
applying-the-exp-operator_A13.js |
---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent > 0 and exponent is an odd integer, the result is −∞.
features: [exponentiation]
--- |
613 |
applying-the-exp-operator_A14.js |
---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent > 0 and exponent is not an odd integer, the result is +∞.
features: [exponentiation]
--- |
719 |
applying-the-exp-operator_A15.js |
---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent < 0 and exponent is an odd integer, the result is −0.
features: [exponentiation]
--- |
555 |
applying-the-exp-operator_A16.js |
---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent < 0 and exponent is not an odd integer, the result is +0.
features: [exponentiation]
--- |
719 |
applying-the-exp-operator_A17.js |
---
esid: sec-applying-the-exp-operator
description: If base is +0 and exponent > 0, the result is +0.
features: [exponentiation]
--- |
632 |
applying-the-exp-operator_A18.js |
---
esid: sec-applying-the-exp-operator
description: If base is +0 and exponent < 0, the result is +∞.
features: [exponentiation]
--- |
664 |
applying-the-exp-operator_A19.js |
---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent > 0 and exponent is an odd integer, the result is −0.
features: [exponentiation]
--- |
544 |
applying-the-exp-operator_A20.js |
---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent > 0 and exponent is not an odd integer, the result is +0.
features: [exponentiation]
--- |
694 |
applying-the-exp-operator_A21.js |
---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent < 0 and exponent is an odd integer, the result is −∞.
features: [exponentiation]
--- |
607 |
applying-the-exp-operator_A22.js |
---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent < 0 and exponent is not an odd integer, the result is +∞.
features: [exponentiation]
--- |
726 |
applying-the-exp-operator_A23.js |
---
esid: sec-applying-the-exp-operator
description: If base < 0 and base is finite and exponent is finite and exponent is not an integer, the result is NaN.
features: [exponentiation]
--- |
960 |
bigint-and-number.js |
---
esid: sec-exp-operator-runtime-semantics-evaluation
description: Mixing BigInt and Number produces a TypeError for exponentiation operator
features: [BigInt, exponentiation]
info: |
Let base be ? ToNumeric(leftValue).
Let exponent be ? ToNumeric(rightValue).
If Type(base) does not equal Type(exponent), throw a TypeError exception.
--- |
2367 |
bigint-arithmetic.js |
---
esid: sec-exp-operator-runtime-semantics-evaluation
description: BigInt exponentiation arithmetic
features: [BigInt, exponentiation]
--- |
7541 |
bigint-errors.js |
---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names, exponentiation]
--- |
1991 |
bigint-negative-exponent-throws.js |
---
description: If the BigInt exponent is < 0, throw a RangeError exception
esid: sec-exp-operator-runtime-semantics-evaluation
info: |
ExponentiationExpression: UpdateExpression ** ExponentiationExpression
...
9. Return ? Type(base)::exponentiate(base, exponent).
BigInt::exponentiate (base, exponent)
1. If exponent < 0, throw a RangeError exception.
...
features: [BigInt, exponentiation]
--- |
960 |
bigint-toprimitive.js |
---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
features: [BigInt, Symbol.toPrimitive, computed-property-names, exponentiation]
--- |
8900 |
bigint-wrapped-values.js |
---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
features: [BigInt, Symbol.toPrimitive, computed-property-names, exponentiation]
--- |
1444 |
bigint-zero-base-zero-exponent.js |
---
description: If the BigInt base and exponent are both 0n, return 1n
esid: sec-exp-operator-runtime-semantics-evaluation
info: |
ExponentiationExpression: UpdateExpression ** ExponentiationExpression
...
9. Return ? Type(base)::exponentiate(base, exponent).
BigInt::exponentiate (base, exponent)
1. If exponent < 0, throw a RangeError exception.
2. If base is 0n and exponent is 0n, return 1n.
3. Return a BigInt representing the mathematical value of base raised to the power exponent.
...
features: [BigInt, exponentiation]
--- |
775 |
browser.js |
|
0 |
exp-assignment-operator.js |
---
author: Rick Waldron
esid: sec-assignment-operators-runtime-semantics-evaluation
description: Compound Exponentiation Assignment Operator
info: |
AssignmentExpression:
LeftHandSideExpression AssignmentOperator AssignmentExpression
1. Let lref be the result of evaluating LeftHandSideExpression.
2. Let lval be ? GetValue(lref).
3. Let rref be the result of evaluating AssignmentExpression.
4. Let rval be ? GetValue(rref).
5. Let op be the @ where AssignmentOperator is @=.
6. Let r be the result of applying op to lval and rval as if evaluating the expression lval op rval.
7. Perform ? PutValue(lref, r).
8. Return r.
features: [exponentiation]
--- |
947 |
exp-operator-evaluation-order.js |
---
author: Rick Waldron, André Bargull
esid: sec-exp-operator-runtime-semantics-evaluation
description: Exponentiation Operator expression order of evaluation
info: |
ExponentiationExpression:
UpdateExpression ** ExponentiationExpression
1. Let left be the result of evaluating UpdateExpression.
2. Let leftValue be ? GetValue(left).
3. Let right be the result of evaluating ExponentiationExpression.
4. Let rightValue be ? GetValue(right).
5. Let base be ? ToNumber(leftValue).
6. Let exponent be ? ToNumber(rightValue).
7. Return the result of Applying the ** operator with base and exponent as specified in 12.7.3.4.
features: [exponentiation]
--- |
1565 |
exp-operator-precedence-unary-expression-semantics.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Operator expression precedence of unary operators
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`delete` UnaryExpression
`void` UnaryExpression
`typeof` UnaryExpression
`+` UnaryExpression
`-` UnaryExpression
`~` UnaryExpression
`!` UnaryExpression
features: [exponentiation]
--- |
2532 |
exp-operator-precedence-update-expression-semantics.js |
---
author: Rick Waldron
esid: sec-update-expressions
description: Exponentiation Operator expression precedence of update operators
info: |
ExponentiationExpression :
...
UpdateExpression `**` ExponentiationExpression
UpdateExpression :
LeftHandSideExpression `++`
LeftHandSideExpression `--`
`++` UnaryExpression
`--` UnaryExpression
features: [exponentiation]
--- |
1641 |
exp-operator-syntax-error-bitnot-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `~` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`~` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
519 |
exp-operator-syntax-error-delete-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `delete` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`delete` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
537 |
exp-operator-syntax-error-logical-not-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `!` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`!` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
519 |
exp-operator-syntax-error-negate-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `-` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`-` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
519 |
exp-operator-syntax-error-plus-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `+` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`+` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
519 |
exp-operator-syntax-error-typeof-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `typeof` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`typeof` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
535 |
exp-operator-syntax-error-void-unary-expression-base.js |
---
author: Rick Waldron
esid: sec-unary-operators
description: Exponentiation Expression syntax error, `void` UnaryExpression
info: |
ExponentiationExpression :
UnaryExpression
...
UnaryExpression :
...
`void` UnaryExpression
...
features: [exponentiation]
negative:
phase: parse
type: SyntaxError
--- |
529 |
exp-operator.js |
---
author: Rick Waldron
esid: sec-exp-operator
description: >
Performs exponential calculation on operands. Same algorithm as %MathPow%(base, exponent)
features: [exponentiation]
--- |
883 |
int32_min-exponent.js |
---
esid: sec-applying-the-exp-operator
description: >
Using -(2**31) as exponent with the exponentiation operator should behave
as expected.
features: [exponentiation]
--- |
661 |
order-of-evaluation.js |
---
esid: sec-exp-operator-runtime-semantics-evaluation
description: Type coercion order of operations for exponentiation operator
features: [Symbol, exponentiation]
info: |
Evaluate lhs
Evaluate rhs
ToNumeric(lhs)
ToNumeric(rhs)
--- |
3054 |
shell.js |
|
0 |