Skip to content

Commit 79bd7e0

Browse files
authored
Editorial: use dotted JavaScript intrinsics form
Follows tc39/ecma262#1376, and prevents problems in the future when the non-dotted forms are deleted. Closes #897.
1 parent 9208c17 commit 79bd7e0

File tree

1 file changed

+34
-36
lines changed

1 file changed

+34
-36
lines changed

index.bs

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -86,28 +86,26 @@ urlPrefix: https://tc39.github.io/ecma262/; spec: ECMA-262
8686
text: Set; url: sec-set-objects
8787
text: SharedArrayBuffer; url: sec-sharedarraybuffer-objects
8888
text: %AsyncIteratorPrototype%; url: sec-asynciteratorprototype
89-
text: %ArrayPrototype%; url: sec-properties-of-the-array-prototype-object
90-
text: %ErrorPrototype%; url: sec-properties-of-the-error-prototype-object
91-
text: %FunctionPrototype%; url: sec-properties-of-the-function-prototype-object
89+
text: %Array.prototype%; url: sec-properties-of-the-array-prototype-object
90+
text: %Error.prototype%; url: sec-properties-of-the-error-prototype-object
91+
text: %Function.prototype%; url: sec-properties-of-the-function-prototype-object
9292
text: %IteratorPrototype%; url: sec-%iteratorprototype%-object
93-
text: %MapPrototype%; url: sec-properties-of-the-map-prototype-object
94-
text: %ObjectPrototype%; url: sec-properties-of-the-object-prototype-object
93+
text: %Map.prototype%; url: sec-properties-of-the-map-prototype-object
94+
text: %Object.prototype%; url: sec-properties-of-the-object-prototype-object
9595
text: %Promise%; url: sec-promise-constructor
96-
text: %SetPrototype%; url: sec-properties-of-the-set-prototype-object
96+
text: %Set.prototype%; url: sec-properties-of-the-set-prototype-object
9797
type: exception; for: ECMAScript
9898
text: Error; url: sec-error-objects
9999
text: SyntaxError; url: sec-native-error-types-used-in-this-standard-syntaxerror
100100
text: TypeError; url: sec-native-error-types-used-in-this-standard-typeerror
101101
type: method; for: ECMAScript
102102
text: JSON.stringify(); url: sec-json.stringify
103-
text: %ArrayProto_entries%; url: sec-array.prototype.entries
104-
text: %ArrayProto_forEach%; url: sec-array.prototype.foreach
105-
text: %ArrayProto_keys%; url: sec-array.prototype.keys
106-
text: %ArrayProto_values%; url: sec-array.prototype.values
107-
text: %ObjProto_toString%; url: sec-object.prototype.tostring
108-
text: %Promise_reject%; url: sec-promise.reject
109-
text: %Promise_resolve%; url: sec-promise.resolve
110-
text: %PromiseProto_then%; url: sec-promise.prototype.then
103+
text: %Array.prototype.entries%; url: sec-array.prototype.entries
104+
text: %Array.prototype.forEach%; url: sec-array.prototype.foreach
105+
text: %Array.prototype.keys%; url: sec-array.prototype.keys
106+
text: %Array.prototype.values%; url: sec-array.prototype.values
107+
text: %Promise.reject%; url: sec-promise.reject
108+
text: %Promise.prototype.then%; url: sec-promise.prototype.then
111109
text: all(); for: Promise; url: #sec-promise.all
112110
type: const; for: ECMAScript
113111
url: sec-well-known-symbols
@@ -4772,7 +4770,7 @@ Of the extended attributes defined in this specification, only the [{{Exposed}}]
47724770

47734771
An ECMAScript implementation would then expose a global <code class="idl">VectorUtils</code>
47744772
data property which was a simple object (with prototype
4775-
{{%ObjectPrototype%}}) with enumerable data properties for each declared operation, and
4773+
{{%Object.prototype%}}) with enumerable data properties for each declared operation, and
47764774
enumerable get-only accessors for each declared attribute:
47774775

47784776
<pre highlight="js">
@@ -6909,7 +6907,7 @@ string "<code>ObservableArray</code>".
69096907
there and in the [=observable array attribute/delete an indexed value=] algorithm.
69106908

69116909
Another thing to note about the above code example is how all of the ECMAScript array methods
6912-
from {{%ArrayPrototype%}} work on the observable array. Indeed, it fully behaves like an
6910+
from {{%Array.prototype%}} work on the observable array. Indeed, it fully behaves like an
69136911
<code>Array</code> instance:
69146912

69156913
<pre highlight="js">
@@ -7191,7 +7189,7 @@ Unless otherwise specified, the \[[Extensible]] internal slot
71917189
of objects defined in this section has the value <emu-val>true</emu-val>.
71927190

71937191
Unless otherwise specified, the \[[Prototype]] internal slot
7194-
of objects defined in this section is {{%ObjectPrototype%}}.
7192+
of objects defined in this section is {{%Object.prototype%}}.
71957193

71967194
Some objects described in this section are defined to have a <dfn id="dfn-class-string" export>class string</dfn>,
71977195
which is the string to include in the string returned from <code>Object.prototype.toString</code>.
@@ -7983,7 +7981,7 @@ up on the ECMAScript object are not necessarily the same as the object’s prope
79837981
to an ECMAScript Object value by
79847982
running the following algorithm (where |D| is the [=dictionary=]):
79857983

7986-
1. Let |O| be [=!=] [$OrdinaryObjectCreate$]({{%ObjectPrototype%}}).
7984+
1. Let |O| be [=!=] [$OrdinaryObjectCreate$]({{%Object.prototype%}}).
79877985
1. Let |dictionaries| be a list consisting of |D| and all of |D|’s [=inherited dictionaries=],
79887986
in order from least to most derived.
79897987
1. For each dictionary |dictionary| in |dictionaries|, in order:
@@ -8277,7 +8275,7 @@ ECMAScript Object values.
82778275
[=converted to an ECMAScript value|converted=]
82788276
to an ECMAScript value as follows:
82798277

8280-
1. Let |result| be [=!=] [$OrdinaryObjectCreate$]({{%ObjectPrototype%}}).
8278+
1. Let |result| be [=!=] [$OrdinaryObjectCreate$]({{%Object.prototype%}}).
82818279
1. [=map/For each=] |key| → |value| of |D|:
82828280
1. Let |esKey| be |key| [=converted to an ECMAScript value=].
82838281
1. Let |esValue| be |value| [=converted to an ECMAScript value=].
@@ -8454,7 +8452,7 @@ IDL [=promise type=] values are represented by ECMAScript [=PromiseCapability=]
84548452
|newCapability|).
84558453

84568454
Note: This algorithm will behave in a very similar way to the
8457-
{{%PromiseProto_then%|Promise.then()}} method.
8455+
{{%Promise.prototype.then%|Promise.then()}} method.
84588456
In particular, if the steps return a value of type |U| or
84598457
<code><a interface>Promise</a>&lt;|U|&gt;</code>, this algorithm returns a
84608458
<code><a interface>Promise</a>&lt;|U|&gt;</code> as well.
@@ -11186,7 +11184,7 @@ default interfaces do not have such steps.
1118611184
1. Assert: |O| is an object that [=implements=] |I|.
1118711185
1. Assert: |O|.\[[Realm]] is |realm|.
1118811186
1. Return |O|.
11189-
1. Let |constructorProto| be |realm|.\[[Intrinsics]].[[{{%FunctionPrototype%}}]].
11187+
1. Let |constructorProto| be |realm|.\[[Intrinsics]].[[{{%Function.prototype%}}]].
1119011188
1. If |I| inherits from some other interface |P|,
1119111189
then set |constructorProto| to the [=interface object=] of |P| in |realm|.
1119211190
1. Let |F| be [=!=] <a abstract-op>CreateBuiltinFunction</a>(|steps|, « \[[Unforgeables]] »,
@@ -11287,8 +11285,8 @@ with the [{{LegacyNoInterfaceObject}}] [=extended attribute=].
1128711285
then set |proto| to the [=interface prototype object=] in |realm|
1128811286
of that [=inherited interface=].
1128911287
1. Otherwise, if |interface| is the {{DOMException}} [=interface=],
11290-
then set |proto| to |realm|.\[[Intrinsics]].[[{{%ErrorPrototype%}}]].
11291-
1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%ObjectPrototype%}}]].
11288+
then set |proto| to |realm|.\[[Intrinsics]].[[{{%Error.prototype%}}]].
11289+
1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%Object.prototype%}}]].
1129211290
1. Assert: <a abstract-op>Type</a>(|proto|) is Object.
1129311291
1. Let |interfaceProtoObj| be [=!=] [$OrdinaryObjectCreate$](|proto|).
1129411292
1. If |interface| has any [=member=] declared with the [{{Unscopable}}] [=extended attribute=],
@@ -11387,7 +11385,7 @@ for that interface on which named properties are exposed.
1138711385
1. Let |proto| be null.
1138811386
1. If |interface| is declared to inherit from another interface,
1138911387
then set |proto| to the [=interface prototype object=] in |realm| for the [=inherited interface=].
11390-
1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%ObjectPrototype%}}]].
11388+
1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%Object.prototype%}}]].
1139111389
1. Let |obj| be [=!=] [$MakeBasicObject$](« \[[Prototype]], \[[Extensible]] »).
1139211390
1. Set |obj|.\[[GetOwnProperty]] as specified in [[#named-properties-object-getownproperty]].
1139311391
1. Set |obj|.\[[DefineOwnProperty]] as specified in [[#named-properties-object-defineownproperty]].
@@ -11602,7 +11600,7 @@ in which case they are exposed on every object that [=implements=] the interface
1160211600
And then, if <a lt="an exception was thrown">an exception |E| was thrown</a>:
1160311601

1160411602
1. If |attribute|'s type is a [=promise type=], then return
11605-
[=!=] <a abstract-op>Call</a>({{%Promise_reject%}}, {{%Promise%}}, «|E|»).
11603+
[=!=] <a abstract-op>Call</a>({{%Promise.reject%}}, {{%Promise%}}, «|E|»).
1160611604
1. Otherwise, end these steps and allow the exception to propagate.
1160711605
1. Let |F| be [=!=] <a abstract-op>CreateBuiltinFunction</a>(|steps|, « », |realm|).
1160811606
1. Let |name| be the string "<code>get </code>" prepended to |attribute|'s [=identifier=].
@@ -11806,7 +11804,7 @@ in which case they are exposed on every object that [=implements=] the interface
1180611804

1180711805
1. If |op| has a [=return type=]
1180811806
that is a [=promise type=], then return
11809-
[=!=] <a abstract-op>Call</a>({{%Promise_reject%}}, {{%Promise%}}, «|E|»).
11807+
[=!=] <a abstract-op>Call</a>({{%Promise.reject%}}, {{%Promise%}}, «|E|»).
1181011808
1. Otherwise, end these steps and allow the exception to propagate.
1181111809
1. Let |F| be [=!=] <a abstract-op>CreateBuiltinFunction</a>(|steps|, « », |realm|).
1181211810
1. Perform [=!=] <a abstract-op>SetFunctionName</a>(|F|, |id|).
@@ -11854,7 +11852,7 @@ A [=regular operation=] that does not [=have default method steps=] must not be
1185411852
for [=interface=] |I|.
1185511853
1. Invoke [=collect attribute values of an inheritance stack=] given [=this=], |stack|, and
1185611854
|map|.
11857-
1. Let |result| be [=!=] [$OrdinaryObjectCreate$]({{%ObjectPrototype%}}).
11855+
1. Let |result| be [=!=] [$OrdinaryObjectCreate$]({{%Object.prototype%}}).
1185811856
1. [=map/For each=] |key| → |value| of |map|,
1185911857
1. Let |k| be |key| [=converted to an ECMAScript value=].
1186011858
1. Let |v| be |value| [=converted to an ECMAScript value=].
@@ -12154,16 +12152,16 @@ property is the String value "<code>forEach</code>".
1215412152

1215512153
1. If |definition| has an [=indexed property getter=], then:
1215612154
1. Perform [=!=] [$CreateMethodProperty$](|target|, {{@@iterator}},
12157-
{{%ArrayProto_values%}}).
12155+
{{%Array.prototype.values%}}).
1215812156
1. If |definition| has a [=value iterator=], then:
1215912157
1. Perform [=!=] [$CreateDataProperty$](|target|, "<code>entries</code>",
12160-
{{%ArrayProto_entries%}}).
12158+
{{%Array.prototype.entries%}}).
1216112159
1. Perform [=!=] [$CreateDataProperty$](|target|, "<code>keys</code>",
12162-
{{%ArrayProto_keys%}}).
12160+
{{%Array.prototype.keys%}}).
1216312161
1. Perform [=!=] [$CreateDataProperty$](|target|, "<code>values</code>",
12164-
{{%ArrayProto_values%}}).
12162+
{{%Array.prototype.values%}}).
1216512163
1. Perform [=!=] [$CreateDataProperty$](|target|, "<code>forEach</code>",
12166-
{{%ArrayProto_forEach%}}).
12164+
{{%Array.prototype.forEach%}}).
1216712165
1. Otherwise, if |definition| has a [=pair iterator=], then:
1216812166
1. Define the {{@@iterator}} and <code class="idl">entries</code> methods:
1216912167
1. Let |steps| be the following series of steps:
@@ -13918,7 +13916,7 @@ the special value “missing”, which represents a missing optional argument.
1391813916
1. If |completion| is a normal completion, return |completion|.
1391913917
1. If |completion| is an [=abrupt completion=] and the operation has a [=return type=]
1392013918
that is <em>not</em> a [=promise type=], return |completion|.
13921-
1. Let |rejectedPromise| be [=!=] <a abstract-op>Call</a>({{%Promise_reject%}},
13919+
1. Let |rejectedPromise| be [=!=] <a abstract-op>Call</a>({{%Promise.reject%}},
1392213920
{{%Promise%}}, «|completion|.\[[Value]]»).
1392313921
1. Return the result of [=converted to an IDL value|converting=]
1392413922
|rejectedPromise| to the operation's return type.
@@ -14007,7 +14005,7 @@ described in the previous section).
1400714005
1. If |completion| is a normal completion, return |completion|.
1400814006
1. If |completion| is an [=abrupt completion=] and the callback function has a
1400914007
[=return type=] that is <em>not</em> a [=promise type=], return |completion|.
14010-
1. Let |rejectedPromise| be [=!=] <a abstract-op>Call</a>({{%Promise_reject%}},
14008+
1. Let |rejectedPromise| be [=!=] <a abstract-op>Call</a>({{%Promise.reject%}},
1401114009
{{%Promise%}}, «|completion|.\[[Value]]»).
1401214010
1. Return the result of [=converted to an IDL value|converting=]
1401314011
|rejectedPromise| to the callback function's return type.
@@ -14067,7 +14065,7 @@ The characteristics of a namespace object are described in [[#namespace-object]]
1406714065
The namespace object for a given [=namespace=] |namespace| and [=Realm=] |realm|
1406814066
is <dfn lt="create a namespace object">created</dfn> as follows:
1406914067

14070-
1. Let |namespaceObject| be [=!=] [$OrdinaryObjectCreate$](|realm|.\[[Intrinsics]].[[{{%ObjectPrototype%}}]]).
14068+
1. Let |namespaceObject| be [=!=] [$OrdinaryObjectCreate$](|realm|.\[[Intrinsics]].[[{{%Object.prototype%}}]]).
1407114069
1. [=Define the regular attributes=] of |namespace| on |namespaceObject| given |realm|.
1407214070
1. [=Define the regular operations=] of |namespace| on |namespaceObject| given |realm|.
1407314071
1. For each [=exposed=] [=interface=] |interface| which has the [{{LegacyNamespace}}] extended
@@ -14085,7 +14083,7 @@ The characteristics of a namespace object are described in [[#namespace-object]]
1408514083
<h4 id="es-DOMException-specialness" oldids="es-DOMException-constructor-object, es-DOMException-prototype-object">{{DOMException}} custom bindings</h4>
1408614084

1408714085
In the ECMAScript binding, the [=interface prototype object=] for {{DOMException}}
14088-
has its \[[Prototype]] [=internal slot=] set to the intrinsic object {{%ErrorPrototype%}},
14086+
has its \[[Prototype]] [=internal slot=] set to the intrinsic object {{%Error.prototype%}},
1408914087
as defined in the [=create an interface prototype object=] abstract operation.
1409014088

1409114089
Additionally, if an implementation gives native {{ECMAScript/Error}} objects special powers or

0 commit comments

Comments
 (0)