11.3.1-2-1gs-strict.js |
---
es5id: 11.3.1-2-1gs
description: >
Strict Mode - SyntaxError is throw if the identifier arguments
appear as a PostfixExpression(arguments++)
negative:
phase: parse
type: SyntaxError
flags: [onlyStrict]
--- |
440 |
11.3.1-2-3.js |
---
es5id: 11.3.1-2-3-s
description: >
SyntaxError is not thrown if the identifier 'arguments[...]' appears as a
PostfixExpression(arguments++)
--- |
464 |
arguments-nostrict.js |
---
esid: sec-update-expressions-static-semantics-early-errors
description: >
In non-strict code, "arguments++" does not produce an early error.
info: |
sec-identifiers-static-semantics-assignmenttargettype
1. If this IdentifierReference is contained in strict mode code and StringValue of Identifier is "eval" or "arguments", return strict.
2. Return simple.
sec-update-expressions-static-semantics-early-errors
UpdateExpression : LeftHandSideExpression ++
It is an early Reference Error if AssignmentTargetType of LeftHandSideExpression is invalid.
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is strict.
flags: [noStrict]
--- |
880 |
arguments-strict.js |
---
esid: sec-identifiers-static-semantics-assignmenttargettype
description: >
If this IdentifierReference is contained in strict mode code and StringValue of Identifier is "eval" or "arguments", return strict.
info: |
sec-update-expressions-static-semantics-early-errors
UpdateExpression: LeftHandSideExpression ++
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is strict.
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
--- |
703 |
bigint.js |
---
description: Postfix increment for references to BigInt values
esid: sec-postfix-increment-operator-runtime-semantics-evaluation
info: |
1. Let expr be the result of evaluating UnaryExpression.
2. Let oldValue be ? ToNumeric(? GetValue(expr)).
3. Let newValue be ? Type(oldvalue)::add(oldValue, Type(oldValue)::unit).
4. Perform ? PutValue(expr, newValue).
5. Return oldValue.
features: [BigInt]
--- |
2603 |
browser.js |
|
0 |
eval-nostrict.js |
---
esid: sec-update-expressions
description: >
In non-strict code, "eval++" does not produce an early error.
info: |
sec-identifiers-static-semantics-assignmenttargettype
1. If this IdentifierReference is contained in strict mode code and StringValue of Identifier is "eval" or "arguments", return strict.
2. Return simple.
sec-update-expressions-static-semantics-early-errors
UpdateExpression : LeftHandSideExpression ++
It is an early Reference Error if AssignmentTargetType of LeftHandSideExpression is invalid.
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is strict.
flags: [noStrict]
--- |
823 |
eval-strict.js |
---
esid: sec-identifiers-static-semantics-assignmenttargettype
description: >
If this IdentifierReference is contained in strict mode code and StringValue of Identifier is "eval" or "arguments", return strict.
info: |
sec-update-expressions-static-semantics-early-errors
UpdateExpression: LeftHandSideExpression ++
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is strict.
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
--- |
698 |
line-terminator-carriage-return.js |
---
info: Line Terminator between LeftHandSideExpression and "++" is not allowed
es5id: 11.3.1_A1.1_T2
esid: postfix-increment-operator
description: Carriage Return
negative:
phase: parse
type: SyntaxError
--- |
489 |
line-terminator-line-feed.js |
---
info: Line Terminator between LeftHandSideExpression and "++" is not allowed
es5id: 11.3.1_A1.1_T1
esid: postfix-increment-operator
description: Checking Line Feed
negative:
phase: parse
type: SyntaxError
--- |
411 |
line-terminator-line-separator.js |
---
info: Line Terminator between LeftHandSideExpression and "++" is not allowed
es5id: 11.3.1_A1.1_T3
esid: postfix-increment-operator
description: Checking Line Separator
negative:
phase: parse
type: SyntaxError
--- |
498 |
line-terminator-paragraph-separator.js |
---
info: Line Terminator between LeftHandSideExpression and "++" is not allowed
es5id: 11.3.1_A1.1_T4
esid: postfix-increment-operator
description: Checking Paragraph separator
negative:
phase: parse
type: SyntaxError
--- |
511 |
operator-x-postfix-increment-calls-putvalue-lhs-newvalue--1.js |
---
esid: sec-object-environment-records-setmutablebinding-n-v-s
description: >
Operator x++ calls PutValue(lhs, newValue) (formerly S11.3.1_A5_T5)
info: |
The concrete Environment Record method SetMutableBinding for object Environment
Records attempts to set the value of the Environment Record's associated binding
object's property whose name is the value of the argument N to the value of argument V.
A property named N normally already exists but if it does not or is not currently writable,
error handling is determined by the value of the Boolean argument S.
Let stillExists be ? HasProperty(bindings, N).
If stillExists is false and S is true, throw a ReferenceError exception.
flags: [noStrict]
--- |
1195 |
operator-x-postfix-increment-calls-putvalue-lhs-newvalue-.js |
---
esid: sec-object-environment-records-setmutablebinding-n-v-s
description: >
Operator x++ calls PutValue(lhs, newValue) (formerly S11.3.1_A5_T4)
info: |
The concrete Environment Record method SetMutableBinding for object Environment
Records attempts to set the value of the Environment Record's associated binding
object's property whose name is the value of the argument N to the value of argument V.
A property named N normally already exists but if it does not or is not currently writable,
error handling is determined by the value of the Boolean argument S.
Let stillExists be ? HasProperty(bindings, N).
If stillExists is false and S is true, throw a ReferenceError exception.
flags: [noStrict]
--- |
1179 |
S11.3.1_A2.1_T1.js |
---
info: Operator x++ uses GetValue and PutValue
es5id: 11.3.1_A2.1_T1
description: Type(x) is Reference and GetBase(x) is not null
--- |
1249 |
S11.3.1_A2.1_T2.js |
---
info: Operator x++ uses GetValue and PutValue
es5id: 11.3.1_A2.1_T2
description: If GetBase(x) is null, throw ReferenceError
--- |
544 |
S11.3.1_A2.2_T1.js |
---
info: Operator x++ uses [[Default Value]]
es5id: 11.3.1_A2.2_T1
description: If Type(value) is Object, evaluate ToPrimitive(value, Number)
--- |
4450 |
S11.3.1_A3_T1.js |
---
info: Operator x++ returns x = ToNumber(x) + 1
es5id: 11.3.1_A3_T1
description: Type(x) is boolean primitive or Boolean object
--- |
587 |
S11.3.1_A3_T2.js |
---
info: Operator x++ returns x = ToNumber(x) + 1
es5id: 11.3.1_A3_T2
description: Type(x) is number primitive or Number object
--- |
588 |
S11.3.1_A3_T3.js |
---
info: Operator x++ returns x = ToNumber(x) + 1
es5id: 11.3.1_A3_T3
description: Type(x) is string primitive or String object
--- |
725 |
S11.3.1_A3_T4.js |
---
info: Operator x++ returns x = ToNumber(x) + 1
es5id: 11.3.1_A3_T4
description: Type(x) is undefined or null
--- |
533 |
S11.3.1_A3_T5.js |
---
info: Operator x++ returns x = ToNumber(x) + 1
es5id: 11.3.1_A3_T5
description: Type(x) is Object object or Function object
--- |
611 |
S11.3.1_A4_T1.js |
---
info: Operator x++ returns ToNumber(x)
es5id: 11.3.1_A4_T1
description: Type(x) is boolean primitive or Boolean object
--- |
592 |
S11.3.1_A4_T2.js |
---
info: Operator x++ returns ToNumber(x)
es5id: 11.3.1_A4_T2
description: Type(x) is number primitive or Number object
--- |
594 |
S11.3.1_A4_T3.js |
---
info: Operator x++ returns ToNumber(x)
es5id: 11.3.1_A4_T3
description: Type(x) is string primitive or String object
--- |
746 |
S11.3.1_A4_T4.js |
---
info: Operator x++ returns ToNumber(x)
es5id: 11.3.1_A4_T4
description: Type(x) is undefined or null
--- |
553 |
S11.3.1_A4_T5.js |
---
info: Operator x++ returns ToNumber(x)
es5id: 11.3.1_A4_T5
description: Type(x) is Object object or Function object
--- |
633 |
S11.3.1_A5_T1.js |
---
info: Operator x++ calls PutValue(lhs, newValue)
es5id: S11.3.1_A5_T1
description: >
Evaluating LeftHandSideExpression lhs returns Reference type; Reference
base value is an environment record and environment record kind is
object environment record. PutValue(lhs, newValue) uses the initially
created Reference even if the environment binding is no longer present.
Binding in surrounding function environment record is not changed.
flags: [noStrict]
--- |
982 |
S11.3.1_A5_T2.js |
---
info: Operator x++ calls PutValue(lhs, newValue)
es5id: S11.3.1_A5_T2
description: >
Evaluating LeftHandSideExpression lhs returns Reference type; Reference
base value is an environment record and environment record kind is
object environment record. PutValue(lhs, newValue) uses the initially
created Reference even if the environment binding is no longer present.
Binding in surrounding global environment record is not changed.
flags: [noStrict]
--- |
904 |
S11.3.1_A5_T3.js |
---
info: Operator x++ calls PutValue(lhs, newValue)
es5id: S11.3.1_A5_T3
description: >
Evaluating LeftHandSideExpression lhs returns Reference type; Reference
base value is an environment record and environment record kind is
object environment record. PutValue(lhs, newValue) uses the initially
created Reference even if the environment binding is no longer present.
Binding in surrounding object environment record is not changed.
flags: [noStrict]
--- |
1008 |
S11.3.1_A6_T1.js |
---
info: Operator x++ evaluates its reference expression once.
description: >
The operand expression is evaluated exactly once. Operand expression is
MemberExpression: base[prop]. base is the null value.
--- |
730 |
S11.3.1_A6_T2.js |
---
info: Operator x++ evaluates its reference expression once.
description: >
The operand expression is evaluated exactly once. Operand expression is
MemberExpression: base[prop]. base is the undefined value.
--- |
745 |
S11.3.1_A6_T3.js |
---
info: Operator x++ evaluates its reference expression once.
description: >
The operand expression is evaluated exactly once. Operand expression is
MemberExpression: base[prop]. ToPropertyKey(prop) is not called multiple
times.
--- |
584 |
shell.js |
|
0 |
target-cover-id.js |
---
esid: sec-postfix-expressions-static-semantics-early-errors
es6id: 12.4.1
es5id: 11.1.6_A3_T5
description: Applied to a "covered" IdentifierReference
info: |
PostfixExpression :
LeftHandSideExpression ++
LeftHandSideExpression --
- It is an early Reference Error if IsValidSimpleAssignmentTarget of
LeftHandSideExpression is false.
Static Semantics: IsValidSimpleAssignmentTarget
IdentifierReference : Identifier
1. If this IdentifierReference is contained in strict mode code and
StringValue of Identifier is "eval" or "arguments", return false.
2. Return true.
--- |
840 |
target-cover-newtarget.js |
---
esid: sec-update-expressions-static-semantics-early-errors
description: Applied to a "covered" new.target
info: |
UpdateExpression :
LeftHandSideExpression ++
LeftHandSideExpression --
- It is an early Syntax Error if AssignmentTargetType of
LeftHandSideExpression is invalid or strict.
12.3.1.6 Static Semantics: AssignmentTargetType
NewTarget:
new.target
1. Return invalid.
negative:
phase: parse
type: SyntaxError
features: [new.target]
--- |
709 |
target-cover-yieldexpr.js |
---
esid: sec-update-expressions-static-semantics-early-errors
description: Applied to a "covered" YieldExpression
info: |
UpdateExpression :
LeftHandSideExpression ++
LeftHandSideExpression --
- It is an early Syntax Error if AssignmentTargetType of
LeftHandSideExpression is invalid or strict.
12.15.3 Static Semantics: AssignmentTargetType
AssignmentExpression:
YieldExpression
ArrowFunction
AsyncArrowFunction
LeftHandSideExpression = AssignmentExpression
LeftHandSideExpression AssignmentOperator AssignmentExpression
1. Return invalid.
features: [generators]
negative:
phase: parse
type: SyntaxError
--- |
884 |
target-newtarget.js |
---
esid: sec-update-expressions-static-semantics-early-errors
description: Applied to new.target
info: |
UpdateExpression :
LeftHandSideExpression ++
LeftHandSideExpression --
- It is an early Syntax Error if AssignmentTargetType of
LeftHandSideExpression is invalid or strict.
12.3.1.6 Static Semantics: AssignmentTargetType
NewTarget:
new.target
1. Return invalid.
negative:
phase: parse
type: SyntaxError
features: [new.target]
--- |
695 |
this.js |
---
esid: sec-update-expressions-static-semantics-early-errors
description: >
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is not simple. (this)
info: |
sec-static-semantics-assignmenttargettype
PrimaryExpression: this
Return invalid.
sec-update-expressions-static-semantics-early-errors
UpdateExpression: LeftHandSideExpression ++
It is an early Syntax Error if AssignmentTargetType of LeftHandSideExpression is not simple.
negative:
phase: parse
type: SyntaxError
--- |
730 |
whitespace.js |
---
description: White Space between LeftHandSideExpression and "++" are allowed
es5id: 11.3.1_A1.2_T1
esid: postfix-increment-operator
--- |
959 |