• mtrofin's avatar
    [wasm] Managed<T> ensures T's lifetime does not leak past Isolate's · caa1d4b2
    mtrofin authored
    Native resources allocated by v8, as internal implementation detail,
    and held by a Foreign object, must be released when the Isolate is
    torn down. Example: wasm::WasmModule allocated by wasm compile, and
    held throughout the lifetime of the WebAssembly.Module object.
    
    This change:
    - Extends Managed<CppType> with a mechanism for doing just that
    - Separates the role of Managed<CppType> to be strictly an owner of
    the lifetime of the native resource. For cases where that's not
    desirable, we can polymorphically use Foregin.
    - moves managed.h out of wasm, since it's not wasm-specific.
    
    BUG=680065
    
    Review-Url: https://codereview.chromium.org/2676513008
    Cr-Commit-Position: refs/heads/master@{#43350}
    caa1d4b2
isolate.cc 127 KB