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

Unified Diff: test/cctest/interpreter/test-interpreter.cc

Issue 1422443006: [Intepreter] Don't throw reference errors for globals in typeof. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebased Created 5 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: test/cctest/interpreter/test-interpreter.cc
diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc
index 868f595a8d6868154e0f0fba99a64e77f12dd556..49df43ce9582d9c647046fa66ea2ffa370128d2b 100644
--- a/test/cctest/interpreter/test-interpreter.cc
+++ b/test/cctest/interpreter/test-interpreter.cc
@@ -1640,38 +1640,29 @@ TEST(InterpreterUnaryNotNonBoolean) {
}
-TEST(InterpreterTypeOf) {
+TEST(InterpreterTypeof) {
HandleAndZoneScope handles;
- i::Factory* factory = handles.main_isolate()->factory();
- std::pair<Handle<Object>, const char*> object_type_tuples[] = {
- std::make_pair(factory->undefined_value(), "undefined"),
- std::make_pair(factory->null_value(), "object"),
- std::make_pair(factory->true_value(), "boolean"),
- std::make_pair(factory->false_value(), "boolean"),
- std::make_pair(factory->NewNumber(9.1), "number"),
- std::make_pair(factory->NewNumberFromInt(7771), "number"),
- std::make_pair(
- Handle<Object>::cast(factory->NewStringFromStaticChars("hello")),
- "string"),
+ std::pair<const char*, const char*> typeof_vals[] = {
+ std::make_pair("return typeof undefined;", "undefined"),
+ std::make_pair("return typeof null;", "object"),
+ std::make_pair("return typeof true;", "boolean"),
+ std::make_pair("return typeof false;", "boolean"),
+ std::make_pair("return typeof 9.1;", "number"),
+ std::make_pair("return typeof 7771;", "number"),
+ std::make_pair("return typeof 'hello';", "string"),
+ std::make_pair("return typeof global_unallocated;", "undefined"),
};
- for (size_t i = 0; i < arraysize(object_type_tuples); i++) {
- BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone());
- Register r0(0);
- builder.set_locals_count(0);
- builder.set_context_count(0);
- builder.set_parameter_count(0);
- LoadAny(&builder, factory, object_type_tuples[i].first);
- builder.TypeOf();
- builder.Return();
- Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
- InterpreterTester tester(handles.main_isolate(), bytecode_array);
+ for (size_t i = 0; i < arraysize(typeof_vals); i++) {
+ std::string source(InterpreterTester::SourceForBody(typeof_vals[i].first));
+ InterpreterTester tester(handles.main_isolate(), source.c_str());
+
auto callable = tester.GetCallable<>();
Handle<v8::internal::String> return_value =
Handle<v8::internal::String>::cast(callable().ToHandleChecked());
auto actual = return_value->ToCString();
- CHECK_EQ(strcmp(&actual[0], object_type_tuples[i].second), 0);
+ CHECK_EQ(strcmp(&actual[0], typeof_vals[i].second), 0);
}
}
« no previous file with comments | « test/cctest/interpreter/test-bytecode-generator.cc ('k') | test/unittests/interpreter/bytecode-array-builder-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698