• adamk's avatar
    [modules] Store Module metadata in per-Context EmbedderData · 9d2051fc
    adamk authored
    This is a re-land of https://codereview.chromium.org/2393303002/ with
    an additional call to DisposeModuleEmbedderData() added to fix lsan failures.
    
    Unifies the approaches used for storing the specifier -> module mapping
    and the module -> directory mapping, using std::unordered_maps for both
    and storing them per-Context.
    
    This requires adding a method to the v8::Module API to get a hash code
    for a Module, but allows slimming down the API in return: gone are
    SetEmbedderData/GetEmbedderData, along with the fourth argument
    to ResolveModuleCallback.
    
    Besides a simpler API, this allows d8 to get closer to the HTML loader,
    which requires each Realm to have a persistent module map (though this
    capability is not yet exercised by any tests).
    
    BUG=v8:1569
    TBR=neis@chromium.org,jochen@chromium.org
    
    Review-Url: https://codereview.chromium.org/2405313002
    Cr-Commit-Position: refs/heads/master@{#40186}
    9d2051fc
api.cc 328 KB