Re: Exposing structured clone as an API?

> On Apr 23, 2015, at 3:27 PM, Martin Thomson <martin.thomson@gmail.com> wrote:
> 
> On 23 April 2015 at 15:02, Ted Mielczarek <ted@mozilla.com> wrote:
>> Has anyone ever proposed exposing the structured clone algorithm directly as an API?
> 
> If you didn't just do so, I will :)
> 
>> 1. https://twitter.com/TedMielczarek/status/591315580277391360
> 
> Looking at your jsfiddle, here's a way to turn that into something useful.
> 
> +Object.prototype.clone = Object.prototype.clone || function() {
> - function clone(x) {
>    return new Promise(function (resolve, reject) {
>        window.addEventListener('message', function(e) {
>            resolve(e.data);
>        });
> +        window.postMessage(this, "*");
> -        window.postMessage(x, "*");
>    });
> }
> 
> But are we are in the wrong place to have that discussion?

Code nitpick: it probably should remove the event listener from within the handler, or calling this function repeatedly will leak memory. Also it will get slower every time.

Actually, now that I think about it, this isn’t usable at all if you are using postMessage for anything else, since you could accidentally capture non-cloning-related messages.

I guess these are potentially arguments to expose cloning directly.

Regards,
Maciej

Received on Thursday, 23 April 2015 22:38:42 UTC