[82] Web IDL は ECMAScript 大域環境と呼んでいます。
[25] かつて HTML Standard が定義していた用語 JavaScript 大域環境は、 JavaScript の仕様書における大域環境と同義です >>23。
[22] JavaScript大域環境には次の種類があります。それぞれ異なる種類の大域オブジェクトを用いています。
[26] 特記なき場合 JavaScript大域環境は文書環境です >>23。
Window
は、一次大域インターフェイスです。
[36] ワーカー環境は3つの環境の総称で、これ単独で用いられることはありません。
[27] >>18 の特殊ケースとして、大域オブジェクトが Window
と WindowModal
の両方を実装したオブジェクトとなる >>12 ことがあります。
[57] 大域オブジェクトを識別する名前を大域名といいます。
大域名は Global
拡張属性や PrimaryGlobal
拡張属性に識別子リストとして指定することができます。
明示されていない場合、インターフェイスの名前が大域名となります。
[60] 大域名には制約がなく、複数のインターフェイスに同じ大域名を与えることもできます。
[64] 大域名は Exposed
拡張属性で大域オブジェクトを指定するために使われます。
[43] ある文脈で適用される大域環境のことを現在大域環境といいます。
[50] 例えばコンストラクターが作成したオブジェクトは、 そのインターフェイスオブジェクトの大域環境に関連付けられます。
[46] Web IDL の JavaScript 実装において IDL素片の定義に対応する JavaScriptオブジェクトを初期オブジェクトといいます >>45。次のものがあります。
[47] JavaScript大域環境は、それぞれ固有の初期オブジェクトの集合を持たなければなりません >>45。 初期オブジェクトは、JavaScript大域環境に関連付けられた JavaScript実行文脈の制御下に入る前で、 JavaScript大域環境の大域オブジェクトが作成された後に、 作成されます >>45。
[30] スクリプトの設定群オブジェクトの大域オブジェクトが Window
の時、 JavaScript の大域実行文脈の ThisBinding
(this
)
はその Window
オブジェクト自体ではなく、その Window
オブジェクトの WindowProxy
オブジェクトとしなければなりません。
>>10
[89] 大域オブジェクトは、 Realm の GlobalObject で指定された JavaScriptオブジェクトです >>10。 Realm の大域オブジェクトとは、 当該 Realm の GlobalObject のことをいいます >>91。
[[Call]]
[[CanPut]]
[[Class]]
[[Construct]]
[[Default]]
[[Delete]]
[[Get]]
[[HasProperty]]
[[Prototype]]
[[Put]]
[34] 大域オブジェクトはエラーの報告の対象として使われます。
[77] Web IDL の規定するアルゴリズムはセキュリティー検査を実行することを求めることがあります。 これは、演算の実行や IDL属性へのアクセスが認められるべきかどうかを決めるものです。 >>76
[78] 本検査への入力は、文脈オブジェクトたるプラットフォームオブジェクトと、
演算やIDL属性を実装する Function
オブジェクトに関連付けられた
JavaScript大域環境です >>76。 出力は、認められるため何もしないか、
認められないため例外を投げるかです。
[83] JavaScript実行文脈の大域オブジェクトは、
Realm
の GlobalObject
です >>70。
[84] 環境設定群オブジェクトの大域オブジェクトは、 環境設定群オブジェクトのRealmのGlobalObjectです >>10。
[11] スクリプトは設定群オブジェクトを持ちますが、 その環境設定群オブジェクトは大域オブジェクトを持ちます。 大域オブジェクトは、当該設定群オブジェクトを使うスクリプトが呼び出せる API を提供するオブジェクトです。 >>10
[32] 環境設定群オブジェクトと大域オブジェクトは一対一対応関係にあります。 大域オブジェクトから見て環境設定群オブジェクトのことを大域オブジェクトの関連する設定群オブジェクトといいます。 >>10
[98] 入口大域オブジェクト、現職大域オブジェクト、 現在大域オブジェクト、関連大域オブジェクトについては、 設定群オブジェクトを参照。
[37] 文書環境では、スクリプトは他の閲覧文脈の Window
オブジェクトにアクセスできます。
これを通じて現在の大域オブジェクトとは異なる大域オブジェクト/大域環境に由来するオブジェクトにアクセスすることが可能です。
[38] 例えば iframe
内の文書が作成した JavaScript Array
にアクセスすることができます。その Array
オブジェクトは、
本大域オブジェクトの Array
プロトタイプの実現値ではありません
(instanceof
が偽を返します)。
[40] ワーカー環境では他の大域オブジェクト (やそこに属するオブジェクト) にアクセスする方法がありません。
[41] postMessage
は、そのメソッドを呼び出した大域環境とは異なる大域オブジェクトに属するオブジェクトを作成することになります。
[39] document.open
も Window
(大域オブジェクト) を差し替えるので、やはり異なる大域環境のオブジェクトが混在し得る状況となります。
[42] 実行中の大域環境の文書の document.open
は当該文書の
Window
と環境設定群オブジェクトを差し替えますが、
実行中のコード (open
メソッドの呼び出し元) で現に使用している設定群オブジェクト・大域環境はそのままなので、
その実行が終わるまでは不思議なことが起こるかもしれません。
[51] JavaScript の演算は普通大域環境に依存しない形で定義されています。
[53] Web IDL による型の検査も、大域環境に関わらず行われます。 プラットフォームオブジェクトの実装方法はそのような検査が行えるものである必要があります。
[17] >>15 まではスクリプト実行環境なる概念があり、 >>18 とは別に
javascript:
URL の実行時に空のオブジェクトをスクリプト実行環境とするケースがありました。
[1] Bug 5850 – JS global object ( 版) http://www.w3.org/Bugs/Public/show_bug.cgi?id=5850
[5] IRC logs: freenode / #whatwg / 20091202 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20091202
[6] John Resig - Re-Securing JSON ( ( 版)) http://ejohn.org/blog/re-securing-json/
[7] Window Object 1.0 ( ( 版)) http://www.w3.org/TR/Window/#window-basic-scripting
[8] [whatwg] [[GetOwnProperty]] for named properties of the Window object ( ( 版)) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-September/040715.html
[9] HTML Standard ( ( 版)) http://www.whatwg.org/specs/web-apps/current-work/#global-object
[68] Spec for [Global] does not seem to be quite web-compatible, and none of the UAs are really compatible with each other ( (Boris Zbarsky 著, 版)) http://lists.w3.org/Archives/Public/public-script-coord/2013OctDec/0405.html
[69] Global
拡張属性の値は、2014年7月以降、
複数指定する場合に (
...)
で括るように変更されました。
Exposed
を参照してください。[71] 一次大域インターフェイスは一次大域オブジェクトとも呼ばれていましたが、 2014年7月に修正されました >>72。
[73] The SVG Micro DOM (uDOM) ( ( 版)) http://www.w3.org/TR/2006/CR-SVGMobile12-20060810/svgudom.html#global__Global
[74] The SVG Micro DOM (uDOM) ( ( 版)) http://www.w3.org/TR/2006/CR-SVGMobile12-20060810/svgudom.html#svg__SVGGlobal
[54] Update ECMAScript and IDL integration · whatwg/html@550c57f ( 版) https://github.com/whatwg/html/commit/550c57f186dd73784a8e4660440db2f642e37c0e
[55] Revert "Update ECMAScript and IDL integration" · whatwg/html@3a23548 ( 版) https://github.com/whatwg/html/commit/3a235480f1979fcddc65e07fe5a3be7bed428d17
[56] Fix #33: stop using JavaScript global environment · whatwg/xhr@1fbdcae ( 版) https://github.com/whatwg/xhr/commit/1fbdcaebffc7b98efb57121c324737634cc621f6
[58] Update ECMAScript and IDL integration · whatwg/html@52f96c4 ( 版) https://github.com/whatwg/html/commit/52f96c455a53763a7fe00162c067da6adb20e62c
[59] Update ECMAScript and IDL integration · whatwg/html@52f96c4 ( 版) https://github.com/whatwg/html/commit/52f96c455a53763a7fe00162c067da6adb20e62c
[61] Update ECMAScript and IDL integration · whatwg/html@52f96c4 ( 版) https://github.com/whatwg/html/commit/52f96c455a53763a7fe00162c067da6adb20e62c
[62] Can we eliminate the term "JavaScript global environment"? · Issue #380 · whatwg/html ( 版) https://github.com/whatwg/html/issues/380
[63] Rewrite global object initialization to delegate to ES · whatwg/html@cf0355d ( 版) https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5
[85] Rewrite script execution on top of ES · whatwg/html@4891d18 ( 版) https://github.com/whatwg/html/commit/4891d18aaf2df1d40aa61f467a5a10cfc19dd85d
[86] 28375 – The global object has an origin in implementations, we should acknowledge this. Specifications also routinely assume it has one, e.g. IDB. ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=28375
[87] 28375 – The global object has an origin in implementations, we should acknowledge this. Specifications also routinely assume it has one, e.g. IDB. ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=28375
[88] Clarify settings object, realm, and global relationships · whatwg/html@0866f1b ( 版) https://github.com/whatwg/html/commit/0866f1b3f4b4ea5a99a30909e9bbe557dea0b460
[92] Move module map to Document/WorkerGlobalScope · whatwg/html@9a889fe ( 版) https://github.com/whatwg/html/commit/9a889fee2ecb106974fb48fa50491edd77047954
[93] Add a new section detailing the various potential realms ( (domenic著, )) https://github.com/whatwg/html/commit/6399af334edd6000bd394685923df5f0519194ab
[94] Remove support for [Constructor] on dictionaries (fixes #109). ( (Ms2ger著, )) https://github.com/heycam/webidl/commit/1982dc3f17002c07f93b39e22f69846478e4a9e2
[96] Editorial: fix typo in "Integration with IDL" ( (yuki3著, )) https://github.com/whatwg/html/commit/4bb63cf6bff37b1e8ca2815db0ff5cec202af9ea
[97] Add a new section detailing the various potential realms (domenic著, ) https://github.com/whatwg/html/commit/6399af334edd6000bd394685923df5f0519194ab
[99] Specify global object references in more detail (annevk著, ) https://github.com/whatwg/dom/commit/fa8adb6cd107cd845feaeb71c9da208971b670ca
[100] 1052139 – Try to lock down down the global prototype chain () https://bugzilla.mozilla.org/show_bug.cgi?id=1052139
[101] Make globals and things they inherit from have immutable prototypes (#… (domenic著, ) https://github.com/heycam/webidl/commit/06bae58f64f5326141036f65b1bb867aa36b84b2
[102] Remove realm argument of "perform a security check" (annevk著, ) https://github.com/heycam/webidl/commit/db9912d598bb59fed9422dd930e033e4832d52b7
[103] Remove realm argument from "perform a security check" (annevk著, ) https://github.com/whatwg/html/commit/c4c45b067bab83df44d90e24577c6f44dc5c57da
[104] Add legacy platform objects. (#230) (tobie著, ) https://github.com/heycam/webidl/commit/379685767dce3f953e187a2a8f3cb492b9b56649
[105] 29450 – perform a security check does not need realm argument () https://www.w3.org/Bugs/Public/show_bug.cgi?id=29450
[106] [worklets] Remove reference to "global environment". (bfgeek著, ) https://github.com/w3c/css-houdini-drafts/commit/5a2e381542b86830c9b1de30b1e8ccbd93834182
[107] Editorial: make domintro distinguish between window and self (annevk著, ) https://github.com/whatwg/html/commit/126a60e4694f347288fcf63e5af7e4d7d44fc848
[108] Cleanup `global object` usage to make sense with `Documents` (#254) (andypaicu著, ) https://github.com/w3c/webappsec-csp/commit/80bf6a439a744ebc7cb1b6d7373d0f0236d3584b
[109] Cleanup `global object` usage to make sense with `Documents` by andypaicu · Pull Request #254 · w3c/webappsec-csp () https://github.com/w3c/webappsec-csp/pull/254
[110] Make [Exposed] mandatory, remove [PrimaryGlobal] (#423) (tobie著, ) https://github.com/heycam/webidl/commit/d59937304702d033358b89fac5b5562c23b56096
[111] Cleanup remaining Document/Window object relations (annevk著, ) https://github.com/whatwg/html/commit/39dbb3e6de4216476cf7193ad9e5d56a861d5297
[112] document.open() simplifications, part 1 (TimothyGu著, ) https://github.com/whatwg/html/commit/6f769b8089a843066aa19f5991405bf4c84458b3
[113] Calling InitializeHostDefinedRealm in document.open is probably unnecessary · Issue #1698 · whatwg/html () https://github.com/whatwg/html/issues/1698
[114] document.open() simplifications: realm creation, unloading, tasks removal by TimothyGu · Pull Request #3918 · whatwg/html () https://github.com/whatwg/html/pull/3918
[115] Cleanup of global object/document usage (#333) (andypaicu著, ) https://github.com/w3c/webappsec-csp/commit/46bc83cc711212a6ca4ebaa6b3f5f7248429b377
[116] Cleanup of global object/document usage by andypaicu · Pull Request #333 · w3c/webappsec-csp () https://github.com/w3c/webappsec-csp/pull/333
[117] Documents are not global objects · Issue #208 · w3c/webappsec-csp () https://github.com/w3c/webappsec-csp/issues/208
[118] Only [Global] platform objects have an immutable prototype (littledan著, ) https://github.com/heycam/webidl/commit/8f48c5aef091b38854c6adc4e7e9b81e978a96fb
[119] Only [Global] platform objects are immutable prototype by littledan · Pull Request #596 · heycam/webidl () https://github.com/heycam/webidl/pull/596
[120] Correct requirement to define Global properties on the object itself (#… (Ms2ger著, ) https://github.com/heycam/webidl/commit/fc5da8f167dddda644c9a3540af7aea77c85c65a
[121] Correct requirement to define Global properties on the object itself by Ms2ger · Pull Request #639 · heycam/webidl () https://github.com/heycam/webidl/pull/639
[122] Imperatively define the global property references (Ms2ger著, ) https://github.com/heycam/webidl/commit/7bbff539127e7a7defd716cc5ae06f6778764a59
[123] Imperatively define the global property references by Ms2ger · Pull Request #648 · heycam/webidl () https://github.com/heycam/webidl/pull/648
[124] Remove references to ECMAScript global environments (Ms2ger著, ) https://github.com/heycam/webidl/commit/b4f9467f5f22871d882d833c3526c46007048982
[125] Remove references to ECMAScript global environments by Ms2ger · Pull Request #681 · heycam/webidl () https://github.com/heycam/webidl/pull/681
[126] Disallow combining Global with Constructor/NamedConstructor. (#745) (Ms2ger著, ) https://github.com/heycam/webidl/commit/a029460787be46f850abfc60f35cc6da05145b89
[127] Disallow combining Global with Constructor/NamedConstructor. by Ms2ger · Pull Request #745 · heycam/webidl () https://github.com/heycam/webidl/pull/745
[128] Should make it clear that [Global] and [Constructor] can't coexist · Issue #744 · heycam/webidl () https://github.com/heycam/webidl/issues/744