[5] WebIDL における legacycaller
は、オブジェクトを Function
として実行したときに呼び出されるメソッドです。
[6] コレクションをメソッドとして呼び出すのはおそらく Microsoft によって IE4 DOM の一部として導入された機能で、 Visual Basic などにも同様の構文が存在しています。 Web ではあまり使われておらず、 互換性のために必要な場合に限って利用し、新機能には使わないことになっています。 (そのため 「legacy」と呼ばれています。)
legacycaller
の一覧[8] 現存する legacycaller
は次のインターフェイスのものです。
[30] 唯一 document.all
のみとなったため、 Web IDL の機能としては廃止され、
HTML Standard で document.all
専用の機能として定義される形になりました。
[9] 次のインターフェイスには一時 legacycaller
がありましたが、既に削除されています。
[1] Web Applications 1.0 r6781 compat with majority of browsers ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=6780&to=6781>
[2] Web Applications 1.0 r7268 Remove some 'legacycaller's ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=7267&to=7268>
[3] Web Applications 1.0 r8469 Remove some parts of document.all that data shows have virtually no usage. ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=8468&to=8469>
[4] Web Applications 1.0 r8502 Restore document.all() legacycaller, for compat ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=8501&to=8502>
[7] DOM Perl Binding では use overload
の &{}
演算子に対応することにされていましたが、後に削除されました。 (Perl では互換性のために必要がないため。)
[10] 909656 – Can we remove the legacycaller on <object>/<embed>? ( 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=909656>
[11] Intent to Remove: HTMLAppletElementLegacyCall - Google グループ ( 版) <https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/MuxvaXiyBxU>
[12] Web Applications 1.0 r6915 Define the legacycaller behaviour of <embed> and <object>. ( 版) <https://html5.org/r/6915>
[22] Remove legacycaller from two collections · whatwg/html@834a858 ( 版) <https://github.com/whatwg/html/commit/834a8589d2df1977ee8cb1e8b277fa87d5a69a0b>
[14] HTMLEmbedElement
インターフェイスは、
legacycaller 操作を実装しなければなりません >>13。
[15] その既定の動作は、 NotSupportedError
例外を投げるものとすることが提案されています >>13。
[17] object
要素の legacycaller 操作は、
次のようにしなければなりません >>16。
[23] Remove legacycaller from <object> and <embed> (zcorpan著, ) <https://github.com/whatwg/html/commit/aaf2435a8cbaf7fa4e791bf86874854bb1b618af>
[24] Add legacy platform objects. (#230) (tobie著, ) <https://github.com/heycam/webidl/commit/379685767dce3f953e187a2a8f3cb492b9b56649>
[25] API Deprecations and Removals in Chrome 57 | Web | Google Developers () <https://developers.google.com/web/updates/2017/02/chrome-57-deprecations?utm_source=feed&utm_medium=>
[26] Deprecations and Removals in Chrome 58 | Web | Google Developers ( ()) <https://developers.google.com/web/updates/2017/03/chrome-58-deprecations>
[27] Editorial: switch HTMLAllCollection legacycaller to custom [[Call]] (tobie著, ) <https://github.com/whatwg/html/commit/0679448c59cb4cd69019be1e1f35fee1bcbc9c66>
[28] Add HTMLAllCollection [[Call]], remove legacycaller special operation by tobie · Pull Request #2932 · whatwg/html () <https://github.com/whatwg/html/pull/2932>
[29] Remove legacy callers (TimothyGu著, ) <https://github.com/heycam/webidl/commit/2b1a990df64deb0b3d3d91ebd83f8efe59e2809b>
[31] [[Construct]] for legacy platform objects? · Issue #407 · heycam/webidl () <https://github.com/heycam/webidl/issues/407>
[32] [[Call]] for objects w/o legacycaller · Issue #408 · heycam/webidl () <https://github.com/heycam/webidl/issues/408>
[33] Remove legacy callers by TimothyGu · Pull Request #412 · heycam/webidl () <https://github.com/heycam/webidl/pull/412>