Skip to content

Glossary

Each entry is derived from a <dfn> element in the official ECMAScript spec.html (389 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

abrupt completion abrupt completions
abrupt completion refers to any Completion Record with a [[Type]] value other than normal. §6.2.4 The Completion Record Specification Type
Abstract Closure Abstract Closures
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.8 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.2 Abstract Operations
accessor property accessor properties
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.4 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.5 Jobs and Host Operations to Enqueue Jobs
agent agents
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 agent clusters
An agent cluster is a maximal set of agents that can communicate by operating on shared memory. §9.7 Agent Clusters
Agent Events Record Agent Events Records
An Agent Events Record is a Record with the following fields. §29.2 Agent Events Records
agent-order slice agent-order slices
Let an agent-order slice be the subset of the is-agent-order-before Relation pertaining to a single agent. §29.11 Shared Memory Guidelines
Agent Record Agent Records
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 signifier agent signifiers
An agent signifier is a globally-unique opaque value used to identify an Agent. §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 arguments exotic objects
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.4 The ArrayBuffer Constructor
%ArrayBuffer.prototype%
is %ArrayBuffer.prototype%. §25.1.6 Properties of the ArrayBuffer Prototype Object
ArrayBuffer prototype object
The ArrayBuffer prototype object: §25.1.6 Properties of the ArrayBuffer Prototype Object
Array exotic object Array exotic objects
An object is an Array exotic object (or simply, an Array) 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 install… §10.4.2 Array Exotic Objects
array index array indices
An array index is an integer index n such that CanonicalNumericIndexString(n) returns an integral Number in the inclusive interval from +0𝔽 to 𝔽(232 - 2). §6.1.7 The Object Type
Array Iterator Array Iterators, Array Iterator object, Array Iterator objects
An Array Iterator is an object that represents a specific iteration over some specific Array instance object. There is not a named constructor for Array Iterator objects. Instead, Array Iterator objects are created by calling certain metho… §23.1.5 Array Iterator Objects
%ArrayIteratorPrototype%
The %ArrayIteratorPrototype% object: §23.1.5.2 The %ArrayIteratorPrototype% Object
array-like object array-like objects
An array-like object is any object for which this operation returns a normal 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. Similarly, a step that begins with “NOTE:” provides perti… §5.2 Algorithm Conventions
Async-from-Sync Iterator object Async-from-Sync Iterator objects
An Async-from-Sync Iterator object is an async iterator that adapts a specific synchronous iterator. Async-from-Sync Iterator objects are never directly accessible to ECMAScript code. There is not a named constructor for Async-from-Sync It… §27.1.5 Async-from-Sync Iterator Objects
%AsyncFromSyncIteratorPrototype%
The %AsyncFromSyncIteratorPrototype% object: §27.1.5.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 The %AsyncGeneratorPrototype% Object
%AsyncGeneratorPrototype%
The %AsyncGeneratorPrototype% object: §27.6.1 The %AsyncGeneratorPrototype% Object
AsyncGeneratorRequest AsyncGeneratorRequests
An AsyncGeneratorRequest is a Record value used to store information about how an async generator should be resumed and contains capabilities for fulfilling or rejecting the corresponding promise. §27.6.3.1 AsyncGeneratorRequest Records
async iterable interface async iterable, async iterables, async iterable object, async iterable objects
The async iterable interface includes the properties described in Table 81: §27.1.1.3 The Async Iterable Interface
async iterator interface async iterator object, async iterator objects, async iterator, async iterators
An object that implements the async iterator interface must include the properties in Table 82. Such objects may also implement the properties in Table 83. §27.1.1.4 The Async Iterator Interface
%AsyncIteratorPrototype%
The %AsyncIteratorPrototype% object: §27.1.4 The %AsyncIteratorPrototype% Object
%Atomics%
is %Atomics%. §25.4 The Atomics Object
available named time zone identifier available named time zone identifiers
An available named time zone identifier is either a primary time zone identifier or a non-primary time zone identifier. Each available named time zone identifier is associated with exactly one available named time zone. Each available name… §21.4.1.19 Time Zone Identifiers
available named time zones available named time zone
Time zones supported by an ECMAScript implementation may be available named time zones, represented by the [[Identifier]] field of the Time Zone Identifier Records returned by AvailableNamedTimeZoneIdentifiers, or offset time zones, repres… §21.4.1.19 Time Zone Identifiers

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
BigInt type is a BigInt, is not a BigInt
The BigInt type represents an integer value. The value may be any size and is not limited to a particular bit-width. Generally, where not otherwise noted, operations are designed to return exact mathematically-based answers. For binary ope… §6.1.6.2 The BigInt Type
BigInt value for
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.6 Mathematical Operations
%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
Boolean type is a Boolean, is not a Boolean
The Boolean type represents a logical entity having two values, called true and false. §6.1.3 The Boolean Type
bound function exotic object bound function exotic objects
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
break completion break completions
break completion refers to any Completion Record with a [[Type]] value of break. §6.2.4 The Completion Record Specification Type
byte value byte values
A byte value is an integer in the inclusive interval from 0 to 255. A Data Block value is created with a fixed number of bytes that each have the initial value 0. §6.2.9 Data Blocks

C

candidate execution candidate executions
A candidate execution of the evaluation of an agent cluster is a Record with the following fields. §29.4 Candidate Executions
canonical numeric string canonical numeric strings
A canonical numeric string is any String for which the CanonicalNumericIndexString abstract operation does not return undefined. §7.1.22 CanonicalNumericIndexString ( arg )
CaptureRange CaptureRanges
A CaptureRange is a Record { [[StartIndex]], [[EndIndex]] } that represents the range of characters included in a capture, where [[StartIndex]] is an integer representing the start index (inclusive) of the range within input, and [[EndInde… §22.2.2.1 Notation
chain production chain productions
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
CharSet CharSets
A CharSet is a mathematical set of CharSetElements. §22.2.2.1 Notation
CharSetElement
A CharSetElement is one of the two following entities: If regexpRecord.[[UnicodeSets]] is false, then a CharSetElement is a character in the sense of the Pattern Semantics above. §22.2.2.1 Notation
Chosen Value Record Chosen Value Records
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.6 Mathematical Operations
ClassFieldDefinition Records ClassFieldDefinition Record
Such values are referred to as ClassFieldDefinition Records. §6.2.11 The ClassFieldDefinition Record Specification Type
ClassStaticBlockDefinition Record ClassStaticBlockDefinition Records
A ClassStaticBlockDefinition Record is a Record value used to encapsulate the executable code for a class static initialization block. §6.2.13 The ClassStaticBlockDefinition Record Specification Type
Completion Record Completion Records
The Completion Record specification type is used to explain the runtime propagation of values and control flow such as the behaviour of statements (break, continue, return and throw) that perform nonlocal transfers of control. §6.2.4 The Completion Record Specification Type
conditional keyword conditional keywords
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.7.2 Keywords and Reserved Words
consistent comparator
An Abstract Closure or function comparator is a consistent comparator for a set of values values if all of the requirements below are met for all values a, b, and c (possibly the same value) in the set values: The notation a <C b means ℝ(c… §23.1.3.30.1 SortIndexedProperties ( obj, length, sortCompare, holes )
constructor constructors
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.3.6 EnterCriticalSection ( waiterList )
contextual keyword contextual keywords
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.7.2 Keywords and Reserved Words
continue completion continue completions
continue completion refers to any Completion Record with a [[Type]] value of continue. §6.2.4 The Completion Record Specification Type
covered
We refer to that instance of n (a Parse Node, unique for a given p) as “the n that is covered by p”. §5.1.4 The Syntactic Grammar
critical section critical sections
Each WaiterList Record has a critical section that controls exclusive access to that WaiterList Record during evaluation. Only a single agent may enter a WaiterList Record's critical section at one time. Entering and leaving a WaiterList R… §25.4.2 WaiterList Records
Cyclic Module Record Cyclic Module Records
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.6 Cyclic Module Records

D

Data Block Data Blocks
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 in the inclusive interval from 0 to 255. A Data Block value is created with a fixed numb… §6.2.9 Data Blocks
data property data properties
A data property associates a key value with an ECMAScript language value and a set of Boolean attributes. §6.1.7 The Object Type
data race
For an execution execution and events eventA and eventB that are contained in SharedDataBlockEventSet(execution), eventA and eventB are in a data race if the following algorithm returns true. §29.9 Data Races
data race free
An execution execution is data race free if there are no two events in SharedDataBlockEventSet(execution) that are in a data race. §29.10 Data Race Freedom
%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
DataView With Buffer Witness Record DataView With Buffer Witness Records
A DataView With Buffer Witness Record is a Record value used to encapsulate a DataView along with a cached byte length of the viewed buffer. It is used to help ensure there is a single ReadSharedMemory event of the byte length data block w… §25.3.1.1 DataView With Buffer Witness Records
%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 Declarative Environment Records
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%
It is the %decodeURI% intrinsic object. §19.2.6.1 decodeURI ( encodedURI )
%decodeURIComponent%
It is the %decodeURIComponent% intrinsic object. §19.2.6.2 decodeURIComponent ( encodedURIComponent )
direct eval direct evals
A CallExpression evaluation that executes step 6.a.v is a direct eval. §13.3.6.1 Runtime Semantics: Evaluation
Directive Prologue Directive Prologues
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 early errors
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.5 Static Semantics
ECMAScript code execution contexts ECMAScript code execution context
ECMAScript code execution contexts have the additional state components listed in Table 21. §9.4 Execution Contexts
ECMAScript language type ECMAScript language types
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 ECMAScript language values
An ECMAScript language value is a value that is characterized by an ECMAScript language type. §6.1 ECMAScript Language Types
ECMAScript source text
ECMAScript source text is a sequence of Unicode code points. All Unicode code point values from U+0000 to U+10FFFF, including surrogate code points, may occur in ECMAScript source text where permitted by the ECMAScript grammars. The actual… §11.1 Source Text
empty candidate execution empty candidate executions
An empty candidate execution is a candidate execution Record whose fields are empty Lists. §29.4 Candidate Executions
%encodeURI%
It is the %encodeURI% intrinsic object. §19.2.6.3 encodeURI ( uri )
%encodeURIComponent%
It is the %encodeURIComponent% intrinsic object. §19.2.6.4 encodeURIComponent ( uriComponent )
Enums enum
Enums are values which are internal to the specification and not directly observable from ECMAScript code. Enums are denoted in upper kebab case using a sans-serif typeface. For instance, a Completion Record's [[Type]] field takes on value… §6.2.1 The Enum Specification Type
Environment Record Environment Records
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
epoch
Time measurement in ECMAScript is analogous to time measurement in POSIX, in particular sharing definition in terms of the proleptic Gregorian calendar, an epoch of midnight at the beginning of 1 January 1970 UTC, and an accounting of ever… §21.4.1.1 Time Values and Time Range
%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%
It is the %escape% intrinsic object. §B.2.1.1 escape ( string )
%eval%
This function is the %eval% intrinsic object. §19.2.1 eval ( source )
Eval code
Eval code is the source text supplied to the built-in eval function. More precisely, if the parameter to the built-in eval function is a String, it is treated as an ECMAScript Script. The eval code for a particular invocation of eval is th… §11.2 Types of Source Code
%EvalError%
The EvalError constructor is %EvalError%. §20.5.5.1 EvalError
executing thread executing threads
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 execution contexts
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.4 Execution Contexts
execution context stack execution context stacks
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.4 Execution Contexts
exotic object exotic objects
An exotic object is an object that is not an ordinary object. §6.1.7.2 Object Internal Methods and Internal Slots
ExportEntry Record ExportEntry Records
An ExportEntry Record is a Record that digests information about a single declarative export. Each ExportEntry Record has the fields defined in Table 55: §16.2.1.7 Source Text Module Records
extended mathematical value of
The extended mathematical value of x is the mathematical value of x for finite values, and is +∞ and -∞ for +∞𝔽 and -∞𝔽 respectively; it is not defined for NaN. §5.2.6 Mathematical Operations
Extended mathematical values extended mathematical value
Extended mathematical values: Mathematical values together with +∞ and -∞. §5.2.6 Mathematical Operations

F

%FinalizationRegistry%
is %FinalizationRegistry%. §26.2.1 The FinalizationRegistry Constructor
FinalizationRegistry FinalizationRegistrys
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 object
The FinalizationRegistry prototype object: §26.2.3 Properties of the FinalizationRegistry Prototype Object
finite
The other 18,437,736,874,454,810,624 (that is, 264 - 253) values are called the finite numbers. Half of these are positive numbers and half are negative numbers; for every finite positive Number value there is a corresponding negative valu… §6.1.6.1 The Number Type
fixed-length ArrayBuffer
A fixed-length ArrayBuffer is an ArrayBuffer whose byte length cannot change after creation. §25.1.2 Fixed-length and Resizable ArrayBuffer Objects
fixed-length SharedArrayBuffer
A fixed-length SharedArrayBuffer is a SharedArrayBuffer whose byte length cannot change after creation. §25.2.1 Fixed-length and Growable SharedArrayBuffer Objects
%Float16Array%
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
%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
For-In Iterator For-In Iterator object, For-In Iterator objects
A For-In Iterator is an object that represents a specific iteration over some specific object. For-In Iterator objects are never directly accessible to ECMAScript code; they exist solely to illustrate the behaviour of EnumerateObjectProper… §14.7.5.10 For-In Iterator Objects
%ForInIteratorPrototype%
The %ForInIteratorPrototype% object: §14.7.5.10.2 The %ForInIteratorPrototype% Object
fully populated Property Descriptor
A fully populated Property Descriptor is one that is either an accessor Property Descriptor or a data Property Descriptor and that has all of the corresponding fields defined in Table 3. §6.2.6 The Property Descriptor Specification Type
%Function%
is %Function%. §20.2.1 The Function Constructor
Function code
Function code is source text that is parsed to supply the value of the [[ECMAScriptCode]] and [[FormalParameters]] internal slots (see 10.2) of an ECMAScript function object. The function code of a particular ECMAScript function does not i… §11.2 Types of Source Code
Function Environment Record Function Environment Records
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 function or AsyncArrowFunction function, provides a this binding. If… §9.1.1.3 Function Environment Records
function object function objects
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 6). §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 The %GeneratorPrototype% Object
%GeneratorPrototype%
The %GeneratorPrototype% object: §27.5.1 The %GeneratorPrototype% Object
Global code
Global code is source text that is treated as an ECMAScript Script. The global code of a particular Script does not include any source text that is parsed as part of a FunctionDeclaration, FunctionExpression, GeneratorDeclaration, Generato… §11.2 Types of Source Code
Global Environment Record Global Environment Records
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 global objects
The global object: §19 The Global Object
GlobalSymbolRegistry Record GlobalSymbolRegistry Records
A GlobalSymbolRegistry Record is a Record value used to associate a String key with a Symbol value registered through Symbol.for. §20.4.5.1 GlobalSymbolRegistry Records
goal symbol goal symbols
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
GraphLoadingState Record GraphLoadingState Records
A GraphLoadingState Record is a Record that contains information about the loading process of a module graph. It's used to continue loading after a call to HostLoadImportedModule. Each GraphLoadingState Record has the fields defined in Tab… §16.2.1.6 Cyclic Module Records
growable SharedArrayBuffer
A growable SharedArrayBuffer is a SharedArrayBuffer whose byte length may increase after creation via calls to SharedArrayBuffer.prototype.grow ( newLength ). §25.2.1 Fixed-length and Growable SharedArrayBuffer Objects

H

happens-before
For a candidate execution execution, its happens-before Relation is the least Relation on Memory events that satisfies the following. §29.6.6 happens-before
high-surrogate code unit high-surrogate code units
Such operations apply special treatment to every code unit with a numeric value in the inclusive interval from 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and ev… §6.1.4 The String Type
host hosts
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 host environments
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 host hooks
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. A host hook must conform to at least the following requirements: §4.2 Hosts and Implementations
host-synchronizes-with
For a candidate execution execution, its host-synchronizes-with Relation is a host-provided strict partial order on host-specific Memory events that satisfies at least the following. §29.6.4 host-synchronizes-with
hypothetical WeakRef-oblivious
For some set of objects and/or symbols objSet a hypothetical WeakRef-oblivious execution with respect to objSet is an execution whereby the abstract operation WeakRefDeref of a WeakRef whose referent is an element of objSet always returns … §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…
immutable prototype exotic object immutable prototype exotic objects
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
ImportAttribute Record ImportAttribute Records
An ImportAttribute Record consists of the following fields: §16.2.1.3 ModuleRequest Records
ImportEntry Record ImportEntry Records
An ImportEntry Record is a Record that digests information about a single declarative import. Each ImportEntry Record has the fields defined in Table 53: §16.2.1.7 Source Text Module Records
inclusive interval
An interval from a (inclusive) to b (inclusive), also called an inclusive interval from a to b, includes all values x of the same numeric type such that a ≤ x ≤ b, and no others. §5.2.6 Mathematical Operations
%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 integers
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 finite Number valu… §5.2.6 Mathematical Operations
integer index integer indices, integer-indexed
An integer index is a property name n such that CanonicalNumericIndexString(n) returns an integral Number in the inclusive interval from +0𝔽 to 𝔽(253 - 1). An array index is an integer index n such that CanonicalNumericIndexString(n) ret… §6.1.7 The Object Type
integral Number integral Numbers
When the term integral Number is used in this specification, it refers to a finite Number value whose mathematical value is in the set of integers. §5.2.6 Mathematical Operations
interval
An interval from lower bound a to upper bound b is a possibly-infinite, possibly-empty set of numeric values of the same numeric type. Each bound will be described as either inclusive or exclusive, but not both. There are four kinds of int… §5.2.6 Mathematical Operations
is-agent-order-before
For a candidate execution execution, its is-agent-order-before Relation is the least Relation on Memory events that satisfies the following. §29.6.1 is-agent-order-before
%isFinite%
This function is the %isFinite% intrinsic object. §19.2.2 isFinite ( value )
[[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 IsLooselyEqual abstract operations and when used as an operand for the typeof operator. §B.3.6 The [[IsHTMLDDA]] Internal Slot
is-memory-order-before
For a candidate execution execution, is-memory-order-before is a strict total order of all Memory events in EventSet(execution) that satisfies the following. §29.7.4 Sequentially Consistent Atomics
%isNaN%
This function is the %isNaN% intrinsic object. §19.2.3 isNaN ( value )
iterable interface iterable, iterables, iterable object, iterable objects
The iterable interface includes the properties described in Table 78: §27.1.1.1 The Iterable Interface
%Iterator%
is %Iterator%. §27.1.3.1 The Iterator Constructor
Iterator
The Iterator constructor: §27.1.3.1 The Iterator Constructor
Iterator Helper object Iterator Helper objects
An Iterator Helper object is an ordinary object that represents a lazy transformation of some specific source iterator object. There is not a named constructor for Iterator Helper objects. Instead, Iterator Helper objects are created by ca… §27.1.2 Iterator Helper Objects
%IteratorHelperPrototype%
The %IteratorHelperPrototype% object: §27.1.2.1 The %IteratorHelperPrototype% Object
iterator interface iterator object, iterator objects, iterator, iterators
An object that implements the iterator interface must include the property in Table 79. Such objects may also implement the properties in Table 80. §27.1.1.2 The Iterator Interface
%Iterator.prototype%
is %Iterator.prototype%. §27.1.3.3 Properties of the Iterator Prototype Object
Iterator prototype object
The Iterator prototype object: §27.1.3.3 Properties of the Iterator Prototype Object
Iterator Record Iterator Records
An Iterator Record is a Record value used to encapsulate an iterator or async iterator along with the next method. §7.4.1 Iterator Records
IteratorResult interface IteratorResult object, IteratorResult objects
The IteratorResult interface includes the properties listed in Table 84: §27.1.1.5 The IteratorResult Interface

J

Job Jobs
A Job is an Abstract Closure with no parameters that initiates an ECMAScript computation when no other ECMAScript computation is currently in progress. §9.5 Jobs and Host Operations to Enqueue Jobs
JobCallback Record JobCallback Records
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.5.1 JobCallback Records
%JSON%
is %JSON%. §25.5 The JSON Object
JSON Parse Record JSON Parse Records
A JSON Parse Record is a Record value used to describe the initial state of a value parsed from JSON text. §25.5.2.2 JSON Parse Record
JSON Serialization Record JSON Serialization Records
A JSON Serialization Record is a Record value used to enable serialization to the JSON format. §25.5.4.1 JSON Serialization Record

K

keyword keywords
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.7.2 Keywords and Reserved Words

L

leading surrogate leading surrogates
Such operations apply special treatment to every code unit with a numeric value in the inclusive interval from 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and ev… §6.1.4 The String Type
least Relation
A Relation is the least Relation with respect to some conditions when it is the smallest Relation that satisfies those conditions. §6.2.3 The Set and Relation Specification Types
left-capturing parenthesis left-capturing parentheses
A left-capturing parenthesis is any ( pattern character that is matched by the ( terminal of the Atom :: ( GroupSpecifieropt Disjunction ) production. §22.2.1.2 Static Semantics: CountLeftCapturingParensWithin ( parseNode )
Legacy
A conforming implementation of ECMAScript must implement Legacy subclauses, unless they are also marked as Normative Optional. All of the language features and behaviours specified within Legacy subclauses have one or more undesirable char… §2.1 Example Normative Optional Clause Heading
lexicographic code unit order
As applied to a List of Strings, the phrase “sorted according to lexicographic code unit order” means sorting by the numeric value of each code unit up to the length of the shorter string, and sorting the shorter string before the longer s… §6.2.2 The List and Record Specification Types
List Lists
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.2 The List and Record Specification Types
list-concatenation
In this specification, the phrase “the list-concatenation of A, B, ...” (where each argument is a possibly empty List) denotes a new List value whose elements are the concatenation of the elements (in order) of each of the arguments (in or… §6.2.2 The List and Record Specification Types
live
At any point during evaluation, a set of objects and/or symbols objSet is considered live if either of the following conditions is met: §9.9.2 Liveness
LoadedModuleRequest Record LoadedModuleRequest Records
A LoadedModuleRequest Record represents the request to import a module together with the resulting Module Record. It consists of the same fields defined in table Table 35, with the addition of [[Module]]: §16.2.1.3 ModuleRequest Records
low-surrogate code unit low-surrogate code units
Such operations apply special treatment to every code unit with a numeric value in the inclusive interval from 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and ev… §6.1.4 The String Type

M

%Map%
is %Map%. §24.1.1 The Map Constructor
Map Iterator Map Iterators, Map Iterator object, Map Iterator objects
A Map Iterator is an object that represents a specific iteration over some specific Map instance object. There is not a named constructor for Map Iterator objects. Instead, Map Iterator objects are created by calling certain methods of Map… §24.1.5 Map Iterator Objects
%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
Matcher Matchers
A Matcher is an Abstract Closure that takes two arguments—a MatchState and a MatcherContinuation—and returns either a MatchState or failure. A Matcher attempts to match a middle subpattern (specified by the closure's captured values) of th… §22.2.2.1 Notation
MatcherContinuation MatcherContinuations
A MatcherContinuation is an Abstract Closure that takes one MatchState argument and returns either a MatchState or failure. The MatcherContinuation attempts to match the remaining portion (specified by the closure's captured values) of the… §22.2.2.1 Notation
Match Record Match Records
A Match Record is a Record value used to encapsulate the start and end indices of a regular expression match or capture. §22.2.7.5 Match Records
MatchState MatchStates
A MatchState is a Record { [[Input]], [[EndIndex]], [[Captures]] } where [[Input]] is a List of characters representing the String being matched, [[EndIndex]] is an integer, and [[Captures]] is a List of values, one for each left-capturing… §22.2.2.1 Notation
%Math%
is %Math%. §21.3 The Math Object
mathematical value of
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.6 Mathematical Operations
Mathematical values mathematical value
Mathematical values: Arbitrary real numbers, used as the default numeric type. §5.2.6 Mathematical Operations
Memory event Memory events
A Memory event is either a Shared Data Block event, Synchronize event, or such a host-specific event. §29.1 Memory Model Fundamentals
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
memory range memory ranges
Let the memory range of a Shared Data Block event e be the Set of all integers in the interval from e.[[ByteIndex]] (inclusive) to e.[[ByteIndex]] + e.[[ElementSize]] (exclusive). Two events' memory ranges are equal when the events have th… §29.1 Memory Model Fundamentals
Module code
Module code is source text that is code that is provided as a ModuleBody. It is the code that is directly evaluated when a module is initialized. The module code of a particular module does not include any source text that is parsed as par… §11.2 Types of Source Code
Module Environment Record Module Environment Records
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 module namespace exotic objects
An object is a module namespace exotic object if its [[GetPrototypeOf]], [[SetPrototypeOf]], [[IsExtensible]], [[PreventExtensions]], [[GetOwnProperty]], [[DefineOwnProperty]], [[HasProperty]], [[Get]], [[Set]], [[Delete]], and [[OwnProper… §10.4.6 Module Namespace Exotic Objects
Module Record Module Records
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.5 Abstract Module Records
ModuleRequest Record ModuleRequest Records
A ModuleRequest Record represents the request to import a module with given import attributes. It consists of the following fields: §16.2.1.3 ModuleRequest Records
must cover
Typically, an early error rule will then state that, in certain contexts, “p must cover an n”, where p is a Parse Node (an instance of the generalized production) and n is a nonterminal from the supplemental grammar. This means: §5.1.4 The Syntactic Grammar

N

NativeError prototype object
Each NativeError prototype object: §20.5.6.3 Properties of the NativeError Prototype Objects
non-primary time zone identifier non-primary time zone identifiers
A non-primary time zone identifier is an identifier for an available named time zone that is not a primary time zone identifier. An available named time zone identifier is either a primary time zone identifier or a non-primary time zone id… §21.4.1.19 Time Zone Identifiers
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 non-strict functions
One whose code is not strict mode code is called a non-strict function. §10.2 ECMAScript Function Objects
normal completion normal completions
normal completion refers to any Completion Record with a [[Type]] value of normal. §6.2.4 The Completion Record Specification Type
normal completion containing normal completions containing
a normal completion containing some type of value refers to a normal completion that has a value of that type in its [[Value]] field. §6.2.4 The Completion Record Specification Type
Normative Optional
A conforming implementation of ECMAScript may choose to implement or not implement Normative Optional subclauses, unless otherwise indicated. Web browsers are generally required to implement all normative optional subclauses. (See Annex B.… §2 Conformance
NOTE
Similarly, a step that begins with “NOTE:” provides pertinent context for nearby steps. Assertion steps and note steps are strictly informative; they add no additional semantic requirements and hence need not be checked by an implementatio… §5.2 Algorithm Conventions
%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 type is a Number, is not a Number
The Number type has exactly 18,437,736,874,454,810,627 (that is, 264 - 253 + 3) values, representing the double-precision floating point IEEE 754-2019 binary64 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic, … §6.1.6.1 The Number Type
Number value for
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 Object Environment Records
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
Object type is an Object, is not an Object
Each instance of the Object type, also referred to simply as “an Object”, represents a collection of properties. Each property is either a data property, or an accessor property: §6.1.7 The Object Type
offset time zones offset time zone
Time zones supported by an ECMAScript implementation may be available named time zones, represented by the [[Identifier]] field of the Time Zone Identifier Records returned by AvailableNamedTimeZoneIdentifiers, or offset time zones, repres… §21.4.1.19 Time Zone Identifiers
ordinary object ordinary objects
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%
It is the %parseFloat% intrinsic object. §19.2.4 parseFloat ( string )
%parseInt%
It is the %parseInt% intrinsic object. §19.2.5 parseInt ( string, radix )
Parse Node Parse Nodes
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.5 Jobs and Host Operations to Enqueue Jobs
primary time zone identifier primary time zone identifiers
A primary time zone identifier is the preferred identifier for an available named time zone. A non-primary time zone identifier is an identifier for an available named time zone that is not a primary time zone identifier. An available name… §21.4.1.19 Time Zone Identifiers
PrivateElements PrivateElement
Such values are referred to as PrivateElements. §6.2.10 The PrivateElement Specification Type
PrivateEnvironment Record PrivateEnvironment Records
A PrivateEnvironment Record is a specification mechanism used to track Private Names based upon the lexical nesting structure of ClassDeclarations and ClassExpressions in ECMAScript code. They are similar to, but distinct from, Environment… §9.2 PrivateEnvironment Records
Private Name Private Names
The Private Name specification type is used to describe a globally unique value (one which differs from any other Private Name, even if they are otherwise indistinguishable) which represents the key of a private class element (field, metho… §6.2.12 Private Names
%Promise%
is %Promise%. §27.2.3 The Promise Constructor
PromiseCapability Record PromiseCapability Records
A PromiseCapability Record is a Record value used to encapsulate a Promise or promise-like object along with the functions that are capable of resolving or rejecting that promise. PromiseCapability Records are produced by the NewPromiseCap… §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
PromiseReaction Record PromiseReaction Records
A PromiseReaction Record is a Record value used to store information about how a promise should react when it becomes resolved or rejected with a given value. PromiseReaction Records are created by the PerformPromiseThen abstract operation… §27.2.1.2 PromiseReaction Records
Property Descriptor Property Descriptors
The Property Descriptor type is used to explain the manipulation and reification of Object property attributes. A Property Descriptor is a Record with zero or more fields, where each field's name is an attribute name and its value is a cor… §6.2.6 The Property Descriptor Specification Type
property key property keys
The properties of an object are uniquely identified using property keys. A property key is either a String or a Symbol. All Strings and Symbols, including the empty String, are valid as property keys. A property name is a property key that… §6.1.7 The Object Type
property name property names
A property name is a property key that is a String. §6.1.7 The Object Type
%Proxy%
is %Proxy%. §28.2.1 The Proxy Constructor
Proxy exotic object Proxy exotic objects
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 event read events
A read event is either a ReadSharedMemory or a ReadModifyWriteSharedMemory. A write event is either a WriteSharedMemory or a ReadModifyWriteSharedMemory. §29.1 Memory Model Fundamentals
read-modify-write modification function read-modify-write modification functions
A read-modify-write modification function is a mathematical function that is represented as an Abstract Closure that takes two Lists of byte values as arguments and returns a List of byte values. These Abstract Closures satisfy all of the … §25.1.1 Notation
ReadModifyWriteSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. A read event is either a ReadSharedMemory or a ReadModifyWriteSharedMemory. A write event is either a WriteSharedMemory or a … §29.1 Memory Model Fundamentals
reads-from
For a candidate execution execution, its reads-from Relation is the least Relation on Memory events that satisfies the following. §29.6.3 reads-from
ReadSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. A read event is either a ReadSharedMemory or a ReadModifyWriteSharedMemory. A write event is either a WriteSharedMemory or a … §29.1 Memory Model Fundamentals
realm realms
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.3 Realms
Realm Record Realm Records
A realm is represented in this specification as a Realm Record with the fields specified in Table 19: §9.3 Realms
Record Records
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 an ECMAScript language value or specification value. Fi… §6.2.2 The List and Record Specification Types
%ReferenceError%
The ReferenceError constructor is %ReferenceError%. §20.5.5.3 ReferenceError
Reference Record Reference Records
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.5 The Reference Record Specification Type
%Reflect%
is %Reflect%. §28.1 The Reflect Object
%RegExp%
is %RegExp%. §22.2.4 The RegExp Constructor
%RegExp.prototype%
is %RegExp.prototype%. §22.2.6 Properties of the RegExp Prototype Object
RegExp prototype object
The RegExp prototype object: §22.2.6 Properties of the RegExp Prototype Object
RegExp Record RegExp Records
A RegExp Record is a Record value used to store information about a RegExp that is needed during compilation and possibly during matching. §22.2.2.1.1 RegExp Records
RegExp String Iterator RegExp String Iterators, RegExp String Iterator object, RegExp String Iterator objects
A RegExp String Iterator is an object that represents a specific iteration over some specific String instance object, matching against some specific RegExp instance object. There is not a named constructor for RegExp String Iterator object… §22.2.9 RegExp String Iterator Objects
%RegExpStringIteratorPrototype%
The %RegExpStringIteratorPrototype% object: §22.2.9.2 The %RegExpStringIteratorPrototype% Object
Relation Relations
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 Memory events is a set of ordered pairs of Memory events. For a Rel… §6.2.3 The Set and Relation Specification Types
reserved word reserved words
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.7.2 Keywords and Reserved Words
resizable ArrayBuffer
A resizable ArrayBuffer is an ArrayBuffer whose byte length may change after creation via calls to ArrayBuffer.prototype.resize ( newLength ). §25.1.2 Fixed-length and Resizable ArrayBuffer Objects
ResolvedBinding Record ResolvedBinding Records
Bindings are represented by a ResolvedBinding Record, of the form { [[Module]]: Module Record, [[BindingName]]: String | namespace }. If the export is a Module Namespace Object without a direct binding in any module, [[BindingName]] will b… §16.2.1.5 Abstract Module Records
return completion return completions
return completion refers to any Completion Record with a [[Type]] value of return. §6.2.4 The Completion Record Specification Type
running execution context running execution contexts
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.4 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. §5.2.4 Runtime Semantics

S

safe integer
An integer n is a “safe integer” if and only if the Number value for n is not the Number value for any other integer. §21.1.2.5 Number.isSafeInteger ( number )
Script Record Script Records
A Script Record encapsulates information about a script being evaluated. Each script record contains the fields listed in Table 34. §16.1.4 Script Records
%Set%
is %Set%. §24.2.2 The Set Constructor
Set Iterator Set Iterators, Set Iterator object, Set Iterator objects
A Set Iterator is an ordinary object, with the structure defined below, that represents a specific iteration over some specific Set instance object. There is not a named constructor for Set Iterator objects. Instead, Set Iterator objects a… §24.2.6 Set Iterator Objects
%SetIteratorPrototype%
The %SetIteratorPrototype% object: §24.2.6.2 The %SetIteratorPrototype% Object
Set objects Set object
Set objects are collections of ECMAScript language values. A Set may contain each distinct value at most once. Distinct values are discriminated using the semantics of the SameValueZero comparison algorithm. §24.2 Set Objects
%Set.prototype%
is %Set.prototype%. §24.2.4 Properties of the Set Prototype Object
Set prototype object
The Set prototype object: §24.2.4 Properties of the Set Prototype Object
Set Record Set Records
A Set Record is a Record value used to encapsulate the interface of a Set or similar object. §24.2.1.1 Set Records
%SharedArrayBuffer%
is %SharedArrayBuffer%. §25.2.3 The SharedArrayBuffer Constructor
%SharedArrayBuffer.prototype%
is %SharedArrayBuffer.prototype%. §25.2.5 Properties of the SharedArrayBuffer Prototype Object
SharedArrayBuffer prototype object
The SharedArrayBuffer prototype object: §25.2.5 Properties of the SharedArrayBuffer Prototype Object
Shared Data Block Shared Data Blocks
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.9 Data Blocks
Shared Data Block event Shared Data Block events
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. A read event is either a ReadSharedMemory or a ReadModifyWriteSharedMemory. A write event is either a WriteSharedMemory or a … §29.1 Memory Model Fundamentals
sort order
The sort order is the ordering of items after completion of step 4 of the algorithm above. The sort order is implementation-defined if sortCompare is not a consistent comparator for the elements of items. When SortIndexedProperties is invo… §23.1.3.30.1 SortIndexedProperties ( obj, length, sortCompare, holes )
source text matched by
The source text matched by a grammar production or Parse Node derived from it 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… §5.2.3 Syntax-Directed Operations
Source Text Module Record Source Text Module Records
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.7 Source Text Module Records
standard base64 alphabet
The standard base64 alphabet is "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i.e., the String whose elements are the code units corresponding to every letter and number in the Unicode Basic Latin block along with "+"… §23.3.3.6 DecodeFullLengthBase64Chunk ( chunk )
static semantics
Such rules are always associated with a production of a grammar and are called the static semantics of the production. §5.2.5 Static Semantics
strict function strict functions
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 strict partial orders
A strict partial order is a Relation value R that satisfies the following. §6.2.3 The Set and Relation Specification Types
strict total order strict total orders
A strict total order is a Relation value R that satisfies the following. §6.2.3 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 String exotic objects
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
String Iterator String Iterators, String Iterator object, String Iterator objects
A String Iterator is an object that represents a specific iteration over some specific String instance object. There is not a named constructor for String Iterator objects. Instead, String Iterator objects are created by calling certain me… §22.1.5 String Iterator 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
String type is a String, is not a String
The String type is the set of all ordered sequences of zero or more 16-bit unsigned integer values (“elements”) up to a maximum length of 253 - 1 elements. The String type is generally used to represent textual data in a running ECMAScript… §6.1.4 The String Type
substring
The phrase “the substring of string from inclusiveStart to exclusiveEnd” (where string is a String value or a sequence of code units and inclusiveStart and exclusiveEnd are integers) denotes the String value consisting of the consecutive c… §6.1.4 The String Type
Super Reference Record Super Reference Records
[[ThisValue]] an 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.5 The Reference Record Specification Type
surrogate pair surrogate pairs
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 surrounding agents
While an agent's executing thread is executing algorithmic steps, the agent is the surrounding agent for those steps. The steps use the surrounding agent to access the specification-level execution objects held within the agent: the runnin… §9.6 Agents
%Symbol%
is %Symbol%. §20.4.1 The Symbol Constructor
%Symbol.asyncIterator%
Specification Name [[Description]] Value and Purpose %Symbol.asyncIterator% "Symbol.asyncIterator" A method that returns the default async iterator for an object. Called by the semantics of the for-await-of statement. %Symbol.hasInstance% … §6.1.5.1 Well-Known Symbols
%Symbol.hasInstance%
%Symbol.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. %Symbol.isConcatSpreadable% "Symbol.… §6.1.5.1 Well-Known Symbols
%Symbol.isConcatSpreadable%
%Symbol.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. %Symbol.iterator% "Symbol.iterator" A method that … §6.1.5.1 Well-Known Symbols
%Symbol.iterator%
%Symbol.iterator% "Symbol.iterator" A method that returns the default iterator for an object. Called by the semantics of the for-of statement. %Symbol.match% "Symbol.match" A regular expression method that matches the regular expression ag… §6.1.5.1 Well-Known Symbols
%Symbol.match%
%Symbol.match% "Symbol.match" A regular expression method that matches the regular expression against a string. Called by the String.prototype.match method. %Symbol.matchAll% "Symbol.matchAll" A regular expression method that returns an it… §6.1.5.1 Well-Known Symbols
%Symbol.matchAll%
%Symbol.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. %Symbol.replace% "Symbol.replace" A re… §6.1.5.1 Well-Known Symbols
%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
%Symbol.replace%
%Symbol.replace% "Symbol.replace" A regular expression method that replaces matched substrings of a string. Called by the String.prototype.replace method. %Symbol.search% "Symbol.search" A regular expression method that returns the index w… §6.1.5.1 Well-Known Symbols
%Symbol.search%
%Symbol.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. %Symbol.species% "Symbol.species" A function valued prope… §6.1.5.1 Well-Known Symbols
%Symbol.species%
%Symbol.species% "Symbol.species" A function valued property that is the constructor function that is used to create derived objects. %Symbol.split% "Symbol.split" A regular expression method that splits a string at the indices that match … §6.1.5.1 Well-Known Symbols
%Symbol.split%
%Symbol.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. %Symbol.toPrimitive% "Symbol.toPrimitive" A method that converts … §6.1.5.1 Well-Known Symbols
%Symbol.toPrimitive%
%Symbol.toPrimitive% "Symbol.toPrimitive" A method that converts an object to a corresponding primitive value. Called by the ToPrimitive abstract operation. %Symbol.toStringTag% "Symbol.toStringTag" A String valued property that is used in… §6.1.5.1 Well-Known Symbols
%Symbol.toStringTag%
%Symbol.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. %Symbol.unscopables% "Symbol.unscopa… §6.1.5.1 Well-Known Symbols
Symbol type is a Symbol, is not a Symbol
The Symbol type is the set of all non-String values that may be used as the key of an Object property (6.1.7). §6.1.5 The Symbol Type
%Symbol.unscopables%
%Symbol.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 … §6.1.5.1 Well-Known Symbols
Synchronize events Synchronize, Synchronize event
Some operations also introduce Synchronize events, which have no fields and exist purely to directly constrain the permitted orderings of other events. And finally, there are host-specific events. A Memory event is either a Shared Data Blo… §29.1 Memory Model Fundamentals
synchronizes-with
For a candidate execution execution, its synchronizes-with Relation is the least Relation on Memory events that satisfies the following. §29.6.5 synchronizes-with
syntax-directed operation syntax-directed operations
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.3 Syntax-Directed Operations
%SyntaxError%
The SyntaxError constructor is %SyntaxError%. §20.5.5.4 SyntaxError
Synthetic Module Record Synthetic Module Records
A Synthetic Module Record is used to represent information about a module that is defined by specifications. Its exported names are statically defined at creation, while their corresponding values can change over time using SetSyntheticMod… §16.2.1.8 Synthetic Module Records

T

the ASCII word characters
The phrase “the ASCII word characters” denotes the following String value, which consists solely of every letter and number in the Unicode Basic Latin block along with U+005F (LOW LINE): "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxy… §6.1.4 The String Type
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.4 Execution Contexts
the host supports otherwise supports
Moreover, where the feature involves particular wording in an algorithm or early error rule, this is guarded by the condition that “the host supports” the relevant feature. Web browsers are required to support all such features. §Annex B (normative) Additional ECMAScript Features for Web Browsers
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
throw completion throw completions
throw completion refers to any Completion Record with a [[Type]] value of throw. §6.2.4 The Completion Record Specification Type
%ThrowTypeError%
This function is the %ThrowTypeError% intrinsic object. §10.2.4.1 %ThrowTypeError% ( )
time value time values
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
time zone aware
Implementations that follow the requirements for time zones as described in the ECMA-402 Internationalization API specification are called time zone aware. Time zone aware implementations must support available named time zones correspondi… §21.4.1.19 Time Zone Identifiers
Time Zone Identifier Record Time Zone Identifier Records
A Time Zone Identifier Record is a Record used to describe an available named time zone identifier and its corresponding primary time zone identifier. §21.4.1.22 Time Zone Identifier Record
time zone identifiers time zone identifier
Time zones in ECMAScript are represented by time zone identifiers, which are Strings composed entirely of code units in the inclusive interval from 0x0000 to 0x007F. Time zones supported by an ECMAScript implementation may be available nam… §21.4.1.19 Time Zone Identifiers
trailing surrogate trailing surrogates
Such operations apply special treatment to every code unit with a numeric value in the inclusive interval from 0xD800 to 0xDBFF (defined by the Unicode Standard as a leading surrogate, or more formally as a high-surrogate code unit) and ev… §6.1.4 The String Type
%TypedArray%
The %TypedArray% intrinsic object: §23.2.1 The %TypedArray% Intrinsic Object
TypedArray TypedArrays
An object is a TypedArray if its [[PreventExtensions]], [[GetOwnProperty]], [[HasProperty]], [[DefineOwnProperty]], [[Get]], [[Set]], [[Delete]], and [[OwnPropertyKeys]], internal methods use the definitions in this section, and its other … §10.4.5 TypedArray Exotic Objects
TypedArray element type TypedArray element types
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 70, 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
TypedArray With Buffer Witness Record TypedArray With Buffer Witness Records
An TypedArray With Buffer Witness Record is a Record value used to encapsulate a TypedArray along with a cached byte length of the viewed buffer. It is used to help ensure there is a single ReadSharedMemory event of the byte length data bl… §10.4.5.9 TypedArray With Buffer Witness Records
%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%
It is the %unescape% intrinsic object. §B.2.1.2 unescape ( string )
%URIError%
The URIError constructor is %URIError%. §20.5.5.6 URIError
Use Strict Directive Use Strict Directives
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

V

Values without identity value without identity
Values without identity are equal to other values without identity if all of their innate characteristics are the same — characteristics such as the magnitude of an integer or the length of a sequence. Values without identity may be manife… §5.2.8 Identity
value with identity values with identity
In contrast, each value with identity is unique and therefore only equal to itself. Values with identity are like values without identity but with an additional unguessable, unchangeable, universally-unique characteristic called identity. … §5.2.8 Identity

W

WaiterList Record WaiterList Records
A WaiterList Record is used to explain waiting and notification of agents via Atomics.wait, Atomics.waitAsync, and Atomics.notify. §25.4.2 WaiterList Records
Waiter Record Waiter Records
A Waiter Record is a Record value used to denote a particular call to Atomics.wait or Atomics.waitAsync. §25.4.1 Waiter Record
%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 WeakRefs
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 object
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
%WrapForValidIteratorPrototype%
The %WrapForValidIteratorPrototype% object: §27.1.3.2.2.1 The %WrapForValidIteratorPrototype% Object
write event write events
A write event is either a WriteSharedMemory or a ReadModifyWriteSharedMemory. §29.1 Memory Model Fundamentals
WriteSharedMemory
A Shared Data Block event is either a ReadSharedMemory, WriteSharedMemory, or ReadModifyWriteSharedMemory Record. A read event is either a ReadSharedMemory or a ReadModifyWriteSharedMemory. A write event is either a WriteSharedMemory or a … §29.1 Memory Model Fundamentals