- From: timeless <timeless@gmail.com>
- Date: Wed, 10 Mar 2010 10:41:38 +0200
On Tue, Mar 2, 2010 at 12:50 AM, ben turner <bent at mozilla.com> wrote: > Hi folks, > > I'm implementing the structured clone algorithm and this part bothers > me a little bit: > > ?- If input is a host object (e.g. a DOM node) > ? ? ?Return the null value. > > Seems like this has the potential to confuse web programmers somewhat. > If I were to write code like this: > > ?worker.postMessage(window); > > I would expect something meaningful to happen as long as no exception > was generated. According to the spec, though, we would send null to > the worker and not generate any exception. Is that really desirable? > > I like the idea of making the structured clone as friendly as possible > but maybe we should add some teeth to this case just like we do for > recursive objects? You could convert objects into {toString:function(){return null}, valueOf:function(){return "[Window native object]"}} or something. The general reason, I believe for this behavior is if you have: a=[x,y,z,q,r,s]; worker.postMessage(a) and r turns out to be window, you don't want to trigger an exception just because one value in a list is a native object. Serializing Window and similar items seems like a recipe for failure.
Received on Wednesday, 10 March 2010 00:41:38 UTC