1. 05 Dec, 2016 1 commit
    • clemensh's avatar
      [inspector] Split off interface-types.h · f5fb2da6
      clemensh authored
      This CL adds a new header src/debug/interface-types.h, moves the
      definition of Location from the debug-interface.h to this new header,
      and adds a new definition for the WasmDisassembly types.
      This allows to use the types in other implementation files or headers
      without having to include the entire debug-interface.h, reducing build
      dependencies and compile time (especially for incremental builds).
      
      The WasmDisassembly type replaces the old
      std::pair<std::string, std::vector<std::tuple<...>>>, which was a bit
      hard to unravel.
      
      R=yangguo@chromium.org, kozyatinskiy@chromium.org, titzer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2529383002
      Cr-Commit-Position: refs/heads/master@{#41488}
      f5fb2da6
  2. 30 Nov, 2016 1 commit
    • clemensh's avatar
      [wasm] Remove raw byte pointers from WasmModule · 6572b562
      clemensh authored
      These byte pointers (module_start and module_end) were only valid
      during decoding. During instantiation or execution, they can get
      invalidated by garbage collection.
      This CL removes them from the WasmModule struct, and introduces a new
      ModuleStorage struct as interface to the wasm wire bytes.
      Since the storage is often needed together with the ModuleEnv, a new
      ModuleStorageEnv struct holds both a ModuleEnv and a ModuleStorage.
      The pointers in the ModuleStorage should never escape the live range of
      this struct, as they might point into a SeqOneByteString or ArrayBuffer.
      Therefore, the WasmInterpreter needs to create its own copy of the
      whole module.
      Runtime functions that previously used the raw pointers in WasmModule
      (leading to memory errors) now have to use the SeqOneByteString in the
      WasmCompiledModule.
      
      R=titzer@chromium.org
      BUG=chromium:669518
      
      Review-Url: https://codereview.chromium.org/2540133002
      Cr-Commit-Position: refs/heads/master@{#41388}
      6572b562
  3. 22 Nov, 2016 1 commit
    • clemensh's avatar
      [wasm] Implement official wasm text format · 172f5012
      clemensh authored
      When disassembling functions for the inspector, we used an internal
      text representation before. This CL implements the official text
      format like it is understood by the spec interpreter.
      
      Example output:
      func $main (param i32) (result i32)
      block i32
        get_local 0
        i32.const 2
        i32.lt_u
        if
          i32.const -2
          return
        end
        get_local 0
        call_indirect 0
      end
      
      R=rossberg@chromium.org, titzer@chromium.org
      BUG=chromium:659715
      
      Review-Url: https://codereview.chromium.org/2520943002
      Cr-Commit-Position: refs/heads/master@{#41172}
      172f5012