• 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
js-api.js 32.2 KB