/
812.txt
38 lines (31 loc) · 2.17 KB
/
812.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
* 仕様書
[REFS[
- [3] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#when-defined-promise-map>
- [2] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#dom-customelementsregistry-whendefined>
]REFS]
* 処理
[5] [CODE(DOMi)@en[CustomElementsRegistry]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[whenDefined]]]] [[メソッド]]は、
次のようにしなければ[MUST[なりません]] [SRC[>>2]]。
[FIG(steps)[
= [6] [VAR[名前]]を、必須の第1引数を [CODE(IDL)@en[DOMString]] と解釈した結果に設定します。
= [7] [VAR[名前]]が[[妥当なカスタム要素名]]でなければ、
== [8] [CODE(IDL)@en[SyntaxError]] [CODE(IDL)@en[DOMException]]
で[[拒絶]]した[[約束]]を返し、ここで停止します。
= [9] [[文脈オブジェクト]]に[F[名前][定義名]]が[VAR[名前]]の項目があれば、
== [10] [[未定義]]で[[解決][解決 (約束)]]した[[約束]]を返し、ここで停止します。
= [11] [[文脈オブジェクト]]の[F[定義時約束写像]]が[[キー]]が[VAR[名前]]の項目を含まないなら、
== [12] [[文脈オブジェクト]]の[F[定義時約束写像]]に、[[キー]]が[VAR[名前]]で値が[[約束]]の項目を追加します。
= [13] [[文脈オブジェクト]]の[F[定義時約束写像]]の[[キー]]が[VAR[名前]]の項目の値を返します。
]FIG]
[4] [CODE(DOMi)@en[CustomElementsRegistry]] [[オブジェクト]]は、
[DFN[[F[[RUBYB[[[定義時約束写像]]]@en[when-defined promise map]]]]]]を持ちます。
これは、[[妥当なカスタム要素名]]から[[約束]]への[[写像]]です。 [SRC[>>3]]
初期状態は、[[空]]です。
* 歴史
[1] [CITE@en[Add customElements.whenDefined() API · whatwg/html@db8899b]]
([TIME[2016-04-17 14:00:47 +09:00]] 版)
<https://github.com/whatwg/html/commit/db8899be5b0971a3c43b8a2ac926a5df1f5bc2b9>
[14] [CITE@en[Fix customElements.whenDefined() behavior]]
( ([[domenic]]著, [TIME[2016-05-10 00:54:53 +09:00]]))
<https://github.com/whatwg/html/commit/28f252fbf714e18209cc1b747f5ee130a50ec649>