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

Unified Diff: test/cctest/wasm/wasm-module-runner.cc

Issue 2320723005: [wasm] Compilation/Instantiation pipeline works off module object (Closed)
Patch Set: rebase Created 4 years, 3 months 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
« no previous file with comments | « test/cctest/wasm/wasm-module-runner.h ('k') | test/fuzzer/wasm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/wasm/wasm-module-runner.cc
diff --git a/test/cctest/wasm/wasm-module-runner.cc b/test/cctest/wasm/wasm-module-runner.cc
index 55bebede4eebf7747434ef721e79b6c17afc36a6..c2d920cef36f3e2b24d83642293bb3f7e9aa310c 100644
--- a/test/cctest/wasm/wasm-module-runner.cc
+++ b/test/cctest/wasm/wasm-module-runner.cc
@@ -59,25 +59,26 @@ const Handle<JSObject> InstantiateModuleForTesting(Isolate* isolate,
if (thrower.error()) return Handle<JSObject>::null();
- MaybeHandle<FixedArray> compiled_module =
- module->CompileFunctions(isolate, &thrower);
-
- if (compiled_module.is_null()) return Handle<JSObject>::null();
- return WasmModule::Instantiate(isolate, compiled_module.ToHandleChecked(),
+ // Although we decoded the module for some pre-validation, run the bytes
+ // again through the normal pipeline.
+ MaybeHandle<JSObject> module_object = CreateModuleObjectFromBytes(
+ isolate, module->module_start, module->module_end, &thrower,
+ ModuleOrigin::kWasmOrigin);
+ if (module_object.is_null()) return Handle<JSObject>::null();
+ return WasmModule::Instantiate(isolate, module_object.ToHandleChecked(),
Handle<JSReceiver>::null(),
Handle<JSArrayBuffer>::null())
.ToHandleChecked();
}
int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start,
- const byte* module_end, bool asm_js) {
+ const byte* module_end, ModuleOrigin origin) {
HandleScope scope(isolate);
Zone zone(isolate->allocator());
ErrorThrower thrower(isolate, "CompileAndRunWasmModule");
std::unique_ptr<const WasmModule> module(DecodeWasmModuleForTesting(
- isolate, &zone, thrower, module_start, module_end,
- asm_js ? kAsmJsOrigin : kWasmOrigin));
+ isolate, &zone, thrower, module_start, module_end, origin));
if (module == nullptr) {
return -1;
@@ -87,9 +88,9 @@ int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start,
if (instance.is_null()) {
return -1;
}
- return CallWasmFunctionForTesting(isolate, instance, thrower,
- asm_js ? "caller" : "main", 0, nullptr,
- asm_js);
+ const char* f_name = origin == ModuleOrigin::kAsmJsOrigin ? "caller" : "main";
+ return CallWasmFunctionForTesting(isolate, instance, thrower, f_name, 0,
+ nullptr, origin);
}
int32_t InterpretWasmModule(Isolate* isolate, ErrorThrower& thrower,
@@ -150,9 +151,9 @@ int32_t InterpretWasmModule(Isolate* isolate, ErrorThrower& thrower,
int32_t CallWasmFunctionForTesting(Isolate* isolate, Handle<JSObject> instance,
ErrorThrower& thrower, const char* name,
int argc, Handle<Object> argv[],
- bool asm_js) {
+ ModuleOrigin origin) {
Handle<JSObject> exports_object;
- if (asm_js) {
+ if (origin == ModuleOrigin::kAsmJsOrigin) {
exports_object = instance;
} else {
Handle<Name> exports = isolate->factory()->InternalizeUtf8String("exports");
« no previous file with comments | « test/cctest/wasm/wasm-module-runner.h ('k') | test/fuzzer/wasm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698