• mtrofin's avatar
    [wasm] instantiate expressed in terms of compile · 7829af32
    mtrofin authored
    Today, the semantics of:
    
    WebAssembly.instantiate
    
    and
    
    WebAssembly.compile().then(new WebAssemblyInstance)
    
    are subtly different, to the point where attempting the proposed
    change uncovered bugs.
    
    In the future, it's possible that .instantiate actually have different
    semantics - if we pre-specialized to the provided ffi, for example.
    Right now that's not the case.
    
    This CL:
    - gets our implementation closer to what developers may write using
    the compile -> new Instance alternative, in particular wrt promise
    creation. By reusing code paths, we uncover more bugs, and keep
    maintenance cost lower.
    
    - it gives us the response-based WebAssembly.instantiate implicitly.
    Otherwise, we'd need that same implementation on the blink side. The
    negative is maintenance: imagine if the bugs I mentioned could only be
    found when running in Blink.
    
    BUG=chromium:697028
    
    Review-Url: https://codereview.chromium.org/2806073002
    Cr-Commit-Position: refs/heads/master@{#44592}
    7829af32
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...