The global object in browsers
Ian Hickson
ian at hixie.ch
Mon Jul 6 14:52:23 PDT 2009
On Mon, 6 Jul 2009, Brendan Eich wrote:
>
> If we must have split windows in all top browser implementations (so the
> argument goes), then we must have them in a spec. If not ECMA-262, then
> HTML5. If split windows, then what |this| binds to (outer or inner)
> needs to be spec'ed. So here we are. Comments?
Your e-mail is in line with my understanding.
In HTML5, the "inner window" is the Window object and the "outer window"
is the WindowProxy object. With one minor exception to do with
about:blank, there's a 1:1 mapping from Document to Window, and a 1:1
mapping from WindowProxy to browsing context. Each browsing context can
have many Window/Document pairs.
For what it's worth, right now HTML5 says:
If the script's global object is a Window object, then in JavaScript,
the |this| keyword in the global scope must return the Window object's
WindowProxy object.
This is a willful violation of the JavaScript specification current at
the time of writing (ECMAScript edition 3). The JavaScript
specification requires that the this keyword in the global scope return
the global object, but this is not compatible with the security design
prevalent in implementations as specified herein. [ECMA262]
I'd love to be able to include this requirement without it being a
violation of another spec.
HTH,
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the es-discuss
mailing list