1. 19 Oct, 2016 1 commit
    • titzer's avatar
      [wasm] Use a Managed<WasmModule> to hold metadata about modules. · 418b239f
      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}
      418b239f
  2. 17 Oct, 2016 1 commit
    • titzer's avatar
      [wasm] Add a Managed<T> wrapper class for allocating C++ classes that are... · 6d266f00
      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}
      6d266f00