• Jakob Kummerow's avatar
    [wasm] Make an "incumbent context" available after async compilation · 74e42008
    Jakob Kummerow authored
    A Wasm module's start function might be imported from JavaScript, and
    as such might contain calls to Blink. For such a case, we must make
    sure that an "incumbent context" is available. Usually, having any
    JavaScript function on the stack is enough to ensure that; but in the
    special case of async compilation, the "success" task is executed
    directly from the event loop, so we have to manually enter a context.
    
    Additionally, we need to ensure that such a start function's own context
    is properly entered: in addition to setting it as the current context
    on the isolate (as the function call sequence is doing), we have to
    register it in the list of entered contexts, as if v8::Context::Enter
    had been used.
    
    Bug: chromium:1096558
    Change-Id: I12679ab49ee764572e3742da24889dcd55c29160
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292248Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70175}
    74e42008
module-compiler.cc 135 KB