| Index: src/wasm/wasm-module.h
|
| diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
|
| index 5e2ba58a441dd237e9c3258cfee676dd4eb1670d..5e84945da9a6d3828b90e8589a2dff56b1babd57 100644
|
| --- a/src/wasm/wasm-module.h
|
| +++ b/src/wasm/wasm-module.h
|
| @@ -121,22 +121,41 @@ struct WasmModule {
|
| Handle<JSArrayBuffer> memory);
|
| };
|
|
|
| +// An instantiated WASM module, including memory, function table, etc.
|
| +struct WasmModuleInstance {
|
| + WasmModule* module; // static representation of the module.
|
| + // -- Heap allocated --------------------------------------------------------
|
| + Handle<JSObject> js_object; // JavaScript module object.
|
| + Handle<Context> context; // JavaScript native context.
|
| + Handle<JSArrayBuffer> mem_buffer; // Handle to array buffer of memory.
|
| + Handle<JSArrayBuffer> globals_buffer; // Handle to array buffer of globals.
|
| + Handle<FixedArray> function_table; // indirect function table.
|
| + std::vector<Handle<Code>>* function_code; // code objects for each function.
|
| + // -- raw memory ------------------------------------------------------------
|
| + byte* mem_start; // start of linear memory.
|
| + size_t mem_size; // size of the linear memory.
|
| + // -- raw globals -----------------------------------------------------------
|
| + byte* globals_start; // start of the globals area.
|
| + size_t globals_size; // size of the globals area.
|
| +
|
| + explicit WasmModuleInstance(WasmModule* m)
|
| + : module(m),
|
| + function_code(nullptr),
|
| + mem_start(nullptr),
|
| + mem_size(0),
|
| + globals_start(nullptr),
|
| + globals_size(0) {}
|
| +};
|
| +
|
| // forward declaration.
|
| class WasmLinker;
|
|
|
| // Interface provided to the decoder/graph builder which contains only
|
| // minimal information about the globals, functions, and function tables.
|
| struct ModuleEnv {
|
| - uintptr_t globals_area; // address of the globals area.
|
| - uintptr_t mem_start; // address of the start of linear memory.
|
| - uintptr_t mem_end; // address of the end of linear memory.
|
| -
|
| WasmModule* module;
|
| + WasmModuleInstance* instance;
|
| WasmLinker* linker;
|
| - std::vector<Handle<Code>>* function_code;
|
| - Handle<FixedArray> function_table;
|
| - Handle<JSArrayBuffer> memory;
|
| - Handle<Context> context;
|
| bool asm_js; // true if the module originated from asm.js.
|
|
|
| bool IsValidGlobal(uint32_t index) {
|
|
|