Glossary
Each entry is derived from a <dfn> element in the official ECMAScript spec.html (388 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. Such assertions add no additional semantic requirements a… §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.21 CanonicalNumericIndexString ( argument )
- 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 rer.[[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 S if all of the requirements below are met for all values a, b, and c (possibly the same value) in the set S: The notation a <C b means ℝ(comparator(… §23.1.3.30.1 SortIndexedProperties ( obj, len, 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 ( WL )
- 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 E and D that are contained in SharedDataBlockEventSet(execution), E and D 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 ( x )
- 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, provides a this binding. If a function is not an ArrowFunction func… §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 List
- The GlobalSymbolRegistry List is an append-only List that is globally available. It is shared by all realms. Prior to the evaluation of any ECMAScript code, it is initialized as a new empty List. Elements of the GlobalSymbolRegistry List a… §20.4.2.2 Symbol.for ( key )
- 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 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…
- 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 ( 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 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 ( number )
- iterable interface iterable, iterables, iterable object, iterable objects
- The iterable interface includes the property 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 ( node )
- 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 S 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
- %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, len, 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 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 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