- From: Mark S. Miller <erights@google.com>
- Date: Mon, 18 Apr 2011 17:28:36 -0400
- To: Allen Wirfs-Brock <allen@wirfs-brock.com>
- Cc: es-discuss <es-discuss@mozilla.org>, public-script-coord@w3.org, es5-discuss@mozilla.org
- Message-ID: <BANLkTi=AqpWq-jvum9V+pwPPTxtRCRcBqQ@mail.gmail.com>
On Mon, Apr 18, 2011 at 5:17 PM, Allen Wirfs-Brock <allen@wirfs-brock.com>wrote:
> Well, I don't think ES5 has anything to say about this issue because as you
> know it doesn't include the concept of multiple global contexts. I actually
> don't think it is valid to try to interpret the ES5 spec. to try to find
> guidance on this issue as anything thing you find that may seem relevant to
> this situation is probably coincidental.
>
> That said, I'll violate my own advice and point out some possibly relevant
> things in the ES5 spec.
>
> First, the global object that is in scope to a function is captured when a
> function instantiated as part of the state captured via the [[Scope]]
> internal property. So, that means in canary.html the global object used to
> resolve 'window' and 'parent' within the canary function should be the
> frame's global object. The value passed as the this value to the call to
> canary is determined by 10.4.3 (Entering Function Code) but is only
> identified as the "global object". There is no hint in 10.4.3 about which
> global object to use. However, 10.4.3 is referenced from the specification
> of the [[Call]] internal method (13.2.1). Both [[Call]] and [[Scope]] are
> part of the internals of a function object so you would expect them to have
> a consistent view of the "global object". Hence, when [[Call]] refers to
> 10.4.3 I would assume that it should be done using the same "global object"
> that [[Scope]] captured.
>
> Thus, the expected answer should be "true,false,[object ???]"
>
Good. I went through a similarly indirect analysis, reading between the
lines, and arrived at the same conclusion for canary.html and
canary-orig.html. As for canary-direct.html, I think both FF4.0's apparent
behavior (it is a direct eval) and apparent Nightly6.0beta's behavior (it is
an indirect eval) are justifiable, but I prefer the latter.
>
> But, like I said above, this is not necessarily intentional.
>
> Does the HTML spec. explicitly covers this case?
>
>From discussion with Ian, it seems the answer is no. Ian asked if it would
be useful for HTML to specify this in the interim, until ES-next get around
to specifying the semantics of multiple globals. I said yes, since we need
to converge present browser behavior sooner.
>
> Allen
>
> On Apr 18, 2011, at 1:09 PM, Mark S. Miller wrote:
>
> See <http://code.google.com/p/chromium/issues/detail?id=79612>.
>
> --
> Cheers,
> --MarkM
>
>
>
--
Cheers,
--MarkM
Received on Monday, 18 April 2011 21:29:01 UTC