W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2010

[whatwg] Structured clone algorithm a little too friendly?

From: timeless <timeless@gmail.com>
Date: Wed, 10 Mar 2010 10:41:38 +0200
Message-ID: <26b395e61003100041s523f54a5wb71e903236218262@mail.gmail.com>
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

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:21 UTC