Global

拡張属性 [Global], [PrimaryGlobal] (Web IDL)

[37] Web IDL には拡張属性として GlobalPrimaryGlobal があり、インターフェイスに指定できます >>36

仕様書

文脈

[55] これらの拡張属性を同時には指定できません >>36

[56] PrimaryGlobal 拡張属性を指定できるのは、 いずれか1つのインターフェイスだけです >>36。 この拡張属性が指定されたものを一次大域インターフェイス (primary global interface) といいます >>36

[1] 実用上、これは Window インターフェイスのことです。

[45] これらの拡張属性部分インターフェイス定義に指定する場合は、 その部分インターフェイス定義名前付き特性取得子も定義していなければなりません >>36

[48] partial でない interface なら、名前付き特性が定義されていなくても構わないようです。

作用と制約

[38] これらの拡張属性が指定されたインターフェイス実装するオブジェクトは、 ECMAScript環境大域オブジェクトとして使うことができます >>36

[46] これらの拡張属性が指定されたインターフェイスは、 同じ ECMAScript大域環境においてそれを実装するオブジェクトを複数持つことができません >>36。これは、名前付き特性プロトタイプ鎖中に現れるため、 複数存在するとすべてのオブジェクトが同じ名前付き特性群を共有してしまうためです >>36

[47] 複数の Window (WindowProxy) オブジェクトが同時に存在することがあるように、 同じインターフェイス実装していながらも異なるECMAScript大域環境由来のオブジェクトなら複数存在することがあります。

[40] これらの拡張属性が指定されたインターフェイス実装するオブジェクトでは、 当該インターフェイス派生的インターフェイス群インターフェイスメンバーは、 インターフェイスプロトタイプオブジェクトではなく、 オブジェクト自体に現れます >>36

[52] これらの拡張属性が指定されたインターフェイスについては、 当該インターフェイス派生的インターフェイス群にわたってインターフェイスメンバーの名前が衝突したり、 文字列化器直列化器反復器がそれぞれ複数あったりしてはなりません >>36

[39] これらの拡張属性が指定されたインターフェイス実装するオブジェクトでは、 名前付き特性は、そのオブジェクト自体ではなく、プロトタイプ鎖中にある名前付き特性オブジェクトに現れます >>36

[41] これらの拡張属性が指定されたインターフェイス実装するオブジェクトでは、 名前付き特性設定子作成子削除子を定義してはなりません >>36

[42] これらの拡張属性が指定されたインターフェイスには、 OverrideBuiltins 拡張属性を指定してはなりません >>36。また OverrideBuiltins 拡張属性が指定されたインターフェイス継承してはなりません >>36

[44] これらの拡張属性が指定されたインターフェイスを他のインターフェイス継承することはできません >>36

引数

[53] これらの拡張属性は、引数なしか、 識別子リストのいずれかでなければなりません >>36

[70] 識別子1つだけの指定は認められていません。

[54] 識別子リストがあれば、それらの識別子大域名となります。 なければ、インターフェイス名大域名となります。 >>36

実例

[49] WindowPrimaryGlobal 拡張属性つきです。

[50] DedicatedWorkerGlobal=(Worker,DedicatedWorker) 拡張属性つきです。

[51] SharedWorkerGlobal=(Worker,SharedWorker) 拡張属性つきです。

[66] ServiceWorkerGlobal 拡張属性つきです。

歴史

[2] Remove [PrimaryGlobal] (annevk著, ) https://github.com/whatwg/html/commit/dff66be7bd3c2a6ce1a411f2e8c2a1ccac88fd92

[3] Remove [PrimaryGlobal] by annevk · Pull Request #2956 · whatwg/html () https://github.com/whatwg/html/pull/2956

[4] Make [Exposed] mandatory, remove [PrimaryGlobal] (#423) (tobie著, ) https://github.com/heycam/webidl/commit/d59937304702d033358b89fac5b5562c23b56096

[5] Investigate removing [PrimaryGlobal] and requiring [Exposed] · Issue #365 · heycam/webidl () https://github.com/heycam/webidl/issues/365

[6] Make [Exposed] mandatory, remove [PrimaryGlobal] by tobie · Pull Request #423 · heycam/webidl () https://github.com/heycam/webidl/pull/423