/
143.txt
38 lines (31 loc) · 2.34 KB
/
143.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[
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-02-16 01:30:20 +09:00]] 版) <https://html.spec.whatwg.org/#hostresolveimportedmodule(referencingmodule,-specifier)>
]REFS]
* Web ブラウザーの処理
[2] [[Web]] の[[利用者エージェント]]は、 [[JavaScript]]
の[[抽象操作]] [CODE[[DFN[[[HostResolveImportedModule]]]]([VAR[referencingModule]], [VAR[specifier]])]]
を次のように処理しなければ[['''なりません''']] [SRC[>>1]]。
[FIG(steps)[
= [3] [VAR[参照元モジュールスクリプト]]を、 [CODE[[VAR[referencingModule]].[F(ss)[HostDefined]]]]
に設定します。
= [5] [VAR[URL]] を、[VAR[参照元モジュールスクリプト]]と[VAR[指定子]]について[[モジュール指定子を解決]]した結果に設定します。
= [6] [VAR[URL]] が失敗なら、
== [7] [CODE(JS)@en[[[TypeError]]]] [[例外]]を[[投げ]]、ここで停止します。
= [4] [VAR[モジュール写像]]を、[VAR[参照元モジュールスクリプト]]の[F[[[設定群オブジェクト]]]]の[F[[[モジュール写像]]]]に設定します。
= [9] [VAR[エントリー]]を、[VAR[モジュール写像]]の[F[キー]]が [VAR[URL]] のエントリーに設定します。
= [10] [VAR[エントリー]]がないか、[VAR[エントリー]]の[F[値]]が null か、
[VAR[エントリー]]の[F[値]]が [CODE[[[fetching]]]] なら、
== [11] [CODE(JS)@en[[[TypeError]]]] [[例外]]を[[投げ]]、ここで停止します。
= [8] [VAR[スクリプト]]を、[VAR[エントリー]]の[F[値]]に設定します。
= [15] [VAR[スクリプト]]の[F[実現値化状態]]が [CODE[errored][実現値化状態]] なら、
== [16] [VAR[スクリプト]]の[F[実現値化エラー]]を[[投げ]]、ここで停止します。
= [12] [VAR[スクリプト]]の[F[[[モジュール記録]]]]を返します。
]FIG]
[13] つまり、与えられた[[モジュール指定子]]を解決して得られた [[URL]]
が、既に読み込み済みの[[モジュールスクリプト]]の [[URL]] であれば、
その[[モジュールスクリプト]]が使われます。
* 歴史
[14] [CITE@en[Handle error cases during module script tree fetching/running better]]
([[domenic]]著, [TIME[2016-08-09 12:06:32 +09:00]])
<https://github.com/whatwg/html/commit/e1af86747f591e33fd0f3f21f301dc866868c9d4>