<br><br><div class="gmail_quote">On Mon, Aug 3, 2009 at 10:34 AM, Daniel Gredler <span dir="ltr">&lt;<a href="mailto:daniel.gredler@gmail.com">daniel.gredler@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><br></blockquote></div><div>I know Anne VK (Opera) and ROC (Mozilla) appear to read this list... any comments, guys? Should I just file bugs? Any Safari / Chrome / IE guys out there with comments?<br>

</div></div></blockquote><div><br></div><div>I&#39;ve often had the same thought (that there&#39;s no reason we shouldn&#39;t handle cycles when implementing structured clones).</div><div><br></div><div>That said, I&#39;m compelled to point out that WebKit browsers only support string messages currently (they don&#39;t yet implement the structured clone part of the spec). And none of the currently shipping browsers support MessagePorts or SharedWorkers (although WebKit browsers are getting these soon). So given that there&#39;s a workaround for the lack of support for cycles in structured clones (applications can do their own serialization) but there&#39;s no app-level workaround for the lack of SharedWorkers, I&#39;d rather see vendors concentrate on implementing the current spec before adding greater support for cloning message parameters.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div><br>I agree that once you&#39;ve made the decision to not clone functions, cloning the prototype chain becomes (nearly?) useless. However, I&#39;d be interested to know the rationale behind this decision, since Web Workers appear to follow the same-origin policy (e.g. &quot;If the origin of the resulting absolute URL is not the same as the origin of the script that invoked the constructor, then throw a security exception&quot;, etc). I assume there&#39;s a security concern lurking somewhere?</div>
</div></blockquote><div><br></div><div>It&#39;s not clear to me how you&#39;d clone the lexical scope of a function and carry it over to the worker in a way that doesn&#39;t cause synchronization issues.</div><div><br></div>
<div>Case in point:</div><div><br></div><div>var obj = {};</div><div>var foo = &quot;abc&quot;;</div><div>obj.bar = function() { foo = &quot;def&quot;; }</div><div>sharedWorker.port.postMessage(obj);</div><div><br></div><div>
Now, from shared worker scope, you have the ability to directly access the variable &quot;foo&quot; from a different thread/process, which is not really implementable.</div><div> </div><div><br></div><div>-atw</div></div>
<br>