<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - WebAssembly: test compile / instantiate in a Worker"
href="https://bugs.webkit.org/show_bug.cgi?id=166480#c9">Comment # 9</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - WebAssembly: test compile / instantiate in a Worker"
href="https://bugs.webkit.org/show_bug.cgi?id=166480">bug 166480</a>
from <span class="vcard"><a class="email" href="mailto:jfbastien@apple.com" title="JF Bastien <jfbastien@apple.com>"> <span class="fn">JF Bastien</span></a>
</span></b>
<pre>(In reply to <a href="show_bug.cgi?id=166480#c8">comment #8</a>)
<span class="quote">> (In reply to <a href="show_bug.cgi?id=166480#c7">comment #7</a>)
> > (In reply to <a href="show_bug.cgi?id=166480#c6">comment #6</a>)
> > > (In reply to <a href="show_bug.cgi?id=166480#c5">comment #5</a>)
> > > > (In reply to <a href="show_bug.cgi?id=166480#c4">comment #4</a>)
> > > > > (In reply to <a href="show_bug.cgi?id=166480#c3">comment #3</a>)
> > > > > > (In reply to <a href="show_bug.cgi?id=166480#c2">comment #2</a>)
> > > > > > > (In reply to <a href="show_bug.cgi?id=166480#c1">comment #1</a>)
> > > > > > > > (In reply to <a href="show_bug.cgi?id=166480#c0">comment #0</a>)
> > > > > > > > > I've heard from someone trying out WebAssembly that they current use compile
> > > > > > > > > / instantiate in a worker because some implementations aren't asynchronous.
> > > > > > > > > They want to do work on the main thread while compiling, so a Worker makes
> > > > > > > > > sense. They then transfer the Module / Instance back to the main thread.
> > > > > > > > >
> > > > > > > > > We should have a test that this works well.
> > > > > > > > >
> > > > > > > > > Related:
> > > > > > > > > - WebAssembly: Make WebAssembly.compile truly asynchronous
> > > > > > > > > <a class="bz_bug_link
bz_status_NEW "
title="NEW - WebAssembly: Make WebAssembly.compile truly asynchronous"
href="show_bug.cgi?id=166016">https://bugs.webkit.org/show_bug.cgi?id=166016</a>
> > > > > > > > > - WebAssembly: Implement the WebAssembly.instantiate API
> > > > > > > > > <a class="bz_bug_link
bz_status_NEW "
title="NEW - WebAssembly: Implement the WebAssembly.instantiate API"
href="show_bug.cgi?id=165982">https://bugs.webkit.org/show_bug.cgi?id=165982</a>
> > > > > > > >
> > > > > > > > I think this should work as expected regardless of the compile API being
> > > > > > > > asynchronous internally.
> > > > > > >
> > > > > > > Also, I agree we should have a test for this.
> > > > > >
> > > > > > Right, I want to make sure postMessage-ing Module / Instance / Memory /
> > > > > > Table all work as expected.
> > > > >
> > > > > Interesting. Is that the expected behavior? This is unlike anything we do
> > > > > elsewhere. We don't postMessage heap cells since each worker is in a
> > > > > different VM
> > > >
> > > > I don't know what's expected :-D
> > >
> > > We won't be able to compile a Module then ship over the module across
> > > workers. We will be able to have workers that have their own
> > > Modules/Instances/etc that can run independently. We need to think about
> > > what happens when we try to ship over an ArrayBuffer for Memory. This should
> > > probably not be allowed since it's backed by Wasm::Memory mmaped memory.
> >
> > IIUC they serialize WebAssembly.Module, and transfer it from Worker to main
> > thread. Apparently this works in Chrome / FF. Should we file an issue on
> > this in the design repo?
> We should probably support the same serialization. I'm interested to know
> what happens to the underlying Memory/etc in the worker that created them
> after they're transferred. Also, what happens to the underlying memory? Is
> there a spec for this serialization? A better API than using workers would
> be we should just make the asynchronous APIs truly asynchronous. I don't
> think that should be too difficult</span >
I believe that only Module is expected to be postMessage-able correctly, and that the details are tied to IndexDB support:
<a class="bz_bug_link
bz_status_NEW "
title="NEW - WebAssembly: implement the IndexDB caching API"
href="show_bug.cgi?id=166481">https://bugs.webkit.org/show_bug.cgi?id=166481</a></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>