Pins
Table of Contents
Introduction
1
Scope
2
Conformance
3
Normative References
◢
4
Overview
4.1
Web Scripting
◢
4.2
ECMAScript Overview
4.2.1
Objects
4.2.2
The Strict Variant of ECMAScript
◢
4.3
Terms and Definitions
4.3.1
type
4.3.2
primitive value
4.3.3
object
4.3.4
constructor
4.3.5
prototype
4.3.6
ordinary object
4.3.7
exotic object
4.3.8
standard object
4.3.9
built-in object
4.3.10
undefined value
4.3.11
Undefined type
4.3.12
null value
4.3.13
Null type
4.3.14
Boolean value
4.3.15
Boolean type
4.3.16
Boolean object
4.3.17
String value
4.3.18
String type
4.3.19
String object
4.3.20
Number value
4.3.21
Number type
4.3.22
Number object
4.3.23
Infinity
4.3.24
NaN
4.3.25
Symbol value
4.3.26
Symbol type
4.3.27
Symbol object
4.3.28
function
4.3.29
built-in function
4.3.30
property
4.3.31
method
4.3.32
built-in method
4.3.33
attribute
4.3.34
own property
4.3.35
inherited property
4.4
Organization of This Specification
◢
5
Notational Conventions
◢
5.1
Syntactic and Lexical Grammars
5.1.1
Context-Free Grammars
5.1.2
The Lexical and RegExp Grammars
5.1.3
The Numeric String Grammar
5.1.4
The Syntactic Grammar
5.1.5
Grammar Notation
5.2
Algorithm Conventions
5.3
Static Semantic Rules
◢
6
ECMAScript Data Types and Values
◢
6.1
ECMAScript Language Types
6.1.1
The Undefined Type
6.1.2
The Null Type
6.1.3
The Boolean Type
6.1.4
The String Type
◢
6.1.5
The Symbol Type
6.1.5.1
Well-Known Symbols
6.1.6
The Number Type
◢
6.1.7
The Object Type
6.1.7.1
Property Attributes
6.1.7.2
Object Internal Methods and Internal Slots
6.1.7.3
Invariants of the Essential Internal Methods
6.1.7.4
Well-Known Intrinsic Objects
◢
6.2
ECMAScript Specification Types
6.2.1
The List and Record Specification Types
6.2.2
The Set and Relation Specification Types
◢
6.2.3
The Completion Record Specification Type
6.2.3.1
NormalCompletion
6.2.3.2
Implicit Completion Values
6.2.3.3
Throw an Exception
6.2.3.4
ReturnIfAbrupt
6.2.3.5
UpdateEmpty (
completionRecord
,
value
)
◢
6.2.4
The Reference Specification Type
6.2.4.1
GetValue (
V
)
6.2.4.2
PutValue (
V
,
W
)
6.2.4.3
GetThisValue (
V
)
6.2.4.4
InitializeReferencedBinding (
V
,
W
)
◢
6.2.5
The Property Descriptor Specification Type
6.2.5.1
IsAccessorDescriptor (
Desc
)
6.2.5.2
IsDataDescriptor (
Desc
)
6.2.5.3
IsGenericDescriptor (
Desc
)
6.2.5.4
FromPropertyDescriptor (
Desc
)
6.2.5.5
ToPropertyDescriptor (
Obj
)
6.2.5.6
CompletePropertyDescriptor (
Desc
)
6.2.6
The Lexical Environment and Environment Record Specification Types
◢
6.2.7
Data Blocks
6.2.7.1
CreateByteDataBlock (
size
)
6.2.7.2
CreateSharedByteDataBlock(
size
)
6.2.7.3
CopyDataBlockBytes (
toBlock
,
toIndex
,
fromBlock
,
fromIndex
,
count
)
◢
7
Abstract Operations
◢
7.1
Type Conversion
◢
7.1.1
ToPrimitive (
input
[ ,
PreferredType
] )
7.1.1.1
OrdinaryToPrimitive (
O
,
hint
)
7.1.2
ToBoolean (
argument
)
◢
7.1.3
ToNumber (
argument
)
◢
7.1.3.1
ToNumber Applied to the String Type
7.1.3.1.1
RS: MV
7.1.4
ToInteger (
argument
)
7.1.5
ToInt32 (
argument
)
7.1.6
ToUint32 (
argument
)
7.1.7
ToInt16 (
argument
)
7.1.8
ToUint16 (
argument
)
7.1.9
ToInt8 (
argument
)
7.1.10
ToUint8 (
argument
)
7.1.11
ToUint8Clamp (
argument
)
◢
7.1.12
ToString (
argument
)
7.1.12.1
ToString Applied to the Number Type
7.1.13
ToObject (
argument
)
7.1.14
ToPropertyKey (
argument
)
7.1.15
ToLength (
argument
)
7.1.16
CanonicalNumericIndexString (
argument
)
7.1.17
ToIndex (
value
)
◢
7.2
Testing and Comparison Operations
7.2.1
RequireObjectCoercible (
argument
)
7.2.2
IsArray (
argument
)
7.2.3
IsCallable (
argument
)
7.2.4
IsConstructor (
argument
)
7.2.5
IsExtensible (
O
)
7.2.6
IsInteger (
argument
)
7.2.7
IsPropertyKey (
argument
)
7.2.8
IsRegExp (
argument
)
7.2.9
SameValue (
x
,
y
)
7.2.10
SameValueZero (
x
,
y
)
7.2.11
SameValueNonNumber (
x
,
y
)
7.2.12
Abstract Relational Comparison
7.2.13
Abstract Equality Comparison
7.2.14
Strict Equality Comparison
◢
7.3
Operations on Objects
7.3.1
Get (
O
,
P
)
7.3.2
GetV (
V
,
P
)
7.3.3
Set (
O
,
P
,
V
,
Throw
)
7.3.4
CreateDataProperty (
O
,
P
,
V
)
7.3.5
CreateMethodProperty (
O
,
P
,
V
)
7.3.6
CreateDataPropertyOrThrow (
O
,
P
,
V
)
7.3.7
DefinePropertyOrThrow (
O
,
P
,
desc
)
7.3.8
DeletePropertyOrThrow (
O
,
P
)
7.3.9
GetMethod (
V
,
P
)
7.3.10
HasProperty (
O
,
P
)
7.3.11
HasOwnProperty (
O
,
P
)
7.3.12
Call (
F
,
V
[ ,
argumentsList
] )
7.3.13
Construct (
F
[ ,
argumentsList
[ ,
newTarget
]] )
7.3.14
SetIntegrityLevel (
O
,
level
)
7.3.15
TestIntegrityLevel (
O
,
level
)
7.3.16
CreateArrayFromList (
elements
)
7.3.17
CreateListFromArrayLike (
obj
[ ,
elementTypes
] )
7.3.18
Invoke (
V
,
P
[ ,
argumentsList
] )
7.3.19
OrdinaryHasInstance (
C
,
O
)
7.3.20
SpeciesConstructor (
O
,
defaultConstructor
)
7.3.21
EnumerableOwnProperties (
O
,
kind
)
7.3.22
GetFunctionRealm (
obj
)
◢
7.4
Operations on Iterator Objects
7.4.1
GetIterator (
obj
[ ,
method
] )
7.4.2
IteratorNext (
iterator
[ ,
value
] )
7.4.3
IteratorComplete (
iterResult
)
7.4.4
IteratorValue (
iterResult
)
7.4.5
IteratorStep (
iterator
)
7.4.6
IteratorClose (
iterator
,
completion
)
7.4.7
CreateIterResultObject (
value
,
done
)
◢
7.4.8
CreateListIterator (
list
)
7.4.8.1
ListIterator next( )
◢
8
Executable Code and Execution Contexts
◢
8.1
Lexical Environments
◢
8.1.1
Environment Records
◢
8.1.1.1
Declarative Environment Records
8.1.1.1.1
HasBinding (
N
)
8.1.1.1.2
CreateMutableBinding (
N
,
D
)
8.1.1.1.3
CreateImmutableBinding (
N
,
S
)
8.1.1.1.4
InitializeBinding (
N
,
V
)
8.1.1.1.5
SetMutableBinding (
N
,
V
,
S
)
8.1.1.1.6
GetBindingValue (
N
,
S
)
8.1.1.1.7
DeleteBinding (
N
)
8.1.1.1.8
HasThisBinding ( )
8.1.1.1.9
HasSuperBinding ( )
8.1.1.1.10
WithBaseObject ( )
◢
8.1.1.2
Object Environment Records
8.1.1.2.1
HasBinding (
N
)
8.1.1.2.2
CreateMutableBinding (
N
,
D
)
8.1.1.2.3
CreateImmutableBinding (
N
,
S
)
8.1.1.2.4
InitializeBinding (
N
,
V
)
8.1.1.2.5
SetMutableBinding (
N
,
V
,
S
)
8.1.1.2.6
GetBindingValue (
N
,
S
)
8.1.1.2.7
DeleteBinding (
N
)
8.1.1.2.8
HasThisBinding ( )
8.1.1.2.9
HasSuperBinding ( )
8.1.1.2.10
WithBaseObject ( )
◢
8.1.1.3
Function Environment Records
8.1.1.3.1
BindThisValue (
V
)
8.1.1.3.2
HasThisBinding ( )
8.1.1.3.3
HasSuperBinding ( )
8.1.1.3.4
GetThisBinding ( )
8.1.1.3.5
GetSuperBase ( )
◢
8.1.1.4
Global Environment Records
8.1.1.4.1
HasBinding (
N
)
8.1.1.4.2
CreateMutableBinding (
N
,
D
)
8.1.1.4.3
CreateImmutableBinding (
N
,
S
)
8.1.1.4.4
InitializeBinding (
N
,
V
)
8.1.1.4.5
SetMutableBinding (
N
,
V
,
S
)
8.1.1.4.6
GetBindingValue (
N
,
S
)
8.1.1.4.7
DeleteBinding (
N
)
8.1.1.4.8
HasThisBinding ( )
8.1.1.4.9
HasSuperBinding ( )
8.1.1.4.10
WithBaseObject ( )
8.1.1.4.11
GetThisBinding ( )
8.1.1.4.12
HasVarDeclaration (
N
)
8.1.1.4.13
HasLexicalDeclaration (
N
)
8.1.1.4.14
HasRestrictedGlobalProperty (
N
)
8.1.1.4.15
CanDeclareGlobalVar (
N
)
8.1.1.4.16
CanDeclareGlobalFunction (
N
)
8.1.1.4.17
CreateGlobalVarBinding (
N
,
D
)
8.1.1.4.18
CreateGlobalFunctionBinding (
N
,
V
,
D
)
◢
8.1.1.5
Module Environment Records
8.1.1.5.1
GetBindingValue (
N
,
S
)
8.1.1.5.2
DeleteBinding (
N
)
8.1.1.5.3
HasThisBinding ( )
8.1.1.5.4
GetThisBinding ( )
8.1.1.5.5
CreateImportBinding (
N
,
M
,
N2
)
◢
8.1.2
Lexical Environment Operations
8.1.2.1
GetIdentifierReference (
lex
,
name
,
strict
)
8.1.2.2
NewDeclarativeEnvironment (
E
)
8.1.2.3
NewObjectEnvironment (
O
,
E
)
8.1.2.4
NewFunctionEnvironment (
F
,
newTarget
)
8.1.2.5
NewGlobalEnvironment (
G
,
thisValue
)
8.1.2.6
NewModuleEnvironment (
E
)
◢
8.2
Realms
8.2.1
CreateRealm ( )
8.2.2
CreateIntrinsics (
realmRec
)
8.2.3
SetRealmGlobalObject (
realmRec
,
globalObj
,
thisValue
)
8.2.4
SetDefaultGlobalBindings (
realmRec
)
◢
8.3
Execution Contexts
8.3.1
GetActiveScriptOrModule ( )
8.3.2
ResolveBinding (
name
[ ,
env
] )
8.3.3
GetThisEnvironment ( )
8.3.4
ResolveThisBinding ( )
8.3.5
GetNewTarget ( )
8.3.6
GetGlobalObject ( )
◢
8.4
Jobs and Job Queues
8.4.1
EnqueueJob (
queueName
,
job
,
arguments
)
8.5
InitializeHostDefinedRealm ( )
8.6
RunJobs ( )
◢
8.7
Agents
8.7.1
AgentSignifier( )
8.7.2
AgentCanSuspend( )
8.8
Agent Clusters
8.9
Forward Progress
◢
9
Ordinary and Exotic Objects Behaviours
◢
9.1
Ordinary Object Internal Methods and Internal Slots
◢
9.1.1
[[GetPrototypeOf]] ( )
9.1.1.1
OrdinaryGetPrototypeOf (
O
)
◢
9.1.2
[[SetPrototypeOf]] (
V
)
9.1.2.1
OrdinarySetPrototypeOf (
O
,
V
)
◢
9.1.3
[[IsExtensible]] ( )
9.1.3.1
OrdinaryIsExtensible (
O
)
◢
9.1.4
[[PreventExtensions]] ( )
9.1.4.1
OrdinaryPreventExtensions (
O
)
◢
9.1.5
[[GetOwnProperty]] (
P
)
9.1.5.1
OrdinaryGetOwnProperty (
O
,
P
)
◢
9.1.6
[[DefineOwnProperty]] (
P
,
Desc
)
9.1.6.1
OrdinaryDefineOwnProperty (
O
,
P
,
Desc
)
9.1.6.2
IsCompatiblePropertyDescriptor (
Extensible
,
Desc
,
Current
)
9.1.6.3
ValidateAndApplyPropertyDescriptor (
O
,
P
,
extensible
,
Desc
,
current
)
◢
9.1.7
[[HasProperty]](
P
)
9.1.7.1
OrdinaryHasProperty (
O
,
P
)
◢
9.1.8
[[Get]] (
P
,
Receiver
)
9.1.8.1
OrdinaryGet (
O
,
P
,
Receiver
)
◢
9.1.9
[[Set]] (
P
,
V
,
Receiver
)
9.1.9.1
OrdinarySet (
O
,
P
,
V
,
Receiver
)
◢
9.1.10
[[Delete]] (
P
)
9.1.10.1
OrdinaryDelete (
O
,
P
)
◢
9.1.11
[[OwnPropertyKeys]] ( )
9.1.11.1
OrdinaryOwnPropertyKeys (
O
)
9.1.12
ObjectCreate (
proto
[ ,
internalSlotsList
] )
9.1.13
OrdinaryCreateFromConstructor (
constructor
,
intrinsicDefaultProto
[ ,
internalSlotsList
] )
9.1.14
GetPrototypeFromConstructor (
constructor
,
intrinsicDefaultProto
)
◢
9.2
ECMAScript Function Objects
◢
9.2.1
[[Call]] (
thisArgument
,
argumentsList
)
9.2.1.1
PrepareForOrdinaryCall (
F
,
newTarget
)
9.2.1.2
OrdinaryCallBindThis (
F
,
calleeContext
,
thisArgument
)
9.2.1.3
OrdinaryCallEvaluateBody (
F
,
argumentsList
)
9.2.2
[[Construct]] (
argumentsList
,
newTarget
)
9.2.3
FunctionAllocate (
functionPrototype
,
strict
,
functionKind
)
9.2.4
FunctionInitialize (
F
,
kind
,
ParameterList
,
Body
,
Scope
)
9.2.5
FunctionCreate (
kind
,
ParameterList
,
Body
,
Scope
,
Strict
[ ,
prototype
] )
9.2.6
GeneratorFunctionCreate (
kind
,
ParameterList
,
Body
,
Scope
,
Strict
)
◢
9.2.7
AddRestrictedFunctionProperties (
F
,
realm
)
9.2.7.1
%ThrowTypeError% ( )
9.2.8
MakeConstructor (
F
[ ,
writablePrototype
[ ,
prototype
] ] )
9.2.9
MakeClassConstructor (
F
)
9.2.10
MakeMethod (
F
,
homeObject
)
9.2.11
SetFunctionName (
F
,
name
[ ,
prefix
] )
9.2.12
FunctionDeclarationInstantiation (
func
,
argumentsList
)
◢
9.3
Built-in Function Objects
9.3.1
[[Call]] (
thisArgument
,
argumentsList
)
9.3.2
[[Construct]] (
argumentsList
,
newTarget
)
9.3.3
CreateBuiltinFunction (
realm
,
steps
,
prototype
[ ,
internalSlotsList
] )
◢
9.4
Built-in Exotic Object Internal Methods and Slots
◢
9.4.1
Bound Function Exotic Objects
9.4.1.1
[[Call]] (
thisArgument
,
argumentsList
)
9.4.1.2
[[Construct]] (
argumentsList
,
newTarget
)
9.4.1.3
BoundFunctionCreate (
targetFunction
,
boundThis
,
boundArgs
)
◢
9.4.2
Array Exotic Objects
9.4.2.1
[[DefineOwnProperty]] (
P
,
Desc
)
9.4.2.2
ArrayCreate (
length
[ ,
proto
] )
9.4.2.3
ArraySpeciesCreate (
originalArray
,
length
)
9.4.2.4
ArraySetLength (
A
,
Desc
)
◢
9.4.3
String Exotic Objects
9.4.3.1
[[GetOwnProperty]] (
P
)
9.4.3.2
[[DefineOwnProperty]] (
P
,
Desc
)
9.4.3.3
[[OwnPropertyKeys]] ( )
9.4.3.4
StringCreate (
value
,
prototype
)
9.4.3.5
StringGetOwnProperty (
S
,
P
)
◢
9.4.4
Arguments Exotic Objects
9.4.4.1
[[GetOwnProperty]] (
P
)
9.4.4.2
[[DefineOwnProperty]] (
P
,
Desc
)
9.4.4.3
[[Get]] (
P
,
Receiver
)
9.4.4.4
[[Set]] (
P
,
V
,
Receiver
)
9.4.4.5
[[Delete]] (
P
)
9.4.4.6
CreateUnmappedArgumentsObject (
argumentsList
)
◢
9.4.4.7
CreateMappedArgumentsObject (
func
,
formals
,
argumentsList
,
env
)
9.4.4.7.1
MakeArgGetter (
name
,
env
)
9.4.4.7.2
MakeArgSetter (
name
,
env
)
◢
9.4.5
Integer Indexed Exotic Objects
9.4.5.1
[[GetOwnProperty]] (
P
)
9.4.5.2
[[HasProperty]](
P
)
9.4.5.3
[[DefineOwnProperty]] (
P
,
Desc
)
9.4.5.4
[[Get]] (
P
,
Receiver
)
9.4.5.5
[[Set]] (
P
,
V
,
Receiver
)
9.4.5.6
[[OwnPropertyKeys]] ( )
9.4.5.7
IntegerIndexedObjectCreate (
prototype
,
internalSlotsList
)
9.4.5.8
IntegerIndexedElementGet (
O
,
index
)
9.4.5.9
IntegerIndexedElementSet (
O
,
index
,
value
)
◢
9.4.6
Module Namespace Exotic Objects
9.4.6.1
[[SetPrototypeOf]] (
V
)
9.4.6.2
[[IsExtensible]] ( )
9.4.6.3
[[PreventExtensions]] ( )
9.4.6.4
[[GetOwnProperty]] (
P
)
9.4.6.5
[[DefineOwnProperty]] (
P
,
Desc
)
9.4.6.6
[[HasProperty]] (
P
)
9.4.6.7
[[Get]] (
P
,
Receiver
)
9.4.6.8
[[Set]] (
P
,
V
,
Receiver
)
9.4.6.9
[[Delete]] (
P
)
9.4.6.10
[[OwnPropertyKeys]] ( )
9.4.6.11
ModuleNamespaceCreate (
module
,
exports
)
◢
9.4.7
Immutable Prototype Exotic Objects
9.4.7.1
[[SetPrototypeOf]] (
V
)
9.4.7.2
SetImmutablePrototype (
O
,
V
)
◢
9.5
Proxy Object Internal Methods and Internal Slots
9.5.1
[[GetPrototypeOf]] ( )
9.5.2
[[SetPrototypeOf]] (
V
)
9.5.3
[[IsExtensible]] ( )
9.5.4
[[PreventExtensions]] ( )
9.5.5
[[GetOwnProperty]] (
P
)
9.5.6
[[DefineOwnProperty]] (
P
,
Desc
)
9.5.7
[[HasProperty]] (
P
)
9.5.8
[[Get]] (
P
,
Receiver
)
9.5.9
[[Set]] (
P
,
V
,
Receiver
)
9.5.10
[[Delete]] (
P
)
9.5.11
[[OwnPropertyKeys]] ( )
9.5.12
[[Call]] (
thisArgument
,
argumentsList
)
9.5.13
[[Construct]] (
argumentsList
,
newTarget
)
9.5.14
ProxyCreate (
target
,
handler
)
◢
10
ECMAScript Language: Source Code
◢
10.1
Source Text
10.1.1
SS: UTF16Encoding (
cp
)
10.1.2
SS: UTF16Decode(
lead
,
trail
)
◢
10.2
Types of Source Code
10.2.1
Strict Mode Code
10.2.2
Non-ECMAScript Functions
◢
11
ECMAScript Language: Lexical Grammar
11.1
Unicode Format-Control Characters
11.2
White Space
11.3
Line Terminators
11.4
Comments
11.5
Tokens
◢
11.6
Names and Keywords
◢
11.6.1
Identifier Names
11.6.1.1
SS: Early Errors
11.6.1.2
SS: StringValue
◢
11.6.2
Reserved Words
11.6.2.1
Keywords
11.6.2.2
Future Reserved Words
11.7
Punctuators
◢
11.8
Literals
11.8.1
Null Literals
11.8.2
Boolean Literals
◢
11.8.3
Numeric Literals
11.8.3.1
SS: MV
◢
11.8.4
String Literals
11.8.4.1
SS: Early Errors
11.8.4.2
SS: StringValue
11.8.4.3
SS: SV
◢
11.8.5
Regular Expression Literals
11.8.5.1
SS: Early Errors
11.8.5.2
SS: BodyText
11.8.5.3
SS: FlagText
◢
11.8.6
Template Literal Lexical Components
11.8.6.1
SS: TV and TRV
◢
11.9
Automatic Semicolon Insertion
11.9.1
Rules of Automatic Semicolon Insertion
11.9.2
Examples of Automatic Semicolon Insertion
◢
12
ECMAScript Language: Expressions
◢
12.1
Identifiers
12.1.1
SS: Early Errors
12.1.2
SS: BoundNames
12.1.3
SS: IsValidSimpleAssignmentTarget
12.1.4
SS: StringValue
◢
12.1.5
RS: BindingInitialization
12.1.5.1
RS: InitializeBoundName (
name
,
value
,
environment
)
12.1.6
RS: Evaluation
◢
12.2
Primary Expression
◢
12.2.1
Semantics
12.2.1.1
SS: CoveredParenthesizedExpression
12.2.1.2
SS: HasName
12.2.1.3
SS: IsFunctionDefinition
12.2.1.4
SS: IsIdentifierRef
12.2.1.5
SS: IsValidSimpleAssignmentTarget
◢
12.2.2
The
this
Keyword
12.2.2.1
RS: Evaluation
12.2.3
Identifier Reference
◢
12.2.4
Literals
12.2.4.1
RS: Evaluation
◢
12.2.5
Array Initializer
12.2.5.1
SS: ElisionWidth
12.2.5.2
RS: ArrayAccumulation
12.2.5.3
RS: Evaluation
◢
12.2.6
Object Initializer
12.2.6.1
SS: Early Errors
12.2.6.2
SS: ComputedPropertyContains
12.2.6.3
SS: Contains
12.2.6.4
SS: IsComputedPropertyKey
12.2.6.5
SS: PropName
12.2.6.6
SS: PropertyNameList
12.2.6.7
RS: Evaluation
12.2.6.8
RS: PropertyDefinitionEvaluation
12.2.7
Function Defining Expressions
◢
12.2.8
Regular Expression Literals
12.2.8.1
SS: Early Errors
12.2.8.2
RS: Evaluation
◢
12.2.9
Template Literals
12.2.9.1
SS: TemplateStrings
12.2.9.2
RS: ArgumentListEvaluation
12.2.9.3
RS: GetTemplateObject (
templateLiteral
)
12.2.9.4
RS: SubstitutionEvaluation
12.2.9.5
RS: Evaluation
◢
12.2.10
The Grouping Operator
12.2.10.1
SS: Early Errors
12.2.10.2
SS: IsFunctionDefinition
12.2.10.3
SS: IsValidSimpleAssignmentTarget
12.2.10.4
RS: Evaluation
◢
12.3
Left-Hand-Side Expressions
◢
12.3.1
Static Semantics
12.3.1.1
SS: CoveredCallExpression
12.3.1.2
SS: Contains
12.3.1.3
SS: IsFunctionDefinition
12.3.1.4
SS: IsDestructuring
12.3.1.5
SS: IsIdentifierRef
12.3.1.6
SS: IsValidSimpleAssignmentTarget
◢
12.3.2
Property Accessors
12.3.2.1
RS: Evaluation
◢
12.3.3
The
new
Operator
◢
12.3.3.1
RS: Evaluation
12.3.3.1.1
RS: EvaluateNew (
constructExpr
,
arguments
)
◢
12.3.4
Function Calls
12.3.4.1
RS: Evaluation
12.3.4.2
RS: EvaluateCall(
ref
,
arguments
,
tailPosition
)
12.3.4.3
RS: EvaluateDirectCall(
func
,
thisValue
,
arguments
,
tailPosition
)
◢
12.3.5
The
super
Keyword
12.3.5.1
RS: Evaluation
12.3.5.2
RS: GetSuperConstructor ( )
12.3.5.3
RS: MakeSuperPropertyReference (
propertyKey
,
strict
)
◢
12.3.6
Argument Lists
12.3.6.1
RS: ArgumentListEvaluation
◢
12.3.7
Tagged Templates
12.3.7.1
RS: Evaluation
◢
12.3.8
Meta Properties
12.3.8.1
RS: Evaluation
◢
12.4
Update Expressions
12.4.1
SS: Early Errors
12.4.2
SS: IsFunctionDefinition
12.4.3
SS: IsValidSimpleAssignmentTarget
◢
12.4.4
Postfix Increment Operator
12.4.4.1
RS: Evaluation
◢
12.4.5
Postfix Decrement Operator
12.4.5.1
RS: Evaluation
◢
12.4.6
Prefix Increment Operator
12.4.6.1
RS: Evaluation
◢
12.4.7
Prefix Decrement Operator
12.4.7.1
RS: Evaluation
◢
12.5
Unary Operators
12.5.1
SS: IsFunctionDefinition
12.5.2
SS: IsValidSimpleAssignmentTarget
◢
12.5.3
The
delete
Operator
12.5.3.1
SS: Early Errors
12.5.3.2
RS: Evaluation
◢
12.5.4
The
void
Operator
12.5.4.1
RS: Evaluation
◢
12.5.5
The
typeof
Operator
12.5.5.1
RS: Evaluation
◢
12.5.6
Unary
+
Operator
12.5.6.1
RS: Evaluation
◢
12.5.7
Unary
-
Operator
12.5.7.1
RS: Evaluation
◢
12.5.8
Bitwise NOT Operator (
~
)
12.5.8.1
RS: Evaluation
◢
12.5.9
Logical NOT Operator (
!
)
12.5.9.1
RS: Evaluation
◢
12.6
Exponentiation Operator
12.6.1
SS: IsFunctionDefinition
12.6.2
SS: IsValidSimpleAssignmentTarget
12.6.3
RS: Evaluation
12.6.4
Applying the
**
Operator
◢
12.7
Multiplicative Operators
12.7.1
SS: IsFunctionDefinition
12.7.2
SS: IsValidSimpleAssignmentTarget
◢
12.7.3
RS: Evaluation
12.7.3.1
Applying the
*
Operator
12.7.3.2
Applying the
/
Operator
12.7.3.3
Applying the
%
Operator
◢
12.8
Additive Operators
12.8.1
SS: IsFunctionDefinition
12.8.2
SS: IsValidSimpleAssignmentTarget
◢
12.8.3
The Addition Operator (
+
)
12.8.3.1
RS: Evaluation
◢
12.8.4
The Subtraction Operator (
-
)
12.8.4.1
RS: Evaluation
12.8.5
Applying the Additive Operators to Numbers
◢
12.9
Bitwise Shift Operators
12.9.1
SS: IsFunctionDefinition
12.9.2
SS: IsValidSimpleAssignmentTarget
◢
12.9.3
The Left Shift Operator (
<<
)
12.9.3.1
RS: Evaluation
◢
12.9.4
The Signed Right Shift Operator (
>>
)
12.9.4.1
RS: Evaluation
◢
12.9.5
The Unsigned Right Shift Operator (
>>>
)
12.9.5.1
RS: Evaluation
◢
12.10
Relational Operators
12.10.1
SS: IsFunctionDefinition
12.10.2
SS: IsValidSimpleAssignmentTarget
12.10.3
RS: Evaluation
12.10.4
RS: InstanceofOperator (
O
,
C
)
◢
12.11
Equality Operators
12.11.1
SS: IsFunctionDefinition
12.11.2
SS: IsValidSimpleAssignmentTarget
12.11.3
RS: Evaluation
◢
12.12
Binary Bitwise Operators
12.12.1
SS: IsFunctionDefinition
12.12.2
SS: IsValidSimpleAssignmentTarget
12.12.3
RS: Evaluation
◢
12.13
Binary Logical Operators
12.13.1
SS: IsFunctionDefinition
12.13.2
SS: IsValidSimpleAssignmentTarget
12.13.3
RS: Evaluation
◢
12.14
Conditional Operator (
? :
)
12.14.1
SS: IsFunctionDefinition
12.14.2
SS: IsValidSimpleAssignmentTarget