Skip to content

Glossary

Each entry is derived from a <dfn> element in the official ECMAScript spec.html (287 terms in this edition) and links to where the term is defined. This glossary page is generated as a reading aid and is not itself part of the specification.

#

𝔽
A conversion from a mathematical value or extended mathematical value x to a Number is denoted as "the Number value for x" or 𝔽(x), and is defined in 6.1.6.1. A conversion from an integer x to a BigInt is denoted as "the BigInt value for … §5.2.5 Mathematical Operations
A conversion from a Number or BigInt x to a mathematical value is denoted as "the mathematical value of x", or ℝ(x). The mathematical value of +0𝔽 and -0𝔽 is the mathematical value 0. The mathematical value of non-finite values is not de… §5.2.5 Mathematical Operations
A conversion from an integer x to a BigInt is denoted as "the BigInt value for x" or ℤ(x). A conversion from a Number or BigInt x to a mathematical value is denoted as "the mathematical value of x", or ℝ(x). The mathematical value of +0𝔽 … §5.2.5 Mathematical Operations

A

abrupt completion
The term “abrupt completion” refers to any completion with a [[Type]] value other than normal. §6.2.3 The Completion Record Specification Type
Abstract Closure
The Abstract Closure specification type is used to refer to algorithm steps together with a collection of values. Abstract Closures are meta-values and are invoked using function application style such as closure(arg1, arg2). Like abstract… §6.2.7 The Abstract Closure Specification Type
abstract operations
In order to facilitate their use in multiple parts of this specification, some algorithms, called abstract operations, are named and written in parameterized functional form so that they may be referenced by name from within other algorith… §5.2.1 Abstract Operations
accessor property
An accessor property associates a key value with one or two accessor functions, and a set of Boolean attributes. The accessor functions are used to store or retrieve an ECMAScript language value that is associated with the property. §6.1.7 The Object Type
active function object
The value of the Function component of the running execution context is also called the active function object. §9.3 Execution Contexts
active script or module
At any particular time, scriptOrModule (a Script Record, a Module Record, or null) is the active script or module if all of the following conditions are true: §9.4 Jobs and Host Operations to Enqueue Jobs
agent
An agent comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an Agent Record, and an executing thread. Except for the executing thread, the constituents of an agent belong exclusively … §9.6 Agents
agent cluster
An agent cluster is a maximal set of agents that can communicate by operating on shared memory. §9.7 Agent Clusters
Agent Events Record
An Agent Events Record is a Record with the following fields. §29.2 Agent Events Records
agent-order slice
Let an agent-order slice be the subset of the agent-order pertaining to a single agent. §29.11 Shared Memory Guidelines
Agent Record
An agent comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an Agent Record, and an executing thread. Except for the executing thread, the constituents of an agent belong exclusively … §9.6 Agents
%AggregateError%
is %AggregateError%. §20.5.7.1 The AggregateError Constructor
%AggregateError.prototype%
is %AggregateError.prototype%. §20.5.7.3 Properties of the AggregateError Prototype Object
AggregateError prototype object
The AggregateError prototype object: §20.5.7.3 Properties of the AggregateError Prototype Object
arguments exotic object
An object is an arguments exotic object if its internal methods use the following implementations, with the ones not specified here using those found in 10.1. These methods are installed in CreateMappedArgumentsObject. §10.4.4 Arguments Exotic Objects
%Array%
is %Array%. §23.1.1 The Array Constructor
%ArrayBuffer%
is %ArrayBuffer%. §25.1.3 The ArrayBuffer Constructor
%ArrayBuffer.prototype%
is %ArrayBuffer.prototype%. §25.1.5 Properties of the ArrayBuffer Prototype Object
ArrayBuffer prototype object
The ArrayBuffer prototype object: §25.1.5 Properties of the ArrayBuffer Prototype Object
Array exotic object
An object is an Array exotic object (or simply, an Array object) if its [[DefineOwnProperty]] internal method uses the following implementation, and its other essential internal methods use the definitions found in 10.1. These methods are … §10.4.2 Array Exotic Objects
array index
An array index is an integer index whose numeric value i is in the range +0𝔽 ≤ i < 𝔽(232 - 1). §6.1.7 The Object Type
%ArrayIteratorPrototype%
The %ArrayIteratorPrototype% object: §23.1.5.2 The %ArrayIteratorPrototype% Object
array-like object
An array-like object is any object for which this operation returns an integer rather than an abrupt completion. §7.3.18 LengthOfArrayLike ( obj )
%Array.prototype%
is %Array.prototype%. §23.1.3 Properties of the Array Prototype Object
Array prototype object
The Array prototype object: §23.1.3 Properties of the Array Prototype Object
Assert
A step that begins with “Assert:” asserts an invariant condition of its algorithm. Such assertions are used to make explicit algorithmic invariants that would otherwise be implicit. Such assertions add no additional semantic requirements a… §5.2 Algorithm Conventions
%AsyncFromSyncIteratorPrototype%
The %AsyncFromSyncIteratorPrototype% object: §27.1.4.2 The %AsyncFromSyncIteratorPrototype% Object
%AsyncFunction%
is %AsyncFunction%. §27.7.1 The AsyncFunction Constructor
%AsyncFunction.prototype%
is %AsyncFunction.prototype%. §27.7.3 Properties of the AsyncFunction Prototype Object
AsyncFunction prototype object
The AsyncFunction prototype object: §27.7.3 Properties of the AsyncFunction Prototype Object
%AsyncGeneratorFunction%
is %AsyncGeneratorFunction%. §27.4.1 The AsyncGeneratorFunction Constructor
%AsyncGeneratorFunction.prototype%
is %AsyncGeneratorFunction.prototype%. §27.4.3 Properties of the AsyncGeneratorFunction Prototype Object
AsyncGeneratorFunction prototype object
The AsyncGeneratorFunction prototype object: §27.4.3 Properties of the AsyncGeneratorFunction Prototype Object
%AsyncGeneratorFunction.prototype.prototype%
is %AsyncGeneratorFunction.prototype.prototype%. §27.6.1 Properties of the AsyncGenerator Prototype Object
AsyncGenerator prototype object
The AsyncGenerator prototype object: §27.6.1 Properties of the AsyncGenerator Prototype Object
@@asyncIterator
Specification Name [[Description]] Value and Purpose @@asyncIterator "Symbol.asyncIterator" A method that returns the default AsyncIterator for an object. Called by the semantics of the for-await-of statement. @@hasInstance "Symbol.hasInst… §6.1.5.1 Well-Known Symbols
%AsyncIteratorPrototype%
The %AsyncIteratorPrototype% object: §27.1.3 The %AsyncIteratorPrototype% Object
%Atomics%
is %Atomics%. §25.4 The Atomics Object

B

%BigInt%
is %BigInt%. §21.2.1 The BigInt Constructor
%BigInt64Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%BigInt.prototype%
is %BigInt.prototype%. §21.2.3 Properties of the BigInt Prototype Object
BigInt prototype object
The BigInt prototype object: §21.2.3 Properties of the BigInt Prototype Object
%BigUint64Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Boolean%
is %Boolean%. §20.3.1 The Boolean Constructor
%Boolean.prototype%
is %Boolean.prototype%. §20.3.3 Properties of the Boolean Prototype Object
Boolean prototype object
The Boolean prototype object: §20.3.3 Properties of the Boolean Prototype Object
bound function exotic object
An object is a bound function exotic object if its [[Call]] and (if applicable) [[Construct]] internal methods use the following implementations, and its other essential internal methods use the definitions found in 10.1. These methods are… §10.4.1 Bound Function Exotic Objects
byte value
A byte value is an integer value in the range 0 through 255, inclusive. A Data Block value is created with a fixed number of bytes that each have the initial value 0. §6.2.8 Data Blocks

C

candidate execution
A candidate execution of the evaluation of an agent cluster is a Record with the following fields. §29.4 Candidate Executions
chain production
A chain production is a production that has exactly one nonterminal symbol on its right-hand side along with zero or more terminal symbols. §5.1.1 Context-Free Grammars
Chosen Value Record
A Chosen Value Record is a Record with the following fields. §29.3 Chosen Value Records
clamping
The phrase "the result of clamping x between lower and upper" (where x is an extended mathematical value and lower and upper are mathematical values such that lower ≤ upper) produces lower if x < lower, produces upper if x > upper, and oth… §5.2.5 Mathematical Operations
Completion Record
Such values are referred to as Completion Records. §6.2.3 The Completion Record Specification Type
conditional keyword
The term conditional keyword, or contextual keyword, is sometimes used to refer to the keywords that fall in the last three categories, and thus can be used as identifiers in some contexts and as keywords in others. §12.6.2 Keywords and Reserved Words
constructor
A constructor is an object that supports the [[Construct]] internal method. Every object that supports [[Construct]] must support [[Call]]; that is, every constructor must be a function object. Therefore, a constructor may also be referred… §6.1.7.2 Object Internal Methods and Internal Slots
contention
EnterCriticalSection has contention when an agent attempting to enter the critical section must wait for another agent to leave it. When there is no contention, FIFO order of EnterCriticalSection calls is observable. When there is contenti… §25.4.1.4 EnterCriticalSection ( WL )
contextual keyword
The term conditional keyword, or contextual keyword, is sometimes used to refer to the keywords that fall in the last three categories, and thus can be used as identifiers in some contexts and as keywords in others. §12.6.2 Keywords and Reserved Words
covered
Subsequently, algorithms access the result of the parse using a phrase of the form "the N that is covered by P". This will always be a Parse Node (an instance of N, unique for a given P), since any parsing failure would have been detected … §5.1.4 The Syntactic Grammar
covering
Typically, an early error rule will then define an error condition if "P is not covering an N", where P is a Parse Node (an instance of the generalized production) and N is a nonterminal from the supplemental grammar. Here, the sequence of… §5.1.4 The Syntactic Grammar
critical section
Each WaiterList has a critical section that controls exclusive access to that WaiterList during evaluation. Only a single agent may enter a WaiterList's critical section at one time. Entering and leaving a WaiterList's critical section is … §25.4.1.3 GetWaiterList ( block, i )
Cyclic Module Record
A Cyclic Module Record is used to represent information about a module that can participate in dependency cycles with other modules that are subclasses of the Cyclic Module Record type. Module Records that are not subclasses of the Cyclic … §16.2.1.5 Cyclic Module Records

D

Data Block
The Data Block specification type is used to describe a distinct and mutable sequence of byte-sized (8 bit) numeric values. A byte value is an integer value in the range 0 through 255, inclusive. A Data Block value is created with a fixed … §6.2.8 Data Blocks
data property
A data property associates a key value with an ECMAScript language value and a set of Boolean attributes. §6.1.7 The Object Type
%DataView%
is %DataView%. §25.3.2 The DataView Constructor
%DataView.prototype%
is %DataView.prototype%. §25.3.4 Properties of the DataView Prototype Object
DataView prototype object
The DataView prototype object: §25.3.4 Properties of the DataView Prototype Object
%Date%
is %Date%. §21.4.2 The Date Constructor
%Date.prototype%
is %Date.prototype%. §21.4.4 Properties of the Date Prototype Object
Date prototype object
The Date prototype object: §21.4.4 Properties of the Date Prototype Object
declarative Environment Record
Each declarative Environment Record is associated with an ECMAScript program scope containing variable, constant, let, class, module, import, and/or function declarations. A declarative Environment Record binds the set of identifiers defin… §9.1.1.1 Declarative Environment Records
%decodeURI%
The decodeURI function is the %decodeURI% intrinsic object. When the decodeURI function is called with one argument encodedURI, the following steps are taken: §19.2.6.2 decodeURI ( encodedURI )
%decodeURIComponent%
The decodeURIComponent function is the %decodeURIComponent% intrinsic object. When the decodeURIComponent function is called with one argument encodedURIComponent, the following steps are taken: §19.2.6.3 decodeURIComponent ( encodedURIComponent )
direct eval
A CallExpression evaluation that executes step 6.a.vi is a direct eval. §13.3.6.1 Runtime Semantics: Evaluation
Directive Prologue
A Directive Prologue is the longest sequence of ExpressionStatements occurring as the initial StatementListItems or ModuleItems of a FunctionBody, a ScriptBody, or a ModuleBody and where each ExpressionStatement in the sequence consists en… §11.2.1 Directive Prologues and the Use Strict Directive

E

early error
An early error is an error that can be detected and reported prior to the evaluation of any construct in the Script containing the error. The presence of an early error prevents the evaluation of the construct. An implementation must repor… §17 Error Handling and Language Extensions
Early Error Rule
A special kind of static semantic rule is an Early Error Rule. Early error rules define early error conditions (see clause 17) that are associated with specific grammar productions. Evaluation of most early error rules are not explicitly i… §5.2.4 Static Semantics
ECMAScript language type
An ECMAScript language type corresponds to values that are directly manipulated by an ECMAScript programmer using the ECMAScript language. The ECMAScript language types are Undefined, Null, Boolean, String, Symbol, Number, BigInt, and Obje… §6.1 ECMAScript Language Types
ECMAScript language value
An ECMAScript language value is a value that is characterized by an ECMAScript language type. §6.1 ECMAScript Language Types
empty candidate execution
An empty candidate execution is a candidate execution Record whose fields are empty Lists and Relations. §29.4 Candidate Executions
%encodeURI%
The encodeURI function is the %encodeURI% intrinsic object. When the encodeURI function is called with one argument uri, the following steps are taken: §19.2.6.4 encodeURI ( uri )
%encodeURIComponent%
The encodeURIComponent function is the %encodeURIComponent% intrinsic object. When the encodeURIComponent function is called with one argument uriComponent, the following steps are taken: §19.2.6.5 encodeURIComponent ( uriComponent )
Environment Record
Environment Record is a specification type used to define the association of Identifiers to specific variables and functions, based upon the lexical nesting structure of ECMAScript code. Usually an Environment Record is associated with som… §9.1 Environment Records
%Error%
is %Error%. §20.5.1 The Error Constructor
%Error.prototype%
is %Error.prototype%. §20.5.3 Properties of the Error Prototype Object
Error prototype object
The Error prototype object: §20.5.3 Properties of the Error Prototype Object
%escape%
The escape function is the %escape% intrinsic object. When the escape function is called with one argument string, the following steps are taken: §B.2.1.1 escape ( string )
%eval%
The eval function is the %eval% intrinsic object. When the eval function is called with one argument x, the following steps are taken: §19.2.1 eval ( x )
%EvalError%
The EvalError constructor is %EvalError%. §20.5.5.1 EvalError
executing thread
An agent comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an Agent Record, and an executing thread. Except for the executing thread, the constituents of an agent belong exclusively … §9.6 Agents
execution context
An execution context is a specification device that is used to track the runtime evaluation of code by an ECMAScript implementation. At any point in time, there is at most one execution context per agent that is actually executing code. Th… §9.3 Execution Contexts
execution context stack
The execution context stack is used to track execution contexts. The running execution context is always the top element of this stack. A new execution context is created whenever control is transferred from the executable code associated … §9.3 Execution Contexts
exotic object
An exotic object is an object that is not an ordinary object. §6.1.7.2 Object Internal Methods and Internal Slots
ExportEntry Record
An ExportEntry Record is a Record that digests information about a single declarative export. Each ExportEntry Record has the fields defined in Table 47: §16.2.1.6 Source Text Module Records
extended mathematical value
A conversion from a mathematical value or extended mathematical value x to a Number is denoted as "the Number value for x" or 𝔽(x), and is defined in 6.1.6.1. A conversion from an integer x to a BigInt is denoted as "the BigInt value for … §5.2.5 Mathematical Operations

F

%FinalizationRegistry%
is %FinalizationRegistry%. §26.2.1 The FinalizationRegistry Constructor
FinalizationRegistry
The FinalizationRegistry constructor: §26.2.1 The FinalizationRegistry Constructor
%FinalizationRegistry.prototype%
is %FinalizationRegistry.prototype%. §26.2.3 Properties of the FinalizationRegistry Prototype Object
FinalizationRegistry prototype
The FinalizationRegistry prototype object: §26.2.3 Properties of the FinalizationRegistry Prototype Object
%Float32Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Float64Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%ForInIteratorPrototype%
The %ForInIteratorPrototype% object: §14.7.5.10.2 The %ForInIteratorPrototype% Object
%Function%
is %Function%. §20.2.1 The Function Constructor
function Environment Record
A function Environment Record is a declarative Environment Record that is used to represent the top-level scope of a function and, if the function is not an ArrowFunction, provides a this binding. If a function is not an ArrowFunction func… §9.1.1.3 Function Environment Records
function object
A function object is an object that supports the [[Call]] internal method. A constructor is an object that supports the [[Construct]] internal method. Every object that supports [[Construct]] must support [[Call]]; that is, every construct… §6.1.7.2 Object Internal Methods and Internal Slots
%Function.prototype%
is %Function.prototype%. §20.2.3 Properties of the Function Prototype Object
Function prototype object
The Function prototype object: §20.2.3 Properties of the Function Prototype Object

G

%GeneratorFunction%
is %GeneratorFunction%. §27.3.1 The GeneratorFunction Constructor
%GeneratorFunction.prototype%
is %GeneratorFunction.prototype% (see Figure 5). §27.3.3 Properties of the GeneratorFunction Prototype Object
GeneratorFunction prototype object
The GeneratorFunction prototype object: §27.3.3 Properties of the GeneratorFunction Prototype Object
%GeneratorFunction.prototype.prototype%
is %GeneratorFunction.prototype.prototype%. §27.5.1 Properties of the Generator Prototype Object
Generator prototype object
The Generator prototype object: §27.5.1 Properties of the Generator Prototype Object
global Environment Record
A global Environment Record is used to represent the outer most scope that is shared by all of the ECMAScript Script elements that are processed in a common realm. A global Environment Record provides the bindings for built-in globals (cla… §9.1.1.4 Global Environment Records
global object
The global object: §19 The Global Object
goal symbol
Starting from a sentence consisting of a single distinguished nonterminal, called the goal symbol, a given context-free grammar specifies a language, namely, the (perhaps infinite) set of possible sequences of terminal symbols that can res… §5.1.1 Context-Free Grammars

H

@@hasInstance
@@hasInstance "Symbol.hasInstance" A method that determines if a constructor object recognizes an object as one of the constructor's instances. Called by the semantics of the instanceof operator. @@isConcatSpreadable "Symbol.isConcatSpread… §6.1.5.1 Well-Known Symbols
high-surrogate code unit
Such operations apply special treatment to every code unit with a numeric value in the inclusive range 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and every code… §6.1.4 The String Type
host
A host is an external source that further defines facilities listed in Annex D but does not further define other implementation-defined or implementation-approximated facilities. In informal use, a host refers to the set of all implementat… §4.2 Hosts and Implementations
host-defined
A host-defined facility is one that defers its definition to an external source without further qualification and is listed in Annex D. Implementations that are not hosts may also provide definitions for host-defined facilities. §4.2 Hosts and Implementations
host environment
A host environment is a particular choice of definition for all host-defined facilities. A host environment typically includes objects or functions which allow obtaining input and providing output as host-defined properties of the global o… §4.2 Hosts and Implementations
host hook
A host hook is an abstract operation that is defined in whole or in part by an external source. All host hooks must be listed in Annex D. §4.2 Hosts and Implementations
hypothetical WeakRef-oblivious
For some set of objects S, a hypothetical WeakRef-oblivious execution with respect to S is an execution whereby the abstract operation WeakRefDeref of a WeakRef whose referent is an element of S always returns undefined. §9.9.2 Liveness

I

IEEE 754-2019
IEEE 754-2019: IEEE Standard for Floating-Point Arithmetic. Institute of Electrical and Electronic Engineers, New York (2019) Note There are no normative changes between IEEE 754-2008 and IEEE 754-2019 that affect the ECMA-262 specificatio… §Annex H (informative) Bibliography
immutable prototype exotic object
An object is an immutable prototype exotic object if its [[SetPrototypeOf]] internal method uses the following implementation. (Its other essential internal methods may use any implementation, depending on the specific immutable prototype … §10.4.7 Immutable Prototype Exotic Objects
implementation-approximated
An implementation-approximated facility is one that defers its definition to an external source while recommending an ideal behaviour. While conforming implementations are free to choose any behaviour within the constraints put forth by th… §4.2 Hosts and Implementations
implementation-defined
An implementation-defined facility is one that defers its definition to an external source without further qualification. This specification does not make any recommendations for particular behaviours, and conforming implementations are fr… §4.2 Hosts and Implementations
ImportEntry Record
An ImportEntry Record is a Record that digests information about a single declarative import. Each ImportEntry Record has the fields defined in Table 45: §16.2.1.6 Source Text Module Records
%Int16Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Int32Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Int8Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
integer
When the term integer is used in this specification, it refers to a mathematical value which is in the set of integers, unless otherwise stated. When the term integral Number is used in this specification, it refers to a Number value whose… §5.2.5 Mathematical Operations
integer index
An integer index is a String-valued property key that is a canonical numeric String (see 7.1.21) and whose numeric value is either +0𝔽 or a positive integral Number ≤ 𝔽(253 - 1). An array index is an integer index whose numeric value i i… §6.1.7 The Object Type
Integer-Indexed exotic object
An object is an Integer-Indexed exotic object if its [[GetOwnProperty]], [[HasProperty]], [[DefineOwnProperty]], [[Get]], [[Set]], [[Delete]], and [[OwnPropertyKeys]] internal methods use the definitions in this section, and its other esse… §10.4.5 Integer-Indexed Exotic Objects
integral Number
When the term integral Number is used in this specification, it refers to a Number value whose mathematical value is in the set of integers. §5.2.5 Mathematical Operations
@@isConcatSpreadable
@@isConcatSpreadable "Symbol.isConcatSpreadable" A Boolean valued property that if true indicates that an object should be flattened to its array elements by Array.prototype.concat. @@iterator "Symbol.iterator" A method that returns the de… §6.1.5.1 Well-Known Symbols
%isFinite%
The isFinite function is the %isFinite% intrinsic object. When the isFinite function is called with one argument number, the following steps are taken: §19.2.2 isFinite ( number )
[[IsHTMLDDA]] internal slot
An [[IsHTMLDDA]] internal slot may exist on host-defined objects. Objects with an [[IsHTMLDDA]] internal slot behave like undefined in the ToBoolean and Abstract Equality Comparison abstract operations and when used as an operand for the t… §B.3.7 The [[IsHTMLDDA]] Internal Slot
%isNaN%
The isNaN function is the %isNaN% intrinsic object. When the isNaN function is called with one argument number, the following steps are taken: §19.2.3 isNaN ( number )
@@iterator
@@iterator "Symbol.iterator" A method that returns the default Iterator for an object. Called by the semantics of the for-of statement. @@match "Symbol.match" A regular expression method that matches the regular expression against a string… §6.1.5.1 Well-Known Symbols
%IteratorPrototype%
The %IteratorPrototype% object: §27.1.2 The %IteratorPrototype% Object

J

Job
A Job is an Abstract Closure with no parameters that initiates an ECMAScript computation when no other ECMAScript computation is currently in progress. §9.4 Jobs and Host Operations to Enqueue Jobs
JobCallback Record
A JobCallback Record is a Record value used to store a function object and a host-defined value. Function objects that are invoked via a Job enqueued by the host may have additional host-defined context. To propagate the state, Job Abstrac… §9.4.1 JobCallback Records
%JSON%
is %JSON%. §25.5 The JSON Object

K

keyword
A keyword is a token that matches IdentifierName, but also has a syntactic use; that is, it appears literally, in a fixed width font, in some syntactic production. The keywords of ECMAScript include if, while, async, await, and many others. §12.6.2 Keywords and Reserved Words

L

leading surrogate
Such operations apply special treatment to every code unit with a numeric value in the inclusive range 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and every code… §6.1.4 The String Type
List
The List type is used to explain the evaluation of argument lists (see 13.3.8) in new expressions, in function calls, and in other algorithms where a simple ordered list of values is needed. Values of the List type are simply ordered seque… §6.2.1 The List and Record Specification Types
live
At any point during evaluation, a set of objects S is considered live if either of the following conditions is met: §9.9.2 Liveness
low-surrogate code unit
Such operations apply special treatment to every code unit with a numeric value in the inclusive range 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and every code… §6.1.4 The String Type

M

%Map%
is %Map%. §24.1.1 The Map Constructor
%MapIteratorPrototype%
The %MapIteratorPrototype% object: §24.1.5.2 The %MapIteratorPrototype% Object
%Map.prototype%
is %Map.prototype%. §24.1.3 Properties of the Map Prototype Object
Map prototype object
The Map prototype object: §24.1.3 Properties of the Map Prototype Object
@@match
@@match "Symbol.match" A regular expression method that matches the regular expression against a string. Called by the String.prototype.match method. @@matchAll "Symbol.matchAll" A regular expression method that returns an iterator, that y… §6.1.5.1 Well-Known Symbols
@@matchAll
@@matchAll "Symbol.matchAll" A regular expression method that returns an iterator, that yields matches of the regular expression against a string. Called by the String.prototype.matchAll method. @@replace "Symbol.replace" A regular express… §6.1.5.1 Well-Known Symbols
%Math%
is %Math%. §21.3 The Math Object
mathematical value
Conversions between mathematical values and Numbers or BigInts are always explicit in this document. A conversion from a mathematical value or extended mathematical value x to a Number is denoted as "the Number value for x" or 𝔽(x), and i… §5.2.5 Mathematical Operations
memory model
The memory consistency model, or memory model, specifies the possible orderings of Shared Data Block events, arising via accessing TypedArray instances backed by a SharedArrayBuffer and via methods on the Atomics object. When the program h… §29 Memory Model
module Environment Record
A module Environment Record is a declarative Environment Record that is used to represent the outer scope of an ECMAScript Module. In additional to normal mutable and immutable bindings, module Environment Records also provide immutable im… §9.1.1.5 Module Environment Records
module namespace exotic object
An object is a module namespace exotic object if its [[SetPrototypeOf]], [[IsExtensible]], [[PreventExtensions]], [[GetOwnProperty]], [[DefineOwnProperty]], [[HasProperty]], [[Get]], [[Set]], [[Delete]], and [[OwnPropertyKeys]] internal me… §10.4.6 Module Namespace Exotic Objects
Module Record
A Module Record encapsulates structural information about the imports and exports of a single module. This information is used to link the imports and exports of sets of connected modules. A Module Record includes four fields that are only… §16.2.1.4 Abstract Module Records

N

NativeError prototype object
Each NativeError prototype object: §20.5.6.3 Properties of the NativeError Prototype Objects
non-strict code
ECMAScript code that is not strict mode code is called non-strict code. §11.2.2 Strict Mode Code
non-strict function
One whose code is not strict mode code is called a non-strict function. §10.2 ECMAScript Function Objects
Normative Optional
A conforming implementation of ECMAScript may choose to implement or not implement Normative Optional subclauses. If any Normative Optional behaviour is implemented, all of the behaviour in the containing Normative Optional clause must be … §2 Conformance
%Number%
is %Number%. §21.1.1 The Number Constructor
%Number.prototype%
is %Number.prototype%. §21.1.3 Properties of the Number Prototype Object
Number prototype object
The Number prototype object: §21.1.3 Properties of the Number Prototype Object
Number value
In this specification, the phrase “the Number value for x” where x represents an exact real mathematical quantity (which might even be an irrational number such as π) means a Number value chosen in the following manner. Consider the set of… §6.1.6.1 The Number Type

O

%Object%
is %Object%. §20.1.1 The Object Constructor
object Environment Record
Each object Environment Record is associated with an object called its binding object. An object Environment Record binds the set of string identifier names that directly correspond to the property names of its binding object. Property key… §9.1.1.2 Object Environment Records
%Object.prototype%
is %Object.prototype%. §20.1.3 Properties of the Object Prototype Object
Object prototype object
The Object prototype object: §20.1.3 Properties of the Object Prototype Object
ordinary object
An ordinary object is an object that satisfies all of the following criteria: §6.1.7.2 Object Internal Methods and Internal Slots

P

%parseFloat%
The parseFloat function is the %parseFloat% intrinsic object. When the parseFloat function is called with one argument string, the following steps are taken: §19.2.4 parseFloat ( string )
%parseInt%
The parseInt function is the %parseInt% intrinsic object. When the parseInt function is called, the following steps are taken: §19.2.5 parseInt ( string, radix )
Parse Node
When a parse is successful, it constructs a parse tree, a rooted tree structure in which each node is a Parse Node. Each Parse Node is an instance of a symbol in the grammar; it represents a span of the source text that can be derived from… §5.1.4 The Syntactic Grammar
possible read values
Let possible read values of a read event be the set of all values of ValueOfReadEvent for that event across all valid executions. §29.11 Shared Memory Guidelines
prepared to evaluate ECMAScript code
At any particular time, an execution is prepared to evaluate ECMAScript code if all of the following conditions are true: §9.4 Jobs and Host Operations to Enqueue Jobs
%Promise%
is %Promise%. §27.2.3 The Promise Constructor
PromiseCapability Record
A PromiseCapability Record is a Record value used to encapsulate a promise object along with the functions that are capable of resolving or rejecting that promise object. PromiseCapability Records are produced by the NewPromiseCapability a… §27.2.1.1 PromiseCapability Records
%Promise.prototype%
is %Promise.prototype%. §27.2.5 Properties of the Promise Prototype Object
Promise prototype object
The Promise prototype object: §27.2.5 Properties of the Promise Prototype Object
Property Descriptor
The Property Descriptor type is used to explain the manipulation and reification of Object property attributes. Values of the Property Descriptor type are Records. Each field's name is an attribute name and its value is a corresponding att… §6.2.5 The Property Descriptor Specification Type
property name
A property name is a property key that is a String value. §6.1.7 The Object Type
%Proxy%
is %Proxy%. §28.2.1 The Proxy Constructor
Proxy exotic object
An object is a Proxy exotic object if its essential internal methods (including [[Call]] and [[Construct]], if applicable) use the definitions in this section. These internal methods are installed in ProxyCreate. §10.5 Proxy Object Internal Methods and Internal Slots

R

%RangeError%
The RangeError constructor is %RangeError%. §20.5.5.2 RangeError
read-modify-write modification function
A read-modify-write modification function is a mathematical function that is notationally represented as an abstract closure that takes two Lists of byte values as arguments and returns a List of byte values. These abstract closures satisf… §25.1.1 Notation
ReadModifyWriteSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. §29.1 Memory Model Fundamentals
ReadSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. §29.1 Memory Model Fundamentals
realm
Before it is evaluated, all ECMAScript code must be associated with a realm. Conceptually, a realm consists of a set of intrinsic objects, an ECMAScript global environment, all of the ECMAScript code that is loaded within the scope of that… §9.2 Realms
Realm Record
A realm is represented in this specification as a Realm Record with the fields specified in Table 23: §9.2 Realms
Record
The Record type is used to describe data aggregations within the algorithms of this specification. A Record type value consists of one or more named fields. The value of each field is either an ECMAScript value or an abstract value represe… §6.2.1 The List and Record Specification Types
%ReferenceError%
The ReferenceError constructor is %ReferenceError%. §20.5.5.3 ReferenceError
Reference Record
The Reference Record type is used to explain the behaviour of such operators as delete, typeof, the assignment operators, the super keyword and other language features. For example, the left-hand operand of an assignment is expected to pro… §6.2.4 The Reference Record Specification Type
%Reflect%
is %Reflect%. §28.1 The Reflect Object
%RegExp%
is %RegExp%. §22.2.3 The RegExp Constructor
%RegExp.prototype%
is %RegExp.prototype%. §22.2.5 Properties of the RegExp Prototype Object
RegExp prototype object
The RegExp prototype object: §22.2.5 Properties of the RegExp Prototype Object
%RegExpStringIteratorPrototype%
The %RegExpStringIteratorPrototype% object: §22.2.7.2 The %RegExpStringIteratorPrototype% Object
Relation
The Relation type is used to explain constraints on Sets. Values of the Relation type are Sets of ordered pairs of values from its value domain. For example, a Relation on events is a set of ordered pairs of events. For a Relation R and tw… §6.2.2 The Set and Relation Specification Types
@@replace
@@replace "Symbol.replace" A regular expression method that replaces matched substrings of a string. Called by the String.prototype.replace method. @@search "Symbol.search" A regular expression method that returns the index within a string… §6.1.5.1 Well-Known Symbols
reserved word
A reserved word is an IdentifierName that cannot be used as an identifier. Many keywords are reserved words, but some are not, and some are reserved only in certain contexts. if and while are reserved words. await is reserved only inside a… §12.6.2 Keywords and Reserved Words
ResolvedBinding Record
Bindings are represented by a ResolvedBinding Record, of the form { [[Module]]: Module Record, [[BindingName]]: String }. If the export is a Module Namespace Object without a direct binding in any module, [[BindingName]] will be set to "*n… §16.2.1.4 Abstract Module Records
running execution context
This is known as the agent's running execution context. All references to the running execution context in this specification denote the running execution context of the surrounding agent. §9.3 Execution Contexts
runtime semantics
Algorithms which specify semantics that must be called at runtime are called runtime semantics. Runtime semantics are defined by abstract operations or syntax-directed operations. Such algorithms always return a completion record. §5.2.3 Runtime Semantics

S

Script Record
A Script Record encapsulates information about a script being evaluated. Each script record contains the fields listed in Table 39. §16.1.4 Script Records
@@search
@@search "Symbol.search" A regular expression method that returns the index within a string that matches the regular expression. Called by the String.prototype.search method. @@species "Symbol.species" A function valued property that is th… §6.1.5.1 Well-Known Symbols
%Set%
is %Set%. §24.2.1 The Set Constructor
Set
The Set type is used to explain a collection of unordered elements for use in the memory model. Values of the Set type are simple collections of elements, where no element appears more than once. Elements may be added to and removed from S… §6.2.2 The Set and Relation Specification Types
%SetIteratorPrototype%
The %SetIteratorPrototype% object: §24.2.5.2 The %SetIteratorPrototype% Object
%Set.prototype%
is %Set.prototype%. §24.2.3 Properties of the Set Prototype Object
Set prototype object
The Set prototype object: §24.2.3 Properties of the Set Prototype Object
%SharedArrayBuffer%
is %SharedArrayBuffer%. §25.2.2 The SharedArrayBuffer Constructor
%SharedArrayBuffer.prototype%
is %SharedArrayBuffer.prototype%. §25.2.4 Properties of the SharedArrayBuffer Prototype Object
SharedArrayBuffer prototype object
The SharedArrayBuffer prototype object: §25.2.4 Properties of the SharedArrayBuffer Prototype Object
Shared Data Block
A data block that resides in memory that can be referenced from multiple agents concurrently is designated a Shared Data Block. A Shared Data Block has an identity (for the purposes of equality testing Shared Data Block values) that is add… §6.2.8 Data Blocks
Shared Data Block event
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. §29.1 Memory Model Fundamentals
source text matched by
The source text matched by a grammar production is the portion of the source text that starts at the beginning of the first terminal that participated in the match and ends at the end of the last terminal that participated in the match. §5.2.2 Syntax-Directed Operations
Source Text Module Record
A Source Text Module Record is used to represent information about a module that was defined from ECMAScript source text (11) that was parsed using the goal symbol Module. Its fields contain digested information about the names that are im… §16.2.1.6 Source Text Module Records
@@species
@@species "Symbol.species" A function valued property that is the constructor function that is used to create derived objects. @@split "Symbol.split" A regular expression method that splits a string at the indices that match the regular ex… §6.1.5.1 Well-Known Symbols
@@split
@@split "Symbol.split" A regular expression method that splits a string at the indices that match the regular expression. Called by the String.prototype.split method. @@toPrimitive "Symbol.toPrimitive" A method that converts an object to a… §6.1.5.1 Well-Known Symbols
static semantics
Such rules are always associated with a production of a grammar and are called the static semantics of the production. §5.2.4 Static Semantics
strict function
An ECMAScript function object whose code is strict mode code is called a strict function. One whose code is not strict mode code is called a non-strict function. §10.2 ECMAScript Function Objects
strict mode code
Code is interpreted as strict mode code in the following situations: §11.2.2 Strict Mode Code
strict partial order
A strict partial order is a Relation value R that satisfies the following. §6.2.2 The Set and Relation Specification Types
strict total order
A strict total order is a Relation value R that satisfies the following. §6.2.2 The Set and Relation Specification Types
%String%
is %String%. §22.1.1 The String Constructor
string-concatenation
In this specification, the phrase "the string-concatenation of A, B, ..." (where each argument is a String value, a code unit, or a sequence of code units) denotes the String value whose sequence of code units is the concatenation of the c… §6.1.4 The String Type
String exotic object
An object is a String exotic object (or simply, a String object) if its [[GetOwnProperty]], [[DefineOwnProperty]], and [[OwnPropertyKeys]] internal methods use the following implementations, and its other essential internal methods use the… §10.4.3 String Exotic Objects
%StringIteratorPrototype%
The %StringIteratorPrototype% object: §22.1.5.1 The %StringIteratorPrototype% Object
%String.prototype%
is %String.prototype%. §22.1.3 Properties of the String Prototype Object
String prototype object
The String prototype object: §22.1.3 Properties of the String Prototype Object
substring
The phrase "the substring of S from inclusiveStart to exclusiveEnd" (where S is a String value or a sequence of code units and inclusiveStart and exclusiveEnd are integers) denotes the String value consisting of the consecutive code units … §6.1.4 The String Type
Super Reference Record
[[ThisValue]] any ECMAScript language value or empty If not empty, the Reference Record represents a property binding that was expressed using the super keyword; it is called a Super Reference Record and its [[Base]] value will never be an… §6.2.4 The Reference Record Specification Type
surrogate pair
A sequence of two code units, where the first code unit c1 is a leading surrogate and the second code unit c2 a trailing surrogate, is a surrogate pair and is interpreted as a code point with the value (c1 - 0xD800) × 0x400 + (c2 - 0xDC00)… §6.1.4 The String Type
surrounding agent
While an agent's executing thread executes jobs, the agent is the surrounding agent for the code in those jobs. The code uses the surrounding agent to access the specification level execution objects held within the agent: the running exec… §9.6 Agents
%Symbol%
is %Symbol%. §20.4.1 The Symbol Constructor
%Symbol.prototype%
is %Symbol.prototype%. §20.4.3 Properties of the Symbol Prototype Object
Symbol prototype object
The Symbol prototype object: §20.4.3 Properties of the Symbol Prototype Object
Synchronize
Some operations may also introduce Synchronize events. A Synchronize event has no fields, and exists purely to directly constrain the permitted orderings of other events. §29.1 Memory Model Fundamentals
Synchronize event
Some operations may also introduce Synchronize events. A Synchronize event has no fields, and exists purely to directly constrain the permitted orderings of other events. §29.1 Memory Model Fundamentals
syntax-directed operation
A syntax-directed operation is a named operation whose definition consists of algorithms, each of which is associated with one or more productions from one of the ECMAScript grammars. A production that has multiple alternative definitions … §5.2.2 Syntax-Directed Operations
%SyntaxError%
The SyntaxError constructor is %SyntaxError%. §20.5.5.4 SyntaxError

T

the current Realm Record
The value of the Realm component of the running execution context is also called the current Realm Record. The value of the Function component of the running execution context is also called the active function object. §9.3 Execution Contexts
the same Parse Node
Parse Nodes are considered the same Parse Node if and only if they represent the same span of source text, are instances of the same grammar symbol, and resulted from the same parser invocation. §5.1.4 The Syntactic Grammar
thisBigIntValue
The abstract operation thisBigIntValue takes argument value. It performs the following steps when called: §21.2.3 Properties of the BigInt Prototype Object
thisBooleanValue
The abstract operation thisBooleanValue takes argument value. It performs the following steps when called: §20.3.3 Properties of the Boolean Prototype Object
this Date object
In following descriptions of functions that are properties of the Date prototype object, the phrase “this Date object” refers to the object that is the this value for the invocation of the function. If the Type of the this value is not Obj… §21.4.4 Properties of the Date Prototype Object
thisNumberValue
The abstract operation thisNumberValue takes argument value. It performs the following steps when called: §21.1.3 Properties of the Number Prototype Object
thisStringValue
The abstract operation thisStringValue takes argument value. It performs the following steps when called: §22.1.3 Properties of the String Prototype Object
thisSymbolValue
The abstract operation thisSymbolValue takes argument value. It performs the following steps when called: §20.4.3 Properties of the Symbol Prototype Object
this time value
The phrase “this time value” within the specification of a method refers to the result returned by calling the abstract operation thisTimeValue with the this value of the method invocation passed as the argument. §21.4.4 Properties of the Date Prototype Object
thisTimeValue
The abstract operation thisTimeValue takes argument value. It performs the following steps when called: §21.4.4 Properties of the Date Prototype Object
%ThrowTypeError%
The %ThrowTypeError% intrinsic is an anonymous built-in function object that is defined once for each realm. When %ThrowTypeError% is called it performs the following steps: §10.2.4.1 %ThrowTypeError% ( )
time value
An ECMAScript time value is a Number, either a finite integral Number representing an instant in time to millisecond precision or NaN representing no specific instant. A time value that is a multiple of 24 × 60 × 60 × 1000 = 86,400,000 (i.… §21.4.1.1 Time Values and Time Range
@@toPrimitive
@@toPrimitive "Symbol.toPrimitive" A method that converts an object to a corresponding primitive value. Called by the ToPrimitive abstract operation. @@toStringTag "Symbol.toStringTag" A String valued property that is used in the creation … §6.1.5.1 Well-Known Symbols
@@toStringTag
@@toStringTag "Symbol.toStringTag" A String valued property that is used in the creation of the default string description of an object. Accessed by the built-in method Object.prototype.toString. @@unscopables "Symbol.unscopables" An objec… §6.1.5.1 Well-Known Symbols
trailing surrogate
Such operations apply special treatment to every code unit with a numeric value in the inclusive range 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and every code… §6.1.4 The String Type
type
Within this specification, the notation “Type(x)” is used as shorthand for “the type of x” where “type” refers to the ECMAScript language and specification types defined in this clause. When the term “empty” is used as if it was naming a v… §6 ECMAScript Data Types and Values
%TypedArray%
The %TypedArray% intrinsic object: §23.2.1 The %TypedArray% Intrinsic Object
TypedArray element type
A TypedArray element type is the underlying binary scalar data type that all elements of a TypedArray instance have. There is a distinct TypedArray constructor, listed in Table 60, for each of the supported element types. Each constructor … §23.2 TypedArray Objects
%TypedArray.prototype%
is %TypedArray.prototype%. §23.2.3 Properties of the %TypedArray% Prototype Object
%TypedArray% prototype object
The %TypedArray% prototype object: §23.2.3 Properties of the %TypedArray% Prototype Object
%TypeError%
The TypeError constructor is %TypeError%. §20.5.5.5 TypeError

U

%Uint16Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Uint32Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Uint8Array%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%Uint8ClampedArray%
Constructor Name and Intrinsic Element Type Element Size Conversion Operation Description Int8Array %Int8Array% Int8 1 ToInt8 8-bit two's complement signed integer Uint8Array %Uint8Array% Uint8 1 ToUint8 8-bit unsigned integer Uint8Clamped… §23.2 TypedArray Objects
%unescape%
The unescape function is the %unescape% intrinsic object. When the unescape function is called with one argument string, the following steps are taken: §B.2.1.2 unescape ( string )
@@unscopables
@@unscopables "Symbol.unscopables" An object valued property whose own and inherited property names are property names that are excluded from the with environment bindings of the associated object. 6.1.6 Numeric TypesECMAScript has two bui… §6.1.5.1 Well-Known Symbols
%URIError%
The URIError constructor is %URIError%. §20.5.5.6 URIError
Use Strict Directive
A Use Strict Directive is an ExpressionStatement in a Directive Prologue whose StringLiteral is either of the exact code point sequences "use strict" or 'use strict'. A Use Strict Directive may not contain an EscapeSequence or LineContinua… §11.2.1 Directive Prologues and the Use Strict Directive

W

WaiterList
A WaiterList is a semantic object that contains an ordered list of those agents that are waiting on a location (block, i) in shared memory; block is a Shared Data Block and i a byte offset into the memory of block. A WaiterList object also… §25.4.1.3 GetWaiterList ( block, i )
%WeakMap%
is %WeakMap%. §24.3.1 The WeakMap Constructor
%WeakMap.prototype%
is %WeakMap.prototype%. §24.3.3 Properties of the WeakMap Prototype Object
WeakMap prototype object
The WeakMap prototype object: §24.3.3 Properties of the WeakMap Prototype Object
%WeakRef%
is %WeakRef%. §26.1.1 The WeakRef Constructor
WeakRef
The WeakRef constructor: §26.1.1 The WeakRef Constructor
%WeakRef.prototype%
is %WeakRef.prototype%. §26.1.3 Properties of the WeakRef Prototype Object
WeakRef prototype
The WeakRef prototype object: §26.1.3 Properties of the WeakRef Prototype Object
%WeakSet%
is %WeakSet%. §24.4.1 The WeakSet Constructor
%WeakSet.prototype%
is %WeakSet.prototype%. §24.4.3 Properties of the WeakSet Prototype Object
WeakSet prototype object
The WeakSet prototype object: §24.4.3 Properties of the WeakSet Prototype Object
WriteSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. §29.1 Memory Model Fundamentals