• Ben Smith's avatar
    [wasm] Simplify module creation · 425fa3ae
    Ben Smith authored
    This includes WasmEngine::NewNativeModule() and WasmModuleObject::New().
    The intent is to make the various ways of creating a module (sync,
    async, deserialize, import) more similar.
    
    After this change, a NativeModule will always be created before a
    WasmModuleObject. This will make it easier to look up a cached
    NativeModule given its wire bytes.
    
    The following changes are made:
    
    * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code
      size estimate by default. A different code size estimate is only used in
      tests.
    * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of
      assuming the array was created with the correct size. This simplifies
      WasmModuleObject::New(), and matches what CompileToNativeModule()
      does.
    * Remove the WasmModuleObject::New() constructor that creates a
      NativeModule. This case was only used in DeserializeNativeModule() and
      in test code.
    
    Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497
    Commit-Queue: Ben Smith <binji@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62925}
    425fa3ae
module-compiler.cc 103 KB