[whatwg] JSON support for worker postMessage

Jonas Sicking jonas at sicking.cc
Mon Nov 17 20:26:57 PST 2008

Indeed. Though it might make sense to define it in terms of "anything 
parseable as JSON + blobExtension" even though that's probably not what 
will happen internally.

Anyhow, sounds like there is agreement on feature-set which is the 
important thing. How it's defined and implemented matters less to me 
right now :)

/ Jonas

Aaron Boodman wrote:
> Yeah definitely.
> You said: "We'll probably have to create further JSON extensions to
> support that."
> My point is that there is no need to change JSON at all if we ever add
> blobs to the list of supported types. Even if you happen to use JSON
> internally for the implementation now, you could change it to use some
> other serialization format in the future.
> Basically, I don't think that just because you can pass a blob via
> postMessage, that necessarily means you need to be able to serialize a
> blob to JSON. Blobs might be very large, so it might not even make
> sense to allow serializing them to JSON.
> - a
> On Mon, Nov 17, 2008 at 8:18 PM, Jonas Sicking <jonas at sicking.cc> wrote:
>> Well, you'd probably want to support things like
>> w.postMessage({ command: "do cool thing",
>>                data: myBlob });
>> / Jonas
>> Aaron Boodman wrote:
>>> If you support worker.sendMessage(<stuff>), where <stuff> is defined
>>> by convenience to be: whatever you are allowed to send
>>> JSON.stringify(), then you could expand this in the future to also
>>> allow blobs w/o changing anything about JSON.
>>> - a
>>> On Mon, Nov 17, 2008 at 8:10 PM, Jonas Sicking <jonas at sicking.cc> wrote:
>>>> Indeed. Blobs is a great idea. We'll probably have to create further JSON
>>>> extensions to support that.
>>>> / Jonas
>>>> Aaron Boodman wrote:
>>>>> +1, because I think it will be useful to pass other things to workers
>>>>> that JSON cannot represent (blobs) in the future.
>>>>> - a
>>>>> On Mon, Nov 17, 2008 at 8:03 PM, Jonas Sicking <jonas at sicking.cc> wrote:
>>>>>> Hi All,
>>>>>> Ben just wrote up a patch to support JSON objects as well as primitive
>>>>>> values (0, null, false, etc) to be passed to and from workers using
>>>>>> postMessage.
>>>>>> Wanted to see what the reactions to this was. Is it a good idea or not?
>>>>>> I seem to recall this coming up in the past in the original feedback
>>>>>> about
>>>>>> what features people wanted.
>>>>>> The technical details are as follows:
>>>>>> Any of the following values are passed by value as-is:
>>>>>> * strings
>>>>>> * numbers
>>>>>> * booleans
>>>>>> * undefined
>>>>>> * null
>>>>>> Anything else is passed to JSON.stringify (defined by Ecmascript drafts
>>>>>> here[1]). If calling JSON.stringify throws the same error will be
>>>>>> thrown
>>>>>> by
>>>>>> the function. Otherwise the message event fired on the other 'side'
>>>>>> will
>>>>>> contain the result of JSON.parse.
>>>>>> / Jonas

More information about the whatwg mailing list