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

Side by Side Diff: test/cctest/wasm/test-run-wasm-js.cc

Issue 1637923002: [wasm] Factor out WasmModuleInstance from ModuleEnv. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Finish comment. Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « src/wasm/wasm-module.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h> 5 #include <stdint.h>
6 #include <stdio.h> 6 #include <stdio.h>
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include "src/wasm/wasm-macro-gen.h" 10 #include "src/wasm/wasm-macro-gen.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 50
51 uint32_t AddJsFunction(TestingModule* module, FunctionSig* sig, 51 uint32_t AddJsFunction(TestingModule* module, FunctionSig* sig,
52 const char* source) { 52 const char* source) {
53 Handle<JSFunction> jsfunc = Handle<JSFunction>::cast(v8::Utils::OpenHandle( 53 Handle<JSFunction> jsfunc = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
54 *v8::Local<v8::Function>::Cast(CompileRun(source)))); 54 *v8::Local<v8::Function>::Cast(CompileRun(source))));
55 module->AddFunction(sig, Handle<Code>::null()); 55 module->AddFunction(sig, Handle<Code>::null());
56 uint32_t index = static_cast<uint32_t>(module->module->functions->size() - 1); 56 uint32_t index = static_cast<uint32_t>(module->module->functions->size() - 1);
57 Isolate* isolate = CcTest::InitIsolateOnce(); 57 Isolate* isolate = CcTest::InitIsolateOnce();
58 Handle<Code> code = CompileWasmToJSWrapper(isolate, module, jsfunc, index); 58 Handle<Code> code = CompileWasmToJSWrapper(isolate, module, jsfunc, index);
59 module->function_code->at(index) = code; 59 module->instance->function_code->at(index) = code;
60 return index; 60 return index;
61 } 61 }
62 62
63 63
64 uint32_t AddJSSelector(TestingModule* module, FunctionSig* sig, int which) { 64 uint32_t AddJSSelector(TestingModule* module, FunctionSig* sig, int which) {
65 const int kMaxParams = 8; 65 const int kMaxParams = 8;
66 static const char* formals[kMaxParams] = { 66 static const char* formals[kMaxParams] = {
67 "", "a", "a,b", "a,b,c", 67 "", "a", "a,b", "a,b,c",
68 "a,b,c,d", "a,b,c,d,e", "a,b,c,d,e,f", "a,b,c,d,e,f,g", 68 "a,b,c,d", "a,b,c,d,e", "a,b,c,d,e,f", "a,b,c,d,e,f,g",
69 }; 69 };
70 CHECK_LT(which, static_cast<int>(sig->parameter_count())); 70 CHECK_LT(which, static_cast<int>(sig->parameter_count()));
71 CHECK_LT(static_cast<int>(sig->parameter_count()), kMaxParams); 71 CHECK_LT(static_cast<int>(sig->parameter_count()), kMaxParams);
72 72
73 i::EmbeddedVector<char, 256> source; 73 i::EmbeddedVector<char, 256> source;
74 char param = 'a' + which; 74 char param = 'a' + which;
75 SNPrintF(source, "(function(%s) { return %c; })", 75 SNPrintF(source, "(function(%s) { return %c; })",
76 formals[sig->parameter_count()], param); 76 formals[sig->parameter_count()], param);
77 77
78 return AddJsFunction(module, sig, source.start()); 78 return AddJsFunction(module, sig, source.start());
79 } 79 }
80 80
81 81
82 Handle<JSFunction> WrapCode(ModuleEnv* module, uint32_t index) { 82 Handle<JSFunction> WrapCode(ModuleEnv* module, uint32_t index) {
83 Isolate* isolate = module->module->shared_isolate; 83 Isolate* isolate = module->module->shared_isolate;
84 // Wrap the code so it can be called as a JS function. 84 // Wrap the code so it can be called as a JS function.
85 Handle<String> name = isolate->factory()->NewStringFromStaticChars("main"); 85 Handle<String> name = isolate->factory()->NewStringFromStaticChars("main");
86 Handle<JSObject> module_object = Handle<JSObject>(0, isolate); 86 Handle<JSObject> module_object = Handle<JSObject>(0, isolate);
87 Handle<Code> code = module->function_code->at(index); 87 Handle<Code> code = module->instance->function_code->at(index);
88 WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context()); 88 WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context());
89 return compiler::CompileJSToWasmWrapper(isolate, module, name, code, 89 return compiler::CompileJSToWasmWrapper(isolate, module, name, code,
90 module_object, index); 90 module_object, index);
91 } 91 }
92 92
93 93
94 void EXPECT_CALL(double expected, Handle<JSFunction> jsfunc, 94 void EXPECT_CALL(double expected, Handle<JSFunction> jsfunc,
95 Handle<Object>* buffer, int count) { 95 Handle<Object>* buffer, int count) {
96 Isolate* isolate = jsfunc->GetIsolate(); 96 Isolate* isolate = jsfunc->GetIsolate();
97 Handle<Object> global(isolate->context()->global_object(), isolate); 97 Handle<Object> global(isolate->context()->global_object(), isolate);
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 RunJSSelectAlignTest(1, 2); 421 RunJSSelectAlignTest(1, 2);
422 RunJSSelectAlignTest(1, 3); 422 RunJSSelectAlignTest(1, 3);
423 } 423 }
424 424
425 425
426 TEST(Run_JSSelectAlign_3) { 426 TEST(Run_JSSelectAlign_3) {
427 RunJSSelectAlignTest(3, 3); 427 RunJSSelectAlignTest(3, 3);
428 RunJSSelectAlignTest(3, 4); 428 RunJSSelectAlignTest(3, 4);
429 } 429 }
430 #endif 430 #endif
OLDNEW
« no previous file with comments | « src/wasm/wasm-module.cc ('k') | test/cctest/wasm/wasm-run-utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698