The abstract operation ToPrimitive takes argument input (an ECMAScript language value) and optional argument preferredType (string or number) and returns either a normal completion containing an ECMAScript language value or a throw completion. 它将其 input 实参转换为非 Object 类型。如果对象能够转换为不止一种原始类型,它可以使用可选提示 preferredType 来偏向该类型。 It performs the following steps when called:
The abstract operation OrdinaryToPrimitive takes arguments obj (an Object) and hint (string or number) and returns either a normal completion containing an ECMAScript language value or a throw completion. It performs the following steps when called:
The abstract operation ToBoolean takes argument arg (an ECMAScript language value) and returns a Boolean. 它将 arg 转换为 Boolean 类型的值。 It performs the following steps when called:
The abstract operation ToNumeric takes argument arg (an ECMAScript language value) and returns either a normal completion containing either a Number or a BigInt, or a throw completion. 它返回转换为 Number 或 BigInt 的 arg。 It performs the following steps when called:
The abstract operation ToNumber takes argument arg (an ECMAScript language value) and returns either a normal completion containing a Number or a throw completion. 它将 arg 转换为 Number 类型的值。 It performs the following steps when called:
The abstract operation RoundMVResult takes argument n (a mathematical value) and returns a Number. 它以实现定义的方式将 n 转换为 Number。就此抽象操作而言,如果一个数字不是零,或者其左侧存在非零数字且其右侧存在非零数字,则该数字是有效的。就此抽象操作而言,一个数学值表示的“所表示的数学值”是一个数学值“的十进制表示”的逆。 It performs the following steps when called:
The abstract operation ToIntegerOrInfinity takes argument arg (an ECMAScript language value) and returns either a normal completion containing either an integer, +∞, or -∞, or a throw completion. 它将 arg 转换为表示其 Number 值并截断小数部分的整数;或者当该 Number 值为无穷时,转换为 +∞ 或 -∞。 It performs the following steps when called:
The abstract operation ToFixedSizeInteger takes arguments int (an integer, +∞, or -∞), signed (unsigned or signed), and bitWidth (a positive integer) and returns an integer. 它将 int 映射到 2bitWidth 个整数之一:如果 signed 是 unsigned,则在从 0 到 2bitWidth - 1 的闭区间内;如果 signed 是 signed,则在从 -2bitWidth - 1 到 2bitWidth - 1 - 1 的闭区间内。 It performs the following steps when called:
The abstract operation ToInt32 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 232 个 integral Number 值之一,这些值位于从 𝔽(-231) 到 𝔽(231 - 1) 的闭区间内,不包括 -0𝔽。 It performs the following steps when called:
The abstract operation ToUint32 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 232 个 integral Number 值之一,这些值位于从 +0𝔽 到 𝔽(232 - 1) 的闭区间内。 It performs the following steps when called:
The abstract operation ToInt16 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 216 个 integral Number 值之一,这些值位于从 𝔽(-215) 到 𝔽(215 - 1) 的闭区间内,不包括 -0𝔽。 It performs the following steps when called:
The abstract operation ToUint16 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 216 个 integral Number 值之一,这些值位于从 +0𝔽 到 𝔽(216 - 1) 的闭区间内。 It performs the following steps when called:
The abstract operation ToInt8 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 28 个 integral Number 值之一,这些值位于从 -128𝔽 到 127𝔽 的闭区间内,不包括 -0𝔽。 It performs the following steps when called:
The abstract operation ToUint8 takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 转换为 28 个 integral Number 值之一,这些值位于从 +0𝔽 到 255𝔽 的闭区间内。 It performs the following steps when called:
The abstract operation ToUint8Clamp takes argument arg (an ECMAScript language value) and returns either a normal completion containing an integral Number or a throw completion. 它将 arg 钳制并舍入为 28 个 integral Number 值之一,这些值位于从 +0𝔽 到 255𝔽 的闭区间内。 It performs the following steps when called:
The abstract operation ToBigInt takes argument arg (an ECMAScript language value) and returns either a normal completion containing a BigInt or a throw completion. 它将 arg 转换为 BigInt 值;如果需要从 Number 进行隐式转换,则抛出。 It performs the following steps when called:
The abstract operation ToBigInt64 takes argument arg (an ECMAScript language value) and returns either a normal completion containing a BigInt or a throw completion. 它将 arg 转换为 264 个 BigInt 值之一,这些值位于从 ℤ(-263) 到 ℤ(263 - 1) 的闭区间内。 It performs the following steps when called:
The abstract operation ToBigUint64 takes argument arg (an ECMAScript language value) and returns either a normal completion containing a BigInt or a throw completion. 它将 arg 转换为 264 个 BigInt 值之一,这些值位于从 0ℤ 到 ℤ(264 - 1) 的闭区间内。 It performs the following steps when called:
The abstract operation ToString takes argument arg (an ECMAScript language value) and returns either a normal completion containing a String or a throw completion. 它将 arg 转换为 String 类型的值。 It performs the following steps when called:
The abstract operation ToObject takes argument arg (an ECMAScript language value) and returns either a normal completion containing an Object or a throw completion. 它将 arg 转换为 Object 类型的值。 It performs the following steps when called:
The abstract operation ToPropertyKey takes argument arg (an ECMAScript language value) and returns either a normal completion containing a property key or a throw completion. 它将 arg 转换为可用作属性键的值。 It performs the following steps when called:
The abstract operation ToLength takes argument arg (an ECMAScript language value) and returns either a normal completion containing a non-negative integral Number or a throw completion. 它将 arg 钳制并截断为适合用作类数组对象长度的非负 integral Number。 It performs the following steps when called:
The abstract operation CanonicalNumericIndexString takes argument arg (a String) and returns a Number or undefined. 如果 arg 是 "-0",或与某个 Number 值n 的 ToString(n) 完全匹配,则它返回相应的 Number 值。否则,它返回 undefined。 It performs the following steps when called:
The abstract operation ToIndex takes argument arg (an ECMAScript language value) and returns either a normal completion containing a non-negative integer or a throw completion. 它将 arg 转换为整数,并在该整数为非负且对应于整数索引时返回该整数。否则,它抛出异常。 It performs the following steps when called:
The abstract operation RequireObjectCoercible takes argument arg (an ECMAScript language value) and returns either a normal completion containing unused or a throw completion. 如果 arg 是无法使用 ToObject 转换为 Object 的值,则它抛出错误。 It performs the following steps when called:
如果 arg 是 undefined 或 null,则抛出 TypeError 异常。
返回 unused。
7.2.2 IsArray ( arg )
The abstract operation IsArray takes argument arg (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. It performs the following steps when called:
The abstract operation IsCallable takes argument arg (an ECMAScript language value) and returns a Boolean. 它确定 arg 是否是具有 [[Call]] 内部方法的可调用函数。 It performs the following steps when called:
如果 arg 不是 Object,则返回 false。
如果 arg 具有 [[Call]] 内部方法,则返回 true。
返回 false。
7.2.4 IsConstructor ( arg )
The abstract operation IsConstructor takes argument arg (an ECMAScript language value) and returns a Boolean. 它确定 arg 是否是具有 [[Construct]] 内部方法的函数对象。 It performs the following steps when called:
如果 arg 不是 Object,则返回 false。
如果 arg 具有 [[Construct]] 内部方法,则返回 true。
返回 false。
7.2.5 IsExtensible ( obj )
The abstract operation IsExtensible takes argument obj (an Object) and returns either a normal completion containing a Boolean or a throw completion. 它用于确定是否可以向 obj 添加额外属性。 It performs the following steps when called:
返回 ? obj.[[IsExtensible]]()。
7.2.6 IsRegExp ( arg )
The abstract operation IsRegExp takes argument arg (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. It performs the following steps when called:
The abstract operation IsStringWellFormedUnicode takes argument string (a String) and returns a Boolean. 它按照 6.1.4 中所述,将 string 解释为 UTF-16 编码码点序列,并确定它是否是格式良好的 UTF-16 序列。 It performs the following steps when called:
The abstract operation SameType takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns a Boolean. 它确定两个实参是否属于同一类型。 It performs the following steps when called:
如果 x 是 undefined 且 y 是 undefined,则返回 true。
如果 x 是 null 且 y 是 null,则返回 true。
如果 x 是 Boolean 且 y 是 Boolean,则返回 true。
如果 x 是 Number 且 y 是 Number,则返回 true。
如果 x 是 BigInt 且 y 是 BigInt,则返回 true。
如果 x 是 Symbol 且 y 是 Symbol,则返回 true。
如果 x 是 String 且 y 是 String,则返回 true。
如果 x 是 Object 且 y 是 Object,则返回 true。
返回 false。
7.2.9 SameValue ( x, y )
The abstract operation SameValue takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns a Boolean. 它确定两个实参是否为同一值。 It performs the following steps when called:
此算法与 IsStrictlyEqual 算法的不同之处在于,它将所有 NaN 值视为等价,并且区分 +0𝔽 与 -0𝔽。
7.2.10 SameValueZero ( x, y )
The abstract operation SameValueZero takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns a Boolean. 它确定两个实参是否为同一值(忽略 +0𝔽 与 -0𝔽 之间的差异)。 It performs the following steps when called:
The abstract operation SameValueNonNumber takes arguments x (an ECMAScript language value, but not a Number) and y (an ECMAScript language value, but not a Number) and returns a Boolean. It performs the following steps when called:
The abstract operation IsLessThan takes arguments x (an ECMAScript language value), y (an ECMAScript language value), and leftFirst (a Boolean) and returns either a normal completion containing either a Boolean or undefined, or a throw completion. 它提供比较 x < y 的语义,返回 true、false 或 undefined(表示操作数无法被强制转换为同一数值类型的可比较值)。leftFirst 标志用于控制对 x 和 y 执行可能具有可见副作用的操作的顺序。它是必要的,因为 ECMAScript 指定表达式按从左到右的顺序求值。如果 leftFirst 是 true,则 x 形参对应于出现在 y 形参对应表达式左侧的表达式。如果 leftFirst 是 false,则情况相反,必须先对 y 执行操作,再对 x 执行操作。 It performs the following steps when called:
The abstract operation IsLooselyEqual takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. 它提供 == 运算符的语义。 It performs the following steps when called:
The abstract operation IsStrictlyEqual takes arguments x (an ECMAScript language value) and y (an ECMAScript language value) and returns a Boolean. 它提供 === 运算符的语义。 It performs the following steps when called:
The abstract operation MakeBasicObject takes argument internalSlotsList (a List of internal slot names) and returns an Object. 它是所有通过算法创建的 ECMAScript 对象的来源,包括普通对象和异质对象。它抽取了创建所有对象时使用的公共步骤,并集中化对象创建。 It performs the following steps when called:
The abstract operation Get takes arguments obj (an Object) and propertyKey (a property key) and returns either a normal completion containing an ECMAScript language value or a throw completion. 它用于取回对象的特定属性的值。 It performs the following steps when called:
返回 ? obj.[[Get]](propertyKey, obj)。
7.3.3 GetV ( value, propertyKey )
The abstract operation GetV takes arguments value (an ECMAScript language value) and propertyKey (a property key) and returns either a normal completion containing an ECMAScript language value or a throw completion. 它用于取回 ECMAScript 语言值的特定属性的值。如果该值不是对象,则使用适合该值类型的包装对象执行属性查找。 It performs the following steps when called:
The abstract operation Set takes arguments obj (an Object), propertyKey (a property key), value (an ECMAScript language value), and throw (a Boolean) and returns either a normal completion containing unused or a throw completion. 它用于设置对象的特定属性的值。value 是该属性的新值。 It performs the following steps when called:
7.3.5 CreateDataProperty ( obj, propertyKey, value )
The abstract operation CreateDataProperty takes arguments obj (an Object), propertyKey (a property key), and value (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. 它用于创建对象的一个新自有属性。 It performs the following steps when called:
7.3.6 CreateDataPropertyOrThrow ( obj, propertyKey, value )
The abstract operation CreateDataPropertyOrThrow takes arguments obj (an Object), propertyKey (a property key), and value (an ECMAScript language value) and returns either a normal completion containing unused or a throw completion. 它用于创建对象的一个新自有属性。如果所请求的属性更新不能执行,则抛出 TypeError 异常。 It performs the following steps when called:
7.3.7 CreateNonEnumerableDataPropertyOrThrow ( obj, propertyKey, value )
The abstract operation CreateNonEnumerableDataPropertyOrThrow takes arguments obj (an Object), propertyKey (a property key), and value (an ECMAScript language value) and returns unused. 它用于创建普通对象的一个新的不可枚举自有属性。 It performs the following steps when called:
The abstract operation DefinePropertyOrThrow takes arguments obj (an Object), propertyKey (a property key), and propertyDesc (a Property Descriptor) and returns either a normal completion containing unused or a throw completion. 它用于调用对象的 [[DefineOwnProperty]] 内部方法,调用方式为:如果所请求的属性更新不能执行,则会抛出 TypeError 异常。 It performs the following steps when called:
The abstract operation DeletePropertyOrThrow takes arguments obj (an Object) and propertyKey (a property key) and returns either a normal completion containing unused or a throw completion. 它用于移除对象的特定自有属性。如果该属性不可配置,则抛出异常。 It performs the following steps when called:
令 success 为 ? obj.[[Delete]](propertyKey)。
如果 success 是 false,则抛出 TypeError 异常。
返回 unused。
7.3.10 GetMethod ( value, propertyKey )
The abstract operation GetMethod takes arguments value (an ECMAScript language value) and propertyKey (a property key) and returns either a normal completion containing either a function object or undefined, or a throw completion. 当预期某个 ECMAScript 语言值的特定属性的值是函数时,它用于获取该属性的值。 It performs the following steps when called:
The abstract operation HasProperty takes arguments obj (an Object) and propertyKey (a property key) and returns either a normal completion containing a Boolean or a throw completion. 它用于确定对象是否具有指定属性键的属性。该属性可以是自有属性或继承属性。 It performs the following steps when called:
返回 ? obj.[[HasProperty]](propertyKey)。
7.3.12 HasOwnProperty ( obj, propertyKey )
The abstract operation HasOwnProperty takes arguments obj (an Object) and propertyKey (a property key) and returns either a normal completion containing a Boolean or a throw completion. 它用于确定对象是否具有指定属性键的自有属性。 It performs the following steps when called:
The abstract operation Call takes arguments func (an ECMAScript language value) and thisValue (an ECMAScript language value) and optional argument argList (a List of ECMAScript language values) and returns either a normal completion containing an ECMAScript language value or a throw completion. 它用于调用函数对象的 [[Call]] 内部方法。func 是函数对象,thisValue 是作为 [[Call]] 的 this 值的 ECMAScript 语言值,argList 是传递给该内部方法对应实参的值。如果 argList 不存在,则使用新的空 List 作为其值。 It performs the following steps when called:
The abstract operation Construct takes argument ctor (a constructor) and optional arguments argList (a List of ECMAScript language values) and newTarget (a constructor) and returns either a normal completion containing an Object or a throw completion. 它用于调用函数对象的 [[Construct]] 内部方法。argList 和 newTarget 是要作为该内部方法对应实参传递的值。如果 argList 不存在,则使用新的空 List 作为其值。如果 newTarget 不存在,则使用 ctor 作为其值。 It performs the following steps when called:
The abstract operation SetIntegrityLevel takes arguments obj (an Object) and level (sealed or frozen) and returns either a normal completion containing a Boolean or a throw completion. 它用于固定对象的自有属性集合。 It performs the following steps when called:
The abstract operation TestIntegrityLevel takes arguments obj (an Object) and level (sealed or frozen) and returns either a normal completion containing a Boolean or a throw completion. 它用于确定对象的自有属性集合是否已固定。 It performs the following steps when called:
The abstract operation CreateArrayFromList takes argument elements (a List of ECMAScript language values) and returns an Array. 它用于创建一个 Array,其元素由 elements 提供。 It performs the following steps when called:
The abstract operation LengthOfArrayLike takes argument obj (an Object) and returns either a normal completion containing a non-negative integer or a throw completion. 它返回类数组对象的 "length" 属性的值。 It performs the following steps when called:
The abstract operation CreateListFromArrayLike takes argument obj (an ECMAScript language value) and optional argument validElementTypes (all or property-key) and returns either a normal completion containing a List of ECMAScript language values or a throw completion. 它用于创建一个 List 值,其元素由 obj 的索引属性提供。validElementTypes 指示允许作为元素的值的类型。 It performs the following steps when called:
The abstract operation Invoke takes arguments value (an ECMAScript language value) and propertyKey (a property key) and optional argument argList (a List of ECMAScript language values) and returns either a normal completion containing an ECMAScript language value or a throw completion. 它用于调用 ECMAScript 语言值的方法属性。value 同时作为属性的查找点和该调用的 this 值。argList 是传递给该方法的实参值列表。如果 argList 不存在,则使用新的空 List 作为其值。 It performs the following steps when called:
The abstract operation OrdinaryHasInstance takes arguments ctor (an ECMAScript language value) and instance (an ECMAScript language value) and returns either a normal completion containing a Boolean or a throw completion. 它实现默认算法,用于确定 instance 是否继承自 ctor 提供的实例对象继承路径。 It performs the following steps when called:
The abstract operation SpeciesConstructor takes arguments obj (an Object) and defaultCtor (a constructor) and returns either a normal completion containing a constructor or a throw completion. 它用于取回应当用来创建派生自 obj 的新对象的构造函数。defaultCtor 是在从 obj 开始无法找到构造函数的 %Symbol.species% 属性时要使用的构造函数。 It performs the following steps when called:
The abstract operation EnumerableOwnProperties takes arguments obj (an Object) and kind (key, value, or key+value) and returns either a normal completion containing a List of ECMAScript language values or a throw completion. It performs the following steps when called:
The abstract operation GetFunctionRealm takes argument func (a function object) and returns either a normal completion containing a Realm Record or a throw completion. It performs the following steps when called:
The abstract operation CopyDataProperties takes arguments target (an Object), source (an ECMAScript language value), and excludedItems (a List of property keys) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The abstract operation PrivateElementFind takes arguments obj (an Object) and privateName (a Private Name) and returns a PrivateElement or empty. It performs the following steps when called:
7.3.27 PrivateFieldAdd ( obj, privateName, value )
The abstract operation PrivateFieldAdd takes arguments obj (an Object), privateName (a Private Name), and value (an ECMAScript language value) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The abstract operation PrivateMethodOrAccessorAdd takes arguments obj (an Object) and method (a PrivateElement) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The host-defined abstract operation HostEnsureCanAddPrivateElement takes argument obj (an Object) and returns either a normal completion containing unused or a throw completion. 它允许宿主环境阻止向特定宿主定义的异质对象添加私有元素。
The abstract operation PrivateGet takes arguments obj (an Object) and privateName (a Private Name) and returns either a normal completion containing an ECMAScript language value or a throw completion. It performs the following steps when called:
The abstract operation PrivateSet takes arguments obj (an Object), privateName (a Private Name), and value (an ECMAScript language value) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The abstract operation DefineField takes arguments receiver (an Object) and fieldRecord (a ClassFieldDefinition Record) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The abstract operation InitializeInstanceElements takes arguments obj (an Object) and ctor (an ECMAScript function object or a built-in function object) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
7.3.34 AddValueToKeyedGroup ( groups, key, value )
The abstract operation AddValueToKeyedGroup takes arguments groups (a List of Records with fields [[Key]] (an ECMAScript language value) and [[Elements]] (a List of ECMAScript language values)), key (an ECMAScript language value), and value (an ECMAScript language value) and returns unused. It performs the following steps when called:
对 groups 的每个 Record { [[Key]], [[Elements]] } group,执行:
令 group 为 Record { [[Key]]: key, [[Elements]]: « value » }。
将 group 追加到 groups。
返回 unused。
7.3.35 GroupBy ( items, callback, keyCoercion )
The abstract operation GroupBy takes arguments items (an ECMAScript language value), callback (an ECMAScript language value), and keyCoercion (property or collection) and returns either a normal completion containing a List of Records with fields [[Key]] (an ECMAScript language value) and [[Elements]] (a List of ECMAScript language values), or a throw completion. It performs the following steps when called:
The abstract operation GetOptionsObject takes argument options (an ECMAScript language value) and returns either a normal completion containing an Object or a throw completion. It performs the following steps when called:
7.3.37 SetterThatIgnoresPrototypeProperties ( thisValue, home, propertyKey, value )
The abstract operation SetterThatIgnoresPrototypeProperties takes arguments thisValue (an ECMAScript language value), home (an Object), propertyKey (a property key), and value (an ECMAScript language value) and returns either a normal completion containing unused or a throw completion. It performs the following steps when called:
The abstract operation GetIteratorDirect takes argument obj (an Object) and returns either a normal completion containing an Iterator Record or a throw completion. It performs the following steps when called:
The abstract operation GetIteratorFromMethod takes arguments obj (an ECMAScript language value) and method (a function object) and returns either a normal completion containing an Iterator Record or a throw completion. It performs the following steps when called:
The abstract operation GetIterator takes arguments obj (an ECMAScript language value) and kind (sync or async) and returns either a normal completion containing an Iterator Record or a throw completion. It performs the following steps when called:
The abstract operation GetIteratorFlattenable takes arguments obj (an ECMAScript language value) and primitiveHandling (iterate-string-primitives or reject-primitives) and returns either a normal completion containing an Iterator Record or a throw completion. It performs the following steps when called:
The abstract operation IteratorNext takes argument iteratorRecord (an Iterator Record) and optional argument value (an ECMAScript language value) and returns either a normal completion containing an Object or a throw completion. It performs the following steps when called:
如果 value 不存在,则
令 result 为 Completion(Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]]))。
否则,
令 result 为 Completion(Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]], « value »))。
The abstract operation IteratorComplete takes argument iteratorResult (an Object) and returns either a normal completion containing a Boolean or a throw completion. It performs the following steps when called:
The abstract operation IteratorValue takes argument iteratorResult (an Object) and returns either a normal completion containing an ECMAScript language value or a throw completion. It performs the following steps when called:
The abstract operation IteratorStep takes argument iteratorRecord (an Iterator Record) and returns either a normal completion containing either an Object or done, or a throw completion. 它通过调用 iteratorRecord.[[NextMethod]] 从 iteratorRecord.[[Iterator]] 请求下一个值,并返回 done 或 IteratorResult 对象;done 表示该迭代器已到达其末尾,IteratorResult 对象表示下一个值可用。 It performs the following steps when called:
The abstract operation IteratorStepValue takes argument iteratorRecord (an Iterator Record) and returns either a normal completion containing either an ECMAScript language value or done, or a throw completion. 它通过调用 iteratorRecord.[[NextMethod]] 从 iteratorRecord.[[Iterator]] 请求下一个值,并返回 done 或 IteratorResult 对象中的值;done 表示该迭代器已到达其末尾,值表示下一个值可用。 It performs the following steps when called:
The abstract operation IteratorClose takes arguments iteratorRecord (an Iterator Record) and completion (a Completion Record) and returns a Completion Record. 它用于通知迭代器应执行其在到达完成状态时通常会执行的任何动作。 It performs the following steps when called:
The abstract operation AsyncIteratorClose takes arguments iteratorRecord (an Iterator Record) and completion (a Completion Record) and returns a Completion Record. 它用于通知异步迭代器应执行其在到达完成状态时通常会执行的任何动作。 It performs the following steps when called:
The abstract operation CreateIteratorResultObject takes arguments value (an ECMAScript language value) and done (a Boolean) and returns an Object that conforms to the IteratorResult interface. 它创建一个符合 IteratorResult 接口的对象。 It performs the following steps when called:
The abstract operation IteratorToList takes argument iteratorRecord (an Iterator Record) and returns either a normal completion containing a List of ECMAScript language values or a throw completion. It performs the following steps when called:
The abstract operation AddDisposableResource takes arguments disposableResourceStack (DisposableResource 记录的列表,), value (ECMAScript 语言值,), and kind (sync-dispose 或 async-dispose,) and optional argument method (函数对象,) and returns 含有 unused 的正常完成,或抛出完成. It performs the following steps when called:
The abstract operation CreateDisposableResource takes arguments value (ECMAScript 语言值,) and kind (sync-dispose 或 async-dispose,) and optional argument method (函数对象,) and returns 含有 DisposableResource 记录的正常完成,或抛出完成. It performs the following steps when called:
The abstract operation GetDisposeMethod takes arguments value (ECMAScript 语言值,) and kind (sync-dispose 或 async-dispose,) and returns 含有函数对象或 undefined 的正常完成,或抛出完成. It performs the following steps when called:
The abstract operation DisposeResources takes arguments disposableResourceStack (DisposableResource 记录的列表,) and completion (含有 ECMAScript 语言值或 empty 的正常完成,或突兀完成,) and returns 含有 ECMAScript 语言值或 empty 的正常完成,或突兀完成. It performs the following steps when called: