diff --git a/index.bs b/index.bs index 101bab26d..7277b1edf 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,17 +6721,6 @@ 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
".
@@ -10960,11 +10951,12 @@ for that interface on which named properties are exposed.
1. If |interface| is declared to inherit from another interface,
then set |proto| to the [=interface prototype object=] in |realm| for the [=inherited interface=].
1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%ObjectPrototype%}}]].
- 1. Let |obj| be a newly created object.
- 1. Set |obj|'s internal methods to the definitions specified in
+ 1. Let |obj| be a newly created object, with the same internal slots as those of ordinary
+ objects specified in [=ECMA-262 Ordinary object internal methods and internal slots=].
+ 1. Set |obj|'s [=essential internal methods=] to the definitions specified in
[=ECMA-262 Ordinary object internal methods and internal slots=],
unless they are specified in the the rest of [[#named-properties-object]].
- 1. Set |obj|'s remaining internal methods to the definitions specified below.
+ 1. Set |obj|'s remaining [=essential internal methods=] to the definitions specified below.
1. Set |obj|.\[[Prototype]] to |proto|.
1. Set |obj|.\[[Extensible]] to 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
@@ -11961,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.
+