• mtrofin's avatar
    [wasm] instantiate expressed in terms of compile · 71cf4890
    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-Original-Commit-Position: refs/heads/master@{#44592}
    Committed: https://chromium.googlesource.com/v8/v8/+/7829af3275ff4644a2d0a1270abe1a1e4415e9fb
    Review-Url: https://codereview.chromium.org/2806073002
    Cr-Commit-Position: refs/heads/master@{#44669}
    71cf4890
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...