Description[wasm] Use a Managed<WasmModule> to hold metadata about modules.
This CL refactors the handling of metadata associated with WebAssembly
modules to reduce the duplicate marshalling of data from the C++ world
to the JavaScript world. It does this by wrapping the C++ WasmModule*
object in a Foreign that is rooted from the on-heap WasmCompiledModule
(which is itself just a FixedArray). Upon serialization, the C++ object
is ignored and the original WASM wire bytes are serialized. Upon
deserialization, the C++ object is reconstituted by reparsing the bytes.
This is motivated by increasing complications in implementing the JS
API, in particular WebAssembly.Table, which must perform signature
canonicalization across instances.
Additionally, this CL implements the proper base + offset initialization
behavior for tables.
R=rossberg@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,yangguo@chromium.org
BUG=v8:5507, chromium:575167, chromium:657316
Committed: https://crrev.com/418b239f0b379cbf97bc74b93a31d61382a1ed13
Cr-Commit-Position: refs/heads/master@{#40434}
Patch Set 1 #
Total comments: 25
Patch Set 2 : Rebase on master #Patch Set 3 : Fix ResetCompiledModule #Patch Set 4 : Rebase #Patch Set 5 : More rebasing #Patch Set 6 : [wasm] Use a Managed<WasmModule> to hold metadata about modules. #Patch Set 7 : Add cut-down regression test #Patch Set 8 : Add test for table inits with base. #Patch Set 9 : Add Factory::NewStringFromUtf8SubString() #Patch Set 10 : Review comments #
Total comments: 29
Patch Set 11 : Address review comments #Patch Set 12 : Rebase again #Patch Set 13 : [wasm] Use a Managed<WasmModule> to hold metadata about modules. #
Messages
Total messages: 68 (53 generated)
|