- 19 Oct, 2016 1 commit
-
-
titzer authored
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 Review-Url: https://chromiumcodereview.appspot.com/2424623002 Cr-Commit-Position: refs/heads/master@{#40434}
-
- 17 Oct, 2016 1 commit
-
-
titzer authored
[wasm] Add a Managed<T> wrapper class for allocating C++ classes that are deleted when the wrapper is garbage collected. Use sparingly! This doesn't add any really new functionality, other than making it more convenient to do this. This will primarily be used to wrap a WasmModule to be referenced from a JSObject that represents an instance. There is one WasmModule C++ object per parsed WasmModule, so this should not be more than a handful or a few dozen in well-behaved programs. R=rossberg@chromium.org,mlippautz@chromium.org BUG= Review-Url: https://codereview.chromium.org/2409173005 Cr-Commit-Position: refs/heads/master@{#40346}
-