<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> は様々な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>やそれに類するもので構成されています。
それらは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>) を構成する要素として存在していたり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>によって操作されたりします。どこからも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されなくなり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>上も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者界面</anchor>上も意義を失った<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>等は<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">garbage collection</rt></rubyb></dfn>され、
破棄されます。それはすなわち <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>実行環境の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>から削除され、
動作もアクセスもできなくなることを意味します。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection">http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#playing-the-media-resource">http://www.whatwg.org/specs/web-apps/current-work/#playing-the-media-resource</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#best-practices-for-authors-using-media-elements">http://www.whatwg.org/specs/web-apps/current-work/#best-practices-for-authors-using-media-elements</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-and-browsing-contexts">http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-and-browsing-contexts</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#dedicated-workers-and-the-dedicatedworkerglobalscope-interface">http://www.whatwg.org/specs/web-apps/current-work/#dedicated-workers-and-the-dedicatedworkerglobalscope-interface</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#dedicated-workers-and-the-worker-interface">http://www.whatwg.org/specs/web-apps/current-work/#dedicated-workers-and-the-worker-interface</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors-0">http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors-0</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-0">http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-0</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-1">http://www.whatwg.org/specs/web-apps/current-work/#garbage-collection-1</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en-US">DOM Standard</cite> (<time>2012-11-16 19:17:11 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dom.spec.whatwg.org/#garbage-collection">http://dom.spec.whatwg.org/#garbage-collection</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#update-the-image-data">http://www.whatwg.org/specs/web-apps/current-work/#update-the-image-data</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2012-11-16 20:26:18 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#proxying-canvases-to-workers">http://www.whatwg.org/specs/web-apps/current-work/#proxying-canvases-to-workers</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite xml:lang="en-US">XMLHttpRequest Standard</cite> (<time>2012-11-14 13:48:01 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://xhr.spec.whatwg.org/#garbage-collection">http://xhr.spec.whatwg.org/#garbage-collection</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2014-03-07 22:55:24 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#garbage-collect-the-regions">http://www.whatwg.org/specs/web-apps/current-work/#garbage-collect-the-regions</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-12-03 22:48:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#outstanding-rejected-promises-weak-set">https://html.spec.whatwg.org/#outstanding-rejected-promises-weak-set</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> <cite xml:lang="en-US">Notifications API Standard</cite> (<time>2014-02-11 16:20:34 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://notifications.spec.whatwg.org/#garbage-collection">http://notifications.spec.whatwg.org/#garbage-collection</anchor-external></li></ul></refs></section><section><h1>ごみ収集アルゴリズム</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>を実装しなければなりません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>をまったく実装しない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、
一般的に「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>」と呼ばれるものを実装せず、単に必要なくなった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">解放</anchor>するだけで済むかもしれません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> 具体的な方法は規定されていません。実装は任意の方法を選択できます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> 実際のところ、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>に関する規定はありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>を実装しなければならないという規定はどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>にもありません。
しかし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>しない場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>上の利用可能領域は徐々に減少し、
いずれ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>自体が動作しなくなります。
動作しなくなった時点で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>上の各規定に従うことができませんから、
(無限に大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>を有さない限り) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>しない
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合</anchor>できません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> 単なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照カウンター</anchor>では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">循環参照</anchor>を持ち外部から参照されなくなった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>群を回収できません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">循環参照</anchor>を破棄することは求められていませんから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリリーク</anchor>が発生してしまいます。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルゴリズム</anchor>も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">循環参照</anchor>の破棄はしていませんから、
実装時には注意が必要です。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリーリーク</anchor>を発生させること自体は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>の規定に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不適合</anchor>であるとは言い切れず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装の品質</anchor>の問題に過ぎないかもしれませんが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリーリーク</anchor>により<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>領域の確保ができず動作に支障が出るなら、
仕様違反ということになりそうです。
(そもそも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様</anchor>に違反するかどうか以前に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>の動作に対する一般的な期待として、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリーリーク</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不具合</anchor>とみなされるとは思いますが...)</comment-p></section><section><h1>観測可能性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> においては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の具体的な手法は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装依存</anchor>となっており、
その挙動は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">観測可能</anchor>であるべきではないと考えられています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>によっては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が破棄される直前に特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>が呼び出されるなどの仕組みがありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> にはそれに類するものはありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> この原則に反する新機能の導入は避けるべきだと考えられており、
回避できないために断念された機能もあります。</p><figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM3</anchor> には <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UserDataHandler</anchor></code> 
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の破棄の直前に呼び出す仕組みがありましたが、
削除されました。詳しくは <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UserDataHandler</anchor></code> の項を参照してください。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ポート</anchor>の一端が閉じられたことを通知する仕組みが提案されましたが、
実装されることはありませんでした (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;81</anchor-internal>)。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PortCollection</anchor></code> は実装されませんでした。</li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の詳細を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>) から観測可能にしてしまうと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>の実装の進化を阻害してしまう危険性があります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>には様々な手法が存在しますが、
特定のタイミングで特定の処理が実行されることを保証しようとすると、
それを実現可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>手法の実装を強制することになり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>手法の改良を妨げてしまうおそれがあります。
逆に当該処理の詳細な実行タイミングを定義しないと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>その他の実装の差異によって、実装ごとに異なるタイミングで処理が実行され、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性</anchor>の問題が生じる可能性があります。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">live</anchor> な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コレクション</anchor>は、対象となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM木</anchor>の変更が反映されますが、
実装上はリアルタイムで変更を反映させる必要はなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>からアクセスがあった時まで変更の反映を遅延させることもできます。
あるいは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>のリストを途中までだけ作成したり、
リストの一部だけ変更を反映させた状態にしたりと、
色々な実装方針が考えられ、どれを採用するかは各実装の裁量です。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> さて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM木</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>が削除され、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>からも参照されなくなった時、
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>はおそらく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コレクション</anchor>からも削除されることになりますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>が実行可能になるタイミングは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コレクション</anchor>の更新のタイミングに依存します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>が観測可能になると、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コレクション</anchor>の実装方法にも制約が生じます。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> 多くの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>では <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">console.log</anchor></code>
により、あるいは開発者ツールにより <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>にアクセスできます。
つまり開発者ツールからオブジェクトへの参照が生じます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>側での <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GC</anchor>
のタイミングに制約があるとすると、開発者ツール側で参照が残っていてもスクリプト側では開放したことにしなければならず、
より実装が複雑になるかもしれません。 (少なくても実装方法への制約は強くなると思われます。)</p></example></section><section><h1>ごみ収集と参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> も、「<dfn><ruby>ごみ収集<rt>ガーベージ・コレクション</rt><rt xml:lang="en">garbage collection</rt></ruby></dfn>」、
「<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">strong reference</rt></rubyb></dfn>」、「<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱参照<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">weak reference</rt></rubyb></dfn>」
といった用語を定義なしで使っており、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">計算機科学</anchor>分野での一般的な単語として用いていると思われます。
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(なお <anchor>HTML</anchor> は「<anchor>弱参照</anchor>」という用語を使っていません。)</weak></p></section><section><h1>弱参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> には <code>WeakMap</code> と <code>WeakSet</code> があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> その他にいくつか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>上の概念が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱参照</anchor>を使っています。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境設定群オブジェクト</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>未決拒絶された約束弱集合</anchor></f>は、
そのメンバーに対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を作っては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">ならない</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;36</anchor-internal></src>
と規定されています。</p></example><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">変異オブザーバー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱参照</anchor>を持ちます。</p></example></section><section><h1>暗示強参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 既存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>を返す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>からは、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>への<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>暗示強参照</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">implied strong reference</rt></rubyb></dfn>があります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 例えば、 <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window</anchor>.<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>により、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Window</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>から <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い参照</anchor>があることとなります。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> からその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子孫節点</anchor>へは <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(直接または間接の)</weak>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い参照</anchor>があります。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> 各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点文書</anchor>へは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い参照</anchor>があります。</p></example><section><h1>歴史</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2529        MAJOR CHANGES: ...</cite> (<time>2008-12-12 17:46:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529">http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> <cite xml:lang="en">Tie Location to the Window object · whatwg/html@fdd8216</cite> (<time>2016-02-04 20:54:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/fdd8216a902a065dd3e205cbbc1b5a6b527970a2">https://github.com/whatwg/html/commit/fdd8216a902a065dd3e205cbbc1b5a6b527970a2</anchor-external></li></ul></refs></section></section><section><h1>内部的な属性値への参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>には、しばしば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor>として直接外部から参照可能でなくとも、
内部的な属性のようなものとして別の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が関連付けられていることがあります。
これも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>が存在し、最初の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が存在する限り関連付けられている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>も破棄されないものと思われます。</p></section><section><h1>循環参照</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>同士の参照は、直接または間接に循環していることがあります。例えば、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親節点</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子節点</anchor>へは <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">childNodes</anchor></code> を通じて参照がありますし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子節点</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">親節点</anchor>へは <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">parentNode</anchor></code> を通じて参照があり、循環しています。
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が容易に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">循環参照</anchor>を作り出すことができます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 従って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>は、外部から参照されなくなった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">循環参照</anchor>のある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>群を回収できる手法を用いる必要があります。</p></section><section><h1>ごみ収集による動作の停止</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の実装手法の中には、ごみ収集の処理のために本来の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>の動作をすべて停止する必要があるものもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> 明示的な規定は存在していないものの、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>に明確に判別可能なレベルで動作を停止させるような実装方法は、
好ましくないと考えられます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Acid3</anchor> はその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アニメーション</anchor>が滑らかであることを要求しており、
この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">試験</anchor>に通過するためには、実行途中で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>によって速度が変化するような実装であってはいけません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> ただしこれは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実装の品質</anchor>の問題と考える人もいます。</p></section><section><h1>閲覧文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を持っています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈を捨てる</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>で削除されます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>は、その <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> 群とその <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WindowProxy</anchor></code>
に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を持っています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>から <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">Document</code>を捨てる</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>で削除されます。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> はその <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Window</anchor></code> に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を持っています。逆に
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Window</anchor></code> は <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>を通じて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示強参照</anchor>を持っています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Window</anchor></code> は <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">window</anchor></code> など、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> は <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">defaultView</anchor></code> などを通じて
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WindowProxy</anchor></code> への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">暗示強参照</anchor>を持っています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト設定群オブジェクト</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強い参照</anchor>を持っており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト設定群オブジェクト</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大域オブジェクト</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">有責閲覧文脈</anchor>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">有責文書</anchor>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を持っています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">最上位閲覧文脈</anchor>でない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>の <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WindowProxy</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の対象になると、
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈を捨てる</anchor><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>により処理されなければなりません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;11</anchor-internal></src></p><section><h1>歴史</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2529        MAJOR CHANGES ...</cite> (<time>2008-12-12 17:46:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529">http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529</anchor-external></li></ul></refs></section></section><section><h1>変異観察器</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">登録済み観察器</anchor>のリストにある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">登録済み観察器</anchor>に対する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>を持ちます。
逆方向には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">弱参照</anchor>を持ちます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></p></section><section><h1>ワーカー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DedicatedWorkerGlobalScope</anchor></code>/<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code> は暗示的に関連付けられた <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>を有しますが、この <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code> は
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DedicatedWorkerGlobalScope</anchor></code>/<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code>
より先に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実行時誤り</anchor>は <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象</anchor>として呼び出し元の <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code> や
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> へと伝達されていきますが、その伝達先が既に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>されて消失している場合には
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onerror</anchor></code> は <code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor></code> であるものとして
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(つまり何もしないで更に上位の呼び出し元へと伝達されるよう)</weak> 処理されます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;22</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト設定群オブジェクト</anchor>を介して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>を起動した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大域オブジェクト</anchor>や
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> への参照を保有しています。</p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">ServiceWorker</code></ed></section><section><h1><code class="DOMi" xml:lang="en">MessagePort</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <code class="DOMi" xml:lang="en">MessagePort</code> については<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>自身が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>から参照されなくなっても、
相手方が存在する限り存続することがあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">MessagePort</code> 参照。</comment-p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code> の一端が失われた場合に他方に通知する方法も検討されたものの、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の挙動を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>から観測できず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリーリーク</anchor>もさせず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> も実装可能であるような手法が見つからず、議論がまとまりませんでした。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PortCollection</anchor></code> は <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code>
を零個以上保有することができる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>ですが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>ではないので
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>を防ぐ役割は持たず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>された <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code> は削除されていきます。
しかしこれも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>の実装の自由を損なうとして、実装されることはありませんでした。</p></history></section><section><h1><code class="DOMi" xml:lang="en">BroadcastChannel</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <code class="DOMi" xml:lang="en">BroadcastChannel</code> 参照。</p></section><section><h1>画像</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>画像データの更新</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">update the image data</rt></rubyb><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">算法</anchor>の実行中は、
その対象となっている <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">img</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>から当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>があるとしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;46</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">Document</code>中</anchor>にある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>なら自然に満たされますが、
そうではなく単独で存在する <code xmlns="http://www.w3.org/1999/xhtml" class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">img</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>であっても、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画像</anchor>の読み込みが終わるまでは破棄されないことになります。</comment-p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CanvasProxy</anchor></code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無効</anchor>でなければ対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画布要素</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>があるとしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;49</anchor-internal></src></p></history></section><section><h1>ヒット領域</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">canvas</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヒット領域</anchor>は、削除されたり消去されて対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">画素</anchor>がなくなり、
他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヒット領域</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子供</anchor>でもないなら、<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">領域をごみ収集する<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">garbage-collect the regions</rt></rubyb></dfn>手順により削除されます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;82</anchor-internal></src>。</p></section><section><h1>媒体要素</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体要素</anchor>は、それに対するすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>が削除されただけの理由で<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>再生</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">playing</rt></rubyb>を停止しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
それ以上<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>音声</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">audio</rt></rubyb>を再生できない状態になった時、当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体要素</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">構いません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に対して明示的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>が存在しておらず、まだ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性的に再生<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">actively playing</rt></rubyb>されていなくとも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">音声</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再生</anchor>のために存在し続けることがあります。例えばまだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現在媒体制御器</anchor>があって<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再生再開<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">unpause</rt></rubyb>できるかもしれませんし、
あるいは再生再開されていても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バッファ</anchor>待ちのため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stall</anchor> 中かもしれません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 環境によっては同時再生数の制限が厳しいかもしれませんから、
再生が終わったらすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>を確実に削除するなど配慮することが特に好ましいとされています。 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></comment-p></section><section><h1>Blob</h1><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">revokeObjectURL</anchor></ed></section><section><h1>WebRTC</h1><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <cite xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">WebRTC 1.0: Real-time Communication Between Browsers</cite> (<time xmlns="http://www.w3.org/1999/xhtml">2012-11-15 19:30:32 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.w3.org/2011/webrtc/editor/webrtc.html">http://dev.w3.org/2011/webrtc/editor/webrtc.html</anchor-external></ed><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <cite xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">Media Capture and Streams</cite> (<time xmlns="http://www.w3.org/1999/xhtml">2012-11-15 19:30:32 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack">http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack</anchor-external></ed></section><section><h1>XHR</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLHttpRequest</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は次の場合<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;53</anchor-internal></src><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 次のいずれかが成立し、<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 状態が <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OPENED</anchor></code> であり <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMm" xml:lang="en">send()</code>フラグ</anchor>が設定されている</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> 状態が <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HEADERS_RECEIVED</anchor></code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> 状態が <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LOADING</anchor></code></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> かつ次のいずれかが成立する場合<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">readystatechange</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">progress</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">abort</anchor></code>, 
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">load</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">timeout</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">loadend</anchor></code>
のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象聴取器</anchor>が登録されている場合</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アップロード完了フラグ</anchor>が設定されておらず関連付けられた
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLHttpRequestUpload</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">progress</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">abort</anchor></code>, 
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">load</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">timeout</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">loadend</anchor></code>
のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象聴取器</anchor>が登録されている場合</li></ul></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLHttpRequest</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続</anchor>が開いたまま<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>される場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> をすべて取り消し、それらにより追加された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>をすべて破棄し、
またそれらによりネットワークから受信しているデータがあれば破棄しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;61</anchor-internal></src></p></section><section><h1>事象源</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventSource</anchor></code> については、<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">readyState</anchor></code> が
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CONNECTING</anchor></code> であり、かつ <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">open</anchor></code>, <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message</anchor></code>,
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code> のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象聴取器</anchor>が登録されている場合</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventSource</anchor></code> の <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">readyState</anchor></code> が
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OPEN</anchor></code> であり、かつ <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message</anchor></code>,
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code> のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">事象聴取器</anchor>が登録されている場合</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">遠隔事象タスク源</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タスク</anchor>が投入されている間</li></ul></p><p>... には、 <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventSource</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構築子</anchor>が呼び出された <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Window</anchor></code>
または <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WorkerUtils</anchor></code> から <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventSource</anchor></code>
への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強参照</anchor>がなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;26</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventSource</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続</anchor>が開いている間に同オブジェクトが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>される場合、当該オブジェクトによって開かれた
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> は中断しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;26</anchor-internal></src></p><section><h1>歴史</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2870 Drop &lt;eventsource&gt;. Replace the API with an EventSource object. Rename onclosed to onclose on WebSocket. Remove the mostly worthless event definitions. I'll add more useful intro text to replace them later. Defined garbage collection specialness for WebSocket and EventSource.</cite> (<time>2009-02-26 17:33:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2869&amp;to=2870">http://html5.org/tools/web-apps-tracker?from=2869&amp;to=2870</anchor-external></li></ul></refs></section></section><section><h1>Web Sockets</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebSocket</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バッファー</anchor>の状況次第で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>してはなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> また <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebSocket</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続</anchor>が開いたまま<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>される場合は、
接続を閉じる手順を実行しなければなりません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">WebSocket</code>のごみ収集</anchor>を参照。</comment-p></section><section><h1><code class="DOMi" xml:lang="en">Notification</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Notification</anchor></code> は、対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">通知</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">list of pending notifications</anchor>
か <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">list of active notifications</anchor> に含まれていて、
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">click</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">show</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">error</anchor></code>, <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">close</anchor></code>
のいずれかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>を持つ間は、これを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">いけません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;91</anchor-internal></src>。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">garbage collection</anchor>) は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Living Standard</anchor> ではじめて明示的に規定され、
その後他の仕様でも定義されるようになりました。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7573     Simplify the Blob release mechanism, at the cost of exposing the Web's innards a bit more to script authors.</cite>
( (<time>2012-12-08 07:57:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7572&amp;to=7573">http://html5.org/tools/web-apps-tracker?from=7572&amp;to=7573</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite xml:lang="en">Navigation Timing</cite>
( (<time>2012-12-13 06:51:35 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2012/REC-navigation-timing-20121217/#garbage-collection">http://www.w3.org/TR/2012/REC-navigation-timing-20121217/#garbage-collection</anchor-external></li></ul></refs><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2357    Define MessagePort such that they won't be garbage collected while a message is outstanding. (credit: ap)</cite> (<time>2008-10-21 04:18:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2356&amp;to=2357">http://html5.org/tools/web-apps-tracker?from=2356&amp;to=2357</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2024 Simplify garbage collection for ports even further. Define dicarding of Document objects better for ports. Prevent inactive documents from receiving messages.</cite> (<time>2008-08-06 16:57:00 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2023&amp;to=2024">http://html5.org/tools/web-apps-tracker?from=2023&amp;to=2024</anchor-external></li></ul></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>がアクセスできる範囲の外から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">参照</anchor>されることもあり得ます。例えば
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">console.log</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メソッド</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>を渡すと、
その環境の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">デバッガー</anchor>が当該オブジェクトへの参照を保持し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>内から参照しなくなったとしても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ごみ収集</anchor>されずに残り続けることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <cite xml:lang="en-US">Incremental GC in Firefox 16! | JavaScript</cite>
( (<time>2013-04-09 05:16:01 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://blog.mozilla.org/javascript/2012/08/28/incremental-gc-in-firefox-16/">https://blog.mozilla.org/javascript/2012/08/28/incremental-gc-in-firefox-16/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <cite xml:lang="en">JavaScript:SpiderMonkey:GC Futures - MozillaWiki</cite>
( (<time>2013-04-02 17:53:25 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://wiki.mozilla.org/JavaScript:SpiderMonkey:GC_Futures">https://wiki.mozilla.org/JavaScript:SpiderMonkey:GC_Futures</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <cite>substructural: Programming, Entrepreneurship, and the Markets: Garbage Collection in JavaScript, Part 1</cite>
( (<time>2013-03-20 10:45:20 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.typedynamic.com/2012/03/garbage-collection-in-javascript.html">http://www.typedynamic.com/2012/03/garbage-collection-in-javascript.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2529        MAJOR CHANGES: Revamp the way scripts are specified, along with their interaction with resolving relative URLs, etc. Give enough detail to justify objects in the DOM not being garbage collected randomly when still in use. Define script groups, to handle scripts going away during document.open() and session history navigation. Define why and how setTimeout(), database transactions, etc, handle page transitions. Drop the terms 'with' and 'without' script, use script is 'enabled'/'disabled' instead. Define 'unload' and 'beforeunload'. Rework how onfoo=<em> and .onfoo event handler attributes are defined. Rework how the content model of &lt;noscript&gt; is defined. Reword the way javascript: is defined to use the new terminology. Add a few notes of things that came up while I was doing all that.]]
( (<time>2008-12-12 17:46:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529">http://html5.org/tools/web-apps-tracker?from=2528&amp;to=2529</anchor-external></em></cite></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> <cite xml:lang="en">エデンの園でおきたこと - steps to phantasien</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Hajime Morrita</anchor> 著, <time>2014-02-17 18:13:31 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://steps.dodgson.org/b/2012/12/19/dom-and-gc-or-what-happend-at-eden/">http://steps.dodgson.org/b/2012/12/19/dom-and-gc-or-what-happend-at-eden/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> <cite xml:lang="en">Bug 25223 – IDB exposes GC behavior</cite>
( (<time>2015-01-15 11:34:59 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25223">https://www.w3.org/Bugs/Public/show_bug.cgi?id=25223</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> <cite xml:lang="en">Bug 26515 – Change when media elements may be garbage collected</cite>
( (<time>2015-01-16 12:37:52 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26515">https://www.w3.org/Bugs/Public/show_bug.cgi?id=26515</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> <cite xml:lang="en">Specify life time management · Issue #15 · yutakahirano/fetch-with-streams</cite>
(<time>2015-01-30 15:05:19 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/yutakahirano/fetch-with-streams/issues/15#issuecomment-72119046">https://github.com/yutakahirano/fetch-with-streams/issues/15#issuecomment-72119046</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite xml:lang="en">Feature suggestion - event from the JS Garbage Collector · Issue #238 · WebAssembly/design</cite>
(<time>2015-07-14 08:38:23 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/WebAssembly/design/issues/238">https://github.com/WebAssembly/design/issues/238</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <cite xml:lang="en">Add description for suspension, resuming and garbage collection · whatwg/fetch@1dfbd1f</cite>
(<time>2015-09-16 11:35:14 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/1dfbd1f6284e4cb0aae91a8b9db36a2dc11393b1">https://github.com/whatwg/fetch/commit/1dfbd1f6284e4cb0aae91a8b9db36a2dc11393b1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <cite xml:lang="en">Move structured cloning out from under Common DOM Interfaces · whatwg/html@e09b782</cite>
(<time>2016-03-01 11:48:47 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/e09b7824480ffc9df69b0d830c4b8adad3b000d1">https://github.com/whatwg/html/commit/e09b7824480ffc9df69b0d830c4b8adad3b000d1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> <cite xml:lang="en">Clarify settings object, realm, and global relationships · whatwg/html@0866f1b</cite>
(<time>2016-03-27 23:19:37 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460">https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> <cite xml:lang="en">Custom elements disconnected from a document should not be upgraded · Issue #419 · w3c/webcomponents</cite>
( (<time>2016-05-16 00:20:22 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webcomponents/issues/419">https://github.com/w3c/webcomponents/issues/419</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> <cite xml:lang="en">Workers: Curtail the browser's license to kill · Issue #1004 · whatwg/html</cite>
(<time>2016-06-24 21:27:19 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/issues/1004">https://github.com/whatwg/html/issues/1004</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite>GC / DOM / Web API Integration :unicorn: - WebAssembly</cite>
(<time>2017-01-14 05:40:46 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://webassembly.org/docs/gc/">http://webassembly.org/docs/gc/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <cite xml:lang="en">Abortable fetch</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">jakearchibald</anchor>著, <time>2017-09-20 21:59:57 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/0bcd5dfc71ef44319873887f4b83119bd6d0b71d">https://github.com/whatwg/fetch/commit/0bcd5dfc71ef44319873887f4b83119bd6d0b71d</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> <cite xml:lang="en">Sensor must not expose GC behavior</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pozdnyakov</anchor>著, <time>2017-12-14 20:24:36 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/sensors/commit/9fd7eeb7a69635ea9e3b0f4eb0402c677bba19e5">https://github.com/w3c/sensors/commit/9fd7eeb7a69635ea9e3b0f4eb0402c677bba19e5</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <cite xml:lang="en">Must not expose GC behavior to the web · Issue #337 · w3c/sensors</cite>
(<time>2017-12-15 17:05:46 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/sensors/issues/337">https://github.com/w3c/sensors/issues/337</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> <cite xml:lang="en">Sensor must not expose GC behavior by pozdnyakov · Pull Request #338 · w3c/sensors</cite>
(<time>2017-12-15 17:06:04 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/sensors/pull/338">https://github.com/w3c/sensors/pull/338</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> <cite xml:lang="en">Permit freeing underlying source / sink / transformer after close · Issue #932 · whatwg/streams</cite>
(<time>2018-07-04 21:48:49 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/streams/issues/932">https://github.com/whatwg/streams/issues/932</anchor-external></p></section></body></html>