On 25/11/2010, at 07:12, RobG wrote:
> On Nov 25, 12:46 pm, Jorge Chamorro <[email protected]> wrote:
>> On 25/11/2010, at 03:12, RobG wrote:
>>> On Nov 24, 9:48 pm, Jorge Chamorro <[email protected]> wrote:
>>>> Quoting Mr. Brendan Eich, here, FYI :
>> 
>>>> "The ECMAScript global object is not on the prototype chain of some other 
>>>> (Window) really-global object. The two are the same (which means Window 
>>>> must not be a "host object" in ES5 terms; see 8.6.2). ECMA-262 requires 
>>>> builtins such as parseInt and eval to be "own" properties of the global 
>>>> object (|this| in global code, AKA |window| and |self| in browsers)."
>> 
>>> There is no point to quoting comments out of context with no link or
>>> citation.
>> 
>> http://lists.w3.org/Archives/Public/public-script-coord/2010OctDec/00...
> 
> Thank you. That comment is not normative. Consider what Ian Hickson
> says in an earlier thread: "The global object in browsers":
> 
> 'For HTML5, this behaviour has been defined in more detail. The
> global
> object is a Window object. This object is per-Document. The object
> returned by the "window" attribute on that global object is actually
> a
> WindowProxy object, which forwards everything to the "current" Window
> object."
> 
> <URL: http://www.mail-archive.com/[email protected]/msg01930.html
>> 
> 
> Note the distinction between "W" for Window, and the lower case "w"
> for the window attribute. In the realm that these guys are discussing,
> "Window" is not "window". Now apply that to your Brendan Eich quote.

Because in a browser -unlike in the ES specs- there's more than a global 
object, exactly one per window/frame/iframe.

> Regardless, onorientationchange is not a built-in property or object.
> It might be native, but that is not relevant here.

It's not relevant, because onorientationchange is not what we're talking about, 
we're talking about window, you know.

> At the point it was
> being tested (i.e. before any assignment has been made to it) if it
> has any sensible value it will be a host property or object. If it
> exists, it is a property of window and typeof
> window.onorientationchange might return function, or object, or
> undefined, or null, or unknown, or whatever.

Again, I've got nothing to say about onorientationchange (which is a global, 
btw).

> Once an assignment has been made, e.g.
> 
>  window.onorientationchange = function() {...};
> 
> now typeof window.onorientationchange *should* return "function" as a
> native function has been assigned. However, it may not as window may
> not allow an onorientationchange property to be assigned (and we are
> back to "typeof <host object> may return anything").

window is the global object -except in IEs-, so -except in IEs- assigning to a 
property of window creates a global... and it's always a valid operation.

> The bottom line, still, is that typeof window.onorientationchange is
> not a reliable cross-browser test for support for the
> onorientationchange event.

On this, we agree. But please stop harping on about onorientationchange.

>>> Window will be a built-in object when it is defined as such
>>> in some version of ECMA-262 (it is not in either ed3 or ed5). Until
>>> then, it is, by definition, a host object.
>> 
>> The global object "is not required to follow many basic ECMAScript rules, 
>> such as the result of a typeof test" ?
> 
> That phrase was referring to the window object, not the global object.
> In most browsers, the window object is effectively the global object,
> which I think is the point Brendan Eich was making. However, it is not
> *required* to be and it has been shown to not be in some browsers.

Right. It has been shown to not be in IEs.

> Even if it is the built-in global object, only those properties that
> are built-in or native must behave per ECMA-262. Host objects and
> properties (like onorientationchange) can do what they like.

But they don't, except in IEs, where its behaviour is absolutely bizarre, most 
of the times.

> All this is a red herring and has little to do with an effective
> feature test for event support.

Right.

>>> Any further discussion should be in comp.lang.javascript. You should
>>> take the advice offered there and just let it go.
>> 
>> c.l.js... don't even get me started.
> 
> Because you know your view is not supported there.

c.l.js... dominated by a bunch of... don't even get me started.
-- 
Jorge.

-- 
You received this message because you are subscribed to the Google Groups 
"iPhoneWebDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/iphonewebdev?hl=en.

Reply via email to