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

Unified Diff: test/cctest/interpreter/bytecode-expectations-printer.cc

Issue 2393453003: [interpreter] Add some bytecode tests for modules. (Closed)
Patch Set: Created 4 years, 2 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
Index: test/cctest/interpreter/bytecode-expectations-printer.cc
diff --git a/test/cctest/interpreter/bytecode-expectations-printer.cc b/test/cctest/interpreter/bytecode-expectations-printer.cc
index a1e3ce62381d4d8ce825e1ab8dd4e894d06e383f..81be1c0028c7c4d82a412f85236610e047c845a2 100644
--- a/test/cctest/interpreter/bytecode-expectations-printer.cc
+++ b/test/cctest/interpreter/bytecode-expectations-printer.cc
@@ -46,13 +46,19 @@ std::string BytecodeExpectationsPrinter::WrapCodeInFunction(
return program_stream.str();
}
-v8::Local<v8::Script> BytecodeExpectationsPrinter::Compile(
+v8::Local<v8::Script> BytecodeExpectationsPrinter::CompileScript(
const char* program) const {
v8::Local<v8::String> source = V8StringFromUTF8(program);
return v8::Script::Compile(isolate_->GetCurrentContext(), source)
.ToLocalChecked();
}
+v8::Local<v8::Module> BytecodeExpectationsPrinter::CompileModule(
+ const char* program) const {
+ v8::ScriptCompiler::Source source(V8StringFromUTF8(program));
+ return v8::ScriptCompiler::CompileModule(isolate_, &source).ToLocalChecked();
+}
+
void BytecodeExpectationsPrinter::Run(v8::Local<v8::Script> script) const {
(void)script->Run(isolate_->GetCurrentContext());
}
@@ -74,6 +80,13 @@ BytecodeExpectationsPrinter::GetBytecodeArrayForGlobal(
}
i::Handle<i::BytecodeArray>
+BytecodeExpectationsPrinter::GetBytecodeArrayForModule(
+ v8::Local<v8::Module> module) const {
+ i::Handle<i::Module> i_module = v8::Utils::OpenHandle(*module);
+ return i::handle(i_module->shared()->bytecode_array(), i_isolate());
+}
+
+i::Handle<i::BytecodeArray>
BytecodeExpectationsPrinter::GetBytecodeArrayForScript(
v8::Local<v8::Script> script) const {
i::Handle<i::JSFunction> js_function = v8::Utils::OpenHandle(*script);
@@ -326,14 +339,19 @@ void BytecodeExpectationsPrinter::PrintExpectation(
wrap_ ? WrapCodeInFunction(test_function_name_.c_str(), snippet)
: snippet;
- v8::Local<v8::Script> script = Compile(source_code.c_str());
-
i::Handle<i::BytecodeArray> bytecode_array;
- if (top_level_) {
- bytecode_array = GetBytecodeArrayForScript(script);
+ if (module_) {
+ CHECK(top_level_ && !wrap_);
+ v8::Local<v8::Module> module = CompileModule(source_code.c_str());
+ bytecode_array = GetBytecodeArrayForModule(module);
} else {
- Run(script);
- bytecode_array = GetBytecodeArrayForGlobal(test_function_name_.c_str());
+ v8::Local<v8::Script> script = CompileScript(source_code.c_str());
+ if (top_level_) {
+ bytecode_array = GetBytecodeArrayForScript(script);
+ } else {
+ Run(script);
+ bytecode_array = GetBytecodeArrayForGlobal(test_function_name_.c_str());
+ }
}
stream << "---\n";
« no previous file with comments | « test/cctest/interpreter/bytecode-expectations-printer.h ('k') | test/cctest/interpreter/bytecode_expectations/Modules.golden » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698