- From: Jonas Sicking <jonas@sicking.cc>
- Date: Thu, 2 Jun 2011 10:34:34 -0700
- To: ben turner <bent.mozilla@gmail.com>
- Cc: "public-webapps@w3.org" <public-webapps@w3.org>
On Thu, Jun 2, 2011 at 10:22 AM, ben turner <bent.mozilla@gmail.com> wrote: > On Thu, Jun 2, 2011 at 9:58 AM, Travis Leithead > <Travis.Leithead@microsoft.com> wrote: >> >> This plan requires all objects that want to opt-in to a new transfer-of-ownership (or really >> any special custom behavior for postMessage) to 1) participate in the special inheritance >> interface and 2) be isolated from the primary object graph being passed to the first >> parameter. > > I interpreted the proposal differently... This is what I envisioned: > > var bufferToTransfer = /* make ArrayBuffer */; > var bufferToCopy = /* make ArrayBuffer */; > var worker = /* make Worker */; > var message = { buf1: bufferToTransfer, buf2: bufferToCopy }; > worker.postMessage(message, [bufferToTransfer]); > > We'd keep the structure exactly the same, it's just that when we clone > 'message' we compare each object value to one of the ones passed in > the transfer array. If the objects match (===) then we'd transfer it > rather than copy it. > > Does that sound like what you were hoping for? This would work for me. It's also a better design for MessagePorts IMO. I also don't understand the reason for the requirement to have the type participate in some specific inheritance chain. All that seems needed to me is to enumerate the types which can be transferred rather than copied as obviously transferring normal JS arrays or JS objects is unlikely to be possible in todays JS implementations. / Jonas
Received on Thursday, 2 June 2011 17:35:31 UTC