Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Unified Diff: src/wasm/wasm-module.h

Issue 2493823003: [wasm] Allocate a single script per wasm module (Closed)
Patch Set: Fix signed/unsigned issues Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/wasm/wasm-module.h
diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
index a9d61fd71fead418ee80aef288cd2f5ee6f0a718..388a7ee832ddec92a232e62fc20e85e5d2d7563a 100644
--- a/src/wasm/wasm-module.h
+++ b/src/wasm/wasm-module.h
@@ -400,11 +400,13 @@ class WasmCompiledModule : public FixedArray {
#define CORE_WCM_PROPERTY_TABLE(MACRO) \
MACRO(OBJECT, FixedArray, code_table) \
MACRO(OBJECT, Foreign, module_wrapper) \
+ /* For debugging: */ \
MACRO(OBJECT, SeqOneByteString, module_bytes) \
- MACRO(OBJECT, Script, asm_js_script) \
+ MACRO(OBJECT, Script, script) \
+ MACRO(OBJECT, ByteArray, asm_js_offset_tables) \
+ /* End of debugging stuff. */ \
MACRO(OBJECT, FixedArray, function_tables) \
MACRO(OBJECT, FixedArray, empty_function_tables) \
- MACRO(OBJECT, ByteArray, asm_js_offset_tables) \
MACRO(OBJECT, JSArrayBuffer, memory) \
MACRO(SMALL_NUMBER, uint32_t, min_mem_pages) \
MACRO(SMALL_NUMBER, uint32_t, max_mem_pages) \
@@ -455,6 +457,10 @@ class WasmCompiledModule : public FixedArray {
return min_mem_pages() * WasmModule::kPageSize;
}
+ WasmModule* cpp_module() const {
+ return Handle<WasmModuleWrapper>::cast(module_wrapper())->get();
+ }
+
#define DECLARATION(KIND, TYPE, NAME) WCM_##KIND(TYPE, NAME)
WCM_PROPERTY_TABLE(DECLARATION)
#undef DECLARATION
@@ -472,17 +478,20 @@ class WasmCompiledModule : public FixedArray {
DISALLOW_IMPLICIT_CONSTRUCTORS(WasmCompiledModule);
};
-// Extract a function name from the given wasm object.
-// Returns "<WASM UNNAMED>" if the function is unnamed or the name is not a
-// valid UTF-8 string.
-Handle<String> GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
+// Extract a function name from the given compiled wasm module.
+// Returns "<WASM UNNAMED>" if no compiled module is passed, the function is
+// unnamed or the name is not a valid UTF-8 string.
+// TODO(5620): Fix interface once we always get a compiled module.
+Handle<String> GetWasmFunctionName(Isolate* isolate,
+ Handle<Object> compiled_module_or_undef,
uint32_t func_index);
-// Extract a function name from the given wasm object.
+// Extract a function name from the given compiled wasm module.
// Returns a null handle if the function is unnamed or the name is not a valid
// UTF-8 string.
-Handle<Object> GetWasmFunctionNameOrNull(Isolate* isolate, Handle<Object> wasm,
- uint32_t func_index);
+Handle<Object> GetWasmFunctionNameOrNull(
+ Isolate* isolate, Handle<WasmCompiledModule> compiled_module,
+ uint32_t func_index);
// Return the binary source bytes of a wasm module.
Handle<SeqOneByteString> GetWasmBytes(Handle<JSObject> wasm);
@@ -514,8 +523,10 @@ WasmCompiledModule* GetCompiledModule(Object* wasm_instance);
// Check whether the wasm module was generated from asm.js code.
bool WasmIsAsmJs(Object* instance, Isolate* isolate);
-// Get the script for the asm.js origin of the wasm module.
-Handle<Script> GetAsmWasmScript(Handle<JSObject> instance);
+// Get the script of the wasm module. If the origin of the module is asm.js, the
+// returned Script will be a JavaScript Script of Script::TYPE_NORMAL, otherwise
+// it's of type TYPE_WASM.
+Handle<Script> GetScript(Handle<JSObject> instance);
// Get the asm.js source position for the given byte offset in the given
// function.
@@ -546,8 +557,14 @@ V8_EXPORT_PRIVATE bool ValidateModuleBytes(Isolate* isolate, const byte* start,
ErrorThrower* thrower,
ModuleOrigin origin);
-// Get the number of imported functions for a WASM instance.
-int GetNumImportedFunctions(Handle<JSObject> instance);
+// Get the offset of the code of a function within a module.
+int GetFunctionCodeOffset(Handle<WasmCompiledModule> compiled_module,
+ int func_index);
+
+// Translate from byte offset in the module to function number and byte offset
+// within that function, encoded as line and column in the position info.
+bool GetPositionInfo(Handle<WasmCompiledModule> compiled_module,
+ uint32_t position, Script::PositionInfo* info);
// Assumed to be called with a code object associated to a wasm module instance.
// Intended to be called from runtime functions.

Powered by Google App Engine
This is Rietveld 408576698