diff --git a/index.bs b/index.bs index a43f34d3..e7248b3d 100644 --- a/index.bs +++ b/index.bs @@ -78,6 +78,7 @@ urlPrefix: https://tc39.github.io/ecma262/; spec: ECMA-262 text: Array; url: sec-array-objects text: ArrayBuffer; url: sec-arraybuffer-objects text: DataView; url: sec-dataview-objects + text: Iterator; url: sec-iterator-interface text: Map; url: sec-map-objects text: Promise; url: sec-promise-objects text: Set; url: sec-set-objects @@ -191,6 +192,7 @@ urlPrefix: https://tc39.github.io/ecma262/; spec: ECMA-262 url: sec-object-internal-methods-and-internal-slots text: internal method text: internal slot + text: essential internal method text: Number type; url: sec-ecmascript-language-types-number-type text: Object; for: ECMAScript; url: sec-object-type for: ordinary object; url: sec-ordinary-object-internal-methods-and-internal-slots @@ -6719,18 +6721,7 @@ shall be treated in accordance with the rules for exotic objects. {{HTMLAllCollection}} and {{Location}} interfaces. [[HTML]]
-Unless otherwise specified, exotic objects defined in this section and other specifications have the -same [=ordinary object/internal slots=] as ordinary objects, and all of the internal methods for -which alternative definitions are not given are the same as [=ordinary object/internal -methods|those=] of ordinary objects. - -Unless otherwise specified, the \[[Extensible]] internal slot -of objects defined in this section has the valueobject
".
@@ -10697,7 +10688,8 @@ the [=regular attributes=] and [=regular operations=] defined on the interface,
and is described in more detail in [[#interface-prototype-object]].
Note: Since an [=interface object=] is a [=function object=]
-the typeof
operator will return "function" when applied to an interface object.
+the {{ECMAScript/typeof}} operator will return "function
" when
+applied to an interface object.
typeof
operator will return "function"
+the {{ECMAScript/typeof}} operator will return "function
"
when applied to a [=legacy callback interface object=].
name
property
A default iterator object for a given
[=interface=], target and iteration kind
-is an object whose \[[Prototype]] [=internal slot=] is the
+is an ordinary object that implements the {{Iterator}} ECMAScript interface.
+
+The initial value of the \[[Prototype]] [=internal slot=] of a [=default iterator object=] is the
[=iterator prototype object=]
for the [=interface=].
-A [=default iterator object=]
-has three internal values:
+The initial value of the \[[Extensible]] [=internal slot=] of a [=default iterator object=] is
+next
data property with attributes
@@ -11960,6 +11962,8 @@ The [=class string=] of an [=iterator prototype object=] for a given [=interface
is the result of concatenating the [=identifier=] of the [=interface=]
and the string " Iterator
".
+Issue: Define creation of an [=iterator prototype object=] imperatively instead.
+
prototype
").
1. If [$Type$](|prototype|) is not Object, then:
1. Let |targetRealm| be [$GetFunctionRealm$](|newTarget|).
1. Set |prototype| to the [=interface prototype object=] for |interface| in
|targetRealm|.
- 1. Let |slots| be « \[[Realm]], \[[PrimaryInterface]] ».
- 1. Let |instance| be a newly created [=ECMAScript/object=] in |realm|
- with an internal slot for each name in |slots|.
+ 1. Let |instance| be a newly created [=ECMAScript/object=] in |realm|, with the same internal
+ slots as ordinary objects specified in [=ECMA-262 Ordinary object internal methods and
+ internal slots=], as well as \[[Realm]] and \[[PrimaryInterface]].
+ 1. Set |instance|.\[[Prototype]] to |prototype|.
+ 1. Set |instance|.\[[Extensible]] to