• Mircea Trofin's avatar
    [wasm] Weaken global handles used for indirect tables · de296d14
    Mircea Trofin authored
    The previous design assumed we can't possibly have a cycle involving
    an instance, however, we can. For example: a script can reference
    an instance, which ends up referencing the native context because
    of how we generate wasm-to-js wrappers; that references the global
    object, which then references the script. A global handle to the
    indirect function table can then root such a cycle. That means
    the instance is never collected, which never deletes the global
    handle.
    
    This change addresses that by making the handles weak.
    
    Bug: 
    Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
    Change-Id: Ief7263af83974bf96505a4fba65d162474fe7c7c
    Reviewed-on: https://chromium-review.googlesource.com/653852
    Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
    Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
    Reviewed-by: 's avatarAseem Garg <aseemgarg@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47909}
    de296d14
module-compiler.h 13.9 KB