On Tue, Jun 23, 2009 at 4:53 PM, Maciej Stachowiak <m...@apple.com> wrote:

>
>
> The code above means that Worker.prototype is set at the time the Worker 
> constructor itself is created, which is good. In the line you bolded, a fresh 
> prototype object is created, and under the covers it will get cached. 
> However, it looks to me like the Worker wrapper will use the prototype from 
> the Window where the reference is created, rather than the one that the 
> Worker constructor came from. So everything I said may be wrong. Short 
> version: this all needs tests.
>

Agreed, tests would be good. BTW, I don't see where the code is using the
prototype from the Window where the reference is created. I do see where the
current ScriptExecutionContext is passed in to the Worker() constructor, but
that's just the WebCore class and shouldn't affect the JSWorker prototype?


>
> Also, there might be a subtle bug in the above code: what if window.Worker
> is first accessed from a different frame? Then the prototype of the Worker
> constructor itself will use the other frame's Object prototype as its
> prototype. I'm not sure if that is right. I think maybe JSWorkerConstructor
> should be passed the global object from which it is retrieved as a property,
> instead of using the lexical global object.
>

Good catch. This bug seems to be in all our custom generated constructors.


>
> Regards,
> Maciej
>
>
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to