| coalesce-expr-ternary.js |
---
description: >
ShortCircuitExpression in the Conditional Expression (? :)
esid: sec-conditional-operator
info: |
ShortCircuitExpression :
LogicalORExpression
CoalesceExpression
CoalesceExpression :
CoalesceExpressionHead ?? BitwiseORExpression
CoalesceExpressionHead :
CoalesceExpression
BitwiseORExpression
ConditionalExpression :
ShortCircuitExpression
ShortCircuitExpression ? AssignmentExpression : AssignmentExpression
features: [coalesce-expression]
--- |
1802 |
- |
| in-branch-1.js |
---
esid: sec-conditional-operator
es6id: 12.13
description: >
The first AssignmentExpression may include the `in` keyword in any context
info: |
Syntax
ConditionalExpression[In, Yield] :
LogicalORExpression[?In, ?Yield]
LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
--- |
750 |
- |
| in-branch-2.js |
---
esid: sec-conditional-operator
es6id: 12.13
description: >
The second AssignmentExpression cannot include the `in` keyword in contexts
where it is disallowed.
info: |
Syntax
ConditionalExpression[In, Yield] :
LogicalORExpression[?In, ?Yield]
LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
negative:
phase: parse
type: SyntaxError
--- |
615 |
- |
| in-condition.js |
---
esid: sec-conditional-operator
es6id: 12.13
description: >
The expression's LogicalORExpression sub-expression cannot include the `in`
keyword in contexts where it is disallowed.
info: |
Syntax
ConditionalExpression[In, Yield] :
LogicalORExpression[?In, ?Yield]
LogicalORExpression[?In, ?Yield] ? AssignmentExpression[+In, ?Yield] : AssignmentExpression[?In, ?Yield]
negative:
phase: parse
type: SyntaxError
--- |
633 |
- |
| S11.12_A1.js |
---
info: |
White Space and Line Terminator between LogicalORExpression and "?" or
between "?" and AssignmentExpression or between AssignmentExpression and
":" or between ":" and AssignmentExpression are allowed
es5id: 11.12_A1
description: Checking by using eval
--- |
2505 |
- |
| S11.12_A2.1_T1.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T1
description: Either Type is not Reference or GetBase is not null
--- |
1352 |
- |
| S11.12_A2.1_T2.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T2
description: If GetBase(x) is null, throw ReferenceError
--- |
568 |
- |
| S11.12_A2.1_T3.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T3
description: >
If ToBoolean(x) is true and GetBase(y) is null, throw
ReferenceError
--- |
603 |
- |
| S11.12_A2.1_T4.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T4
description: >
If ToBoolean(x) is false and GetBase(z) is null, throw
ReferenceError
--- |
604 |
- |
| S11.12_A2.1_T5.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T5
description: If ToBoolean(x) is true and GetBase(z) is null, return y
--- |
416 |
- |
| S11.12_A2.1_T6.js |
---
info: "Operator x ? y : z uses GetValue"
es5id: 11.12_A2.1_T6
description: If ToBoolean(x) is false and GetBase(y) is null, return z
--- |
419 |
- |
| S11.12_A3_T1.js |
---
info: If ToBoolean(x) is false, return z
es5id: 11.12_A3_T1
description: Type(y) and Type(z) are boolean primitives
--- |
536 |
- |
| S11.12_A3_T2.js |
---
info: If ToBoolean(x) is false, return z
es5id: 11.12_A3_T2
description: Type(y) and Type(z) are number primitives
--- |
485 |
- |
| S11.12_A3_T3.js |
---
info: If ToBoolean(x) is false, return z
es5id: 11.12_A3_T3
description: Type(y) and Type(z) are string primitives
--- |
507 |
- |
| S11.12_A3_T4.js |
---
info: If ToBoolean(x) is false, return z
es5id: 11.12_A3_T4
description: Type(x) or Type(y) is changed between null and undefined
--- |
525 |
- |
| S11.12_A4_T1.js |
---
info: If ToBoolean(x) is true, return y
es5id: 11.12_A4_T1
description: Type(y) and Type(z) are boolean primitives
--- |
687 |
- |
| S11.12_A4_T2.js |
---
info: If ToBoolean(x) is true, return y
es5id: 11.12_A4_T2
description: Type(y) and Type(z) are number primitives
--- |
624 |
- |
| S11.12_A4_T3.js |
---
info: If ToBoolean(x) is true, return y
es5id: 11.12_A4_T3
description: Type(y) and Type(z) are string primitives
--- |
650 |
- |
| S11.12_A4_T4.js |
---
info: If ToBoolean(x) is true, return y
es5id: 11.12_A4_T4
description: Type(x) or Type(y) is changed between null and undefined
--- |
520 |
- |
| symbol-conditional-evaluation.js |
---
es6id: 12.12.3
description: >
Conditional Symbol evaluation
features: [Symbol]
--- |
372 |
- |
| tco-cond.js |
---
description: Expression is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
518 |
- |
| tco-pos.js |
---
description: Expression is a candidate for tail-call optimization.
esid: sec-static-semantics-hascallintailposition
flags: [onlyStrict]
features: [tail-call-optimization]
includes: [tcoHelper.js]
--- |
519 |
- |