From 98c9ef6645930a5356e279471f1210cc3ecc7252 Mon Sep 17 00:00:00 2001
From: Daniel Ehrenberg
[Constructor]
, has the same meaning as
using an empty argument list, [Constructor()]
. For each
[{{Constructor}}] extended attribute
-on the interface, there will be a way to construct an object that implements
+on the interface, there will be a way to construct an object that [=implements=]
the interface by passing the specified arguments.
The prose definition of a constructor must
@@ -8397,7 +8396,7 @@ for an interface is to be implemented.
An ECMAScript implementation supporting these interfaces would
have a \[[Construct]] property on the
Circle
interface object which would
- return a new object that implements the interface. It would take
+ return a new object that [=implements=] the interface. It would take
either zero or one argument. The
NodeList
interface object would not
have a \[[Construct]] property.
@@ -9212,7 +9211,7 @@ If the [{{LenientThis}}]
appears on a [=regular attribute=],
it indicates that invocations of the attribute’s getter or setter
with a [NamedConstructor=identifier ()]
.
For each [{{NamedConstructor}}] extended attribute on the interface,
there will be a way to construct an object that
-implements the interface by passing the specified arguments to the [=constructor=]
+[=implements=] the interface by passing the specified arguments to the [=constructor=]
that is the value of the aforementioned property.
The [=NamedConstructor identifier|identifier=] used for the named constructor must not
@@ -10244,7 +10243,7 @@ If the [{{Unscopable}}]
[=extended attribute=]
appears on a [=regular attribute=]
or [=regular operation=], it
-indicates that an object that implements an interface with the given
+indicates that an object that [=implements=] an interface with the given
interface member will not include its property name in any object
environment record with it as its base object. The result of this is
that bare identifiers matching the property name will not resolve to
@@ -10372,9 +10371,9 @@ Note: The HTML Standard defines how a security check is performed. [[!HTML]]
then remove from |S| all other entries.
- 1. Otherwise: if |V| is a [=platform object=], and
+ 1. Otherwise: if |V| [=is a platform object=], and
there is an entry in |S| that has one of the following types at position |i| of its type list,
- * an [=interface type=] that |V| implements
+ * an [=interface type=] that |V| [=implements=]
* {{object}}
* a [=nullable type|nullable=] version of any of the above types
* an [=annotated type=] whose [=annotated types/inner type=] is one of the above types
@@ -10660,7 +10659,7 @@ as described in sections [[#es-constants]] and [[#es-operations]].
If the [=interface=] is declared with a [{{Constructor}}] [=extended attribute=],
then the [=interface object=] can be called as a [=constructor=]
-to create an object that implements that interface.
+to create an object that [=implements=] that interface.
Calling that interface as a function will throw an exception.
[=Interface objects=] whose [=interfaces=] are not declared
@@ -10702,7 +10701,7 @@ the typeof
operator will return "function" when applied to an inter
Rethrow any exceptions.
1. Let |O| be the result of [=converted to an ECMAScript value|converting=] |R|
to an ECMAScript [=interface type=] value |I|.
- 1. Assert: |O| is an object that implements |I|.
+ 1. Assert: |O| is an object that [=implements=] |I|.
1. Assert: |O|.\[[Realm]] is equal to |realm|.
1. Return |O|.
1. Let |constructorProto| be |realm|.\[[Intrinsics]].[[{{%FunctionPrototype%}}]].
@@ -10738,7 +10737,7 @@ implement the interface on which the
[{{NamedConstructor}}] extended attributes appear.
If the actions listed in the description of the constructor return normally,
-then those steps must return an object that implements interface |I|.
+then those steps must return an object that [=implements=] interface |I|.
This object's relevant [=Realm=] must be the same as that of the [=named constructor=].
toString
".
* If the [=stringifier=] is [=unforgeable=] on the interface
or if the interface was declared with the [{{Global}}] [=extended attribute=],
- then the property exists on every object that implements the interface.
+ then the property exists on every object that [=implements=] the interface.
Otherwise, the property exists on the [=interface prototype object=].
* The property has attributes
{ \[[Writable]]: |B|, \[[Enumerable]]: method
".
- 1. If |O| is not an object that implements the [=interface=]
+ 1. If |O| is not an object that [=implements=] the [=interface=]
on which the stringifier was declared, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |V| be an uninitialized variable.
1. Depending on where stringifier
was specified:
@@ -11572,7 +11571,7 @@ and whose value is a [=function object=].
The location of the property is determined as follows:
* If the interface was declared with the [{{Global}}] [=extended attribute=],
- then the property exists on the single object that implements the interface.
+ then the property exists on the single object that [=implements=] the interface.
* Otherwise, the property exists solely on the interface’s [=interface prototype object=].
If the interface defines an [=indexed property getter=],
@@ -11584,14 +11583,14 @@ then the [=function object=] is {{%ArrayProto_values%}}.
when invoked, must behave as follows:
1. Let |object| be the result of calling ToObject on the @@iterator
", and
* the type "method
".
1. Let |interface| be the [=interface=]
the [=iterable declaration=] is on.
- 1. If |object| is not a [=platform object=] that implements |interface|,
+ 1. If |object| is not a [=platform object=] that [=implements=] |interface|,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |iterator| be a newly created [=default iterator object=]
for |interface| with |object| as its target and iterator kind "key+value
".
@@ -11605,13 +11604,13 @@ then the [=function object=] is {{%ArrayProto_values%}}.
when invoked, must behave as follows:
1. Let |object| be the result of calling ToObject on the @@iterator
", and
* the type "method
".
1. If |object| is not a [=platform object=]
- that implements the [=interface=]
+ that [=implements=] the [=interface=]
on which the [=maplike declaration=]
or [=setlike declaration=] is defined,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
@@ -11648,7 +11647,7 @@ and whose value is a [=function object=].
The location of the property is determined as follows:
* If the interface was declared with the [{{Global}}] [=extended attribute=],
- then the property exists on the single object that implements the interface.
+ then the property exists on the single object that [=implements=] the interface.
* Otherwise, the property exists solely on the interface’s [=interface prototype object=].
If the interface defines an [=indexed property getter=],
@@ -11692,7 +11691,7 @@ then the [=function object=] is {{%ArrayProto_forEach%}}.
the method, when invoked, must behave as follows:
1. Let |object| be the result of calling ToObject on the forEach
", and
@@ -11701,7 +11700,7 @@ then the [=function object=] is {{%ArrayProto_forEach%}}.
on which the [=maplike declaration=]
or [=setlike declaration=] is declared.
1. If |object| is not a [=platform object=]
- that implements |interface|,
+ that [=implements=] |interface|,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |callbackFn| be the value of the first argument passed to the function, or keys
", and
@@ -11789,7 +11788,7 @@ then the [=function object=] is {{%ArrayProto_keys%}}.
1. Let |interface| be the [=interface=]
on which the [=iterable declaration=] is declared on.
1. If |object| is not a [=platform object=]
- that implements |interface|,
+ that [=implements=] |interface|,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |iterator| be a newly created [=default iterator object=]
for |interface| with |object| as its target and iterator kind "key
".
@@ -11812,7 +11811,7 @@ and whose value is a [=function object=].
The location of the property is determined as follows:
* If the interface was declared with the [{{Global}}] [=extended attribute=],
- then the property exists on the single object that implements the interface.
+ then the property exists on the single object that [=implements=] the interface.
* Otherwise, the property exists solely on the interface’s [=interface prototype object=].
If the interface has a [=value iterator=],
@@ -11825,7 +11824,7 @@ the value of the {{@@iterator}} property.
then the method, when invoked, must behave as follows:
1. Let |object| be the result of calling ToObject on the entries
", and
@@ -11833,7 +11832,7 @@ the value of the {{@@iterator}} property.
1. Let |interface| be the [=interface=]
on which the [=iterable declaration=] is declared on.
1. If |object| is not a [=platform object=]
- that implements |interface|,
+ that [=implements=] |interface|,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |iterator| be a newly created [=default iterator object=]
for |interface| with |object| as its target and iterator kind "value
".
@@ -11896,7 +11895,7 @@ must be {{%IteratorPrototype%}}.
1. Let |interface| be the [=interface=] for which the
[=iterator prototype object=] exists.
1. Let |object| be the result of calling ToObject on the next
", and
@@ -11941,7 +11940,7 @@ and the string " Iterator
".
method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |map| be the {{ECMAScript/Map}} object that is the value of |O|’s \[[BackingMap]] [=internal slot=].
1. Let |function| be [=?=] GetMethod(|map|, |name|).
1. If |function| is size
", and
* the type "getter
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |map| be the {{ECMAScript/Map}} object that is the value of |O|’s \[[BackingMap]] [=internal slot=].
1. Return Get(|map|, "size
").
get
and has
, there
1. Let |O| be the get
" or "has
".
- 1. If |O| is a [=platform object=],
+ 1. If |O| [=is a platform object=],
then [=perform a security check=], passing:
* the platform object |O|,
* an identifier equal to |name|, and
* the type "method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |map| be the {{ECMAScript/Map}} object that is the value of |O|’s \[[BackingMap]] [=internal slot=].
1. Let |keyType| be the key type specified in the [=maplike declaration=].
1. Let |function| be [=!=] Get(|map|, |name|).
@@ -12096,12 +12095,12 @@ must exist on |A|’s
The value of the property is a [=built-in function object=] that behaves as follows when invoked:
1. Let |O| be the delete
", and
* the type "method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |map| be the {{ECMAScript/Map}} object that is the value of |O|’s \[[BackingMap]] [=internal slot=].
1. Let |keyType| be the key type specified in the [=maplike declaration=].
1. Let |function| be [=!=] Get(|map|, "delete
").
@@ -12130,12 +12129,12 @@ must exist on |A|’s [=interface prototype object=]:
The value of the property is a [=built-in function object=] that behaves as follows when invoked:
1. Let |O| be the set
", and
* the type "method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |map| be the {{ECMAScript/Map}} object that is the value of |O|’s \[[BackingMap]] [=internal slot=].
1. Let |keyType| and |valueType| be the key and value types specified in the [=maplike declaration=].
1. Let |function| be [=!=] Get(|map|, "set
").
@@ -12156,7 +12155,7 @@ The value of the [=function object=]’s name
property
method
".
- 1. If |O| is not an object that implements A,
+ 1. If |O| is not an object that [=implements=] A,
then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |set| be the {{ECMAScript/Set}} object that is
the value of |O|’s \[[BackingSet]] [=internal slot=].
@@ -12207,12 +12206,12 @@ with the following characteristics:
whose behavior when invoked is as follows:
1. Let |O| be the size
", and
* the type "getter
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |set| be the {{ECMAScript/Set}} object that is the value of |O|’s \[[BackingSet]] [=internal slot=].
1. Return the result of calling the \[[Get]] internal method of |set| passing "size
" and |set| as arguments.
has
", and
* the type "method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |set| be the {{ECMAScript/Set}} object that is the value of |O|’s \[[BackingSet]] [=internal slot=].
1. Let |type| be the value type specified in the [=setlike declaration=].
1. Let |function| be [=!=] Get(|set|, "has
").
@@ -12296,12 +12295,12 @@ must exist on |A|’s [=interface prototype object=]:
1. Let |O| be the add
" or "delete
".
- 1. If |O| is a [=platform object=],
+ 1. If |O| [=is a platform object=],
then [=perform a security check=], passing:
* the platform object |O|,
* an identifier equal to |name|, and
* the type "method
".
- 1. If |O| is not an object that implements A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
+ 1. If |O| is not an object that [=implements=] A, then [=ECMAScript/throw=] a {{ECMAScript/TypeError}}.
1. Let |set| be the {{ECMAScript/Set}} object that is the value of |O|’s \[[BackingSet]] [=internal slot=].
1. Let |type| be the value type specified in the [=setlike declaration=].
1. Let |function| be [=!=] Get(|set|, |name|).
@@ -12337,18 +12336,73 @@ The value of the [=function object=]’s name
property
name
property
name
property