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

Side by Side Diff: test/cctest/interpreter/test-bytecode-generator.cc

Issue 1805503003: [Interpreter] Add bytecode generator expectations for super calls. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add additional test cases. Created 4 years, 9 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
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 <fstream> 5 #include <fstream>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/compiler.h" 9 #include "src/compiler.h"
10 #include "src/interpreter/bytecode-array-iterator.h" 10 #include "src/interpreter/bytecode-array-iterator.h"
(...skipping 2082 matching lines...) Expand 10 before | Expand all | Expand 10 after
2093 InitializedIgnitionHandleScope scope; 2093 InitializedIgnitionHandleScope scope;
2094 BytecodeExpectationsPrinter printer(CcTest::isolate(), 2094 BytecodeExpectationsPrinter printer(CcTest::isolate(),
2095 ConstantPoolType::kString); 2095 ConstantPoolType::kString);
2096 const char* snippets[] = { 2096 const char* snippets[] = {
2097 "debugger;", 2097 "debugger;",
2098 }; 2098 };
2099 2099
2100 CHECK_EQ(BuildActual(printer, snippets), LoadGolden("DoDebugger.golden")); 2100 CHECK_EQ(BuildActual(printer, snippets), LoadGolden("DoDebugger.golden"));
2101 } 2101 }
2102 2102
2103 // TODO(rmcilroy): Update expectations after switch to
2104 // Runtime::kDefineDataPropertyInLiteral.
2105 TEST(ClassDeclarations) { 2103 TEST(ClassDeclarations) {
2106 InitializedIgnitionHandleScope scope; 2104 InitializedIgnitionHandleScope scope;
2107 BytecodeExpectationsPrinter printer(CcTest::isolate(), 2105 BytecodeExpectationsPrinter printer(CcTest::isolate(),
2108 ConstantPoolType::kMixed); 2106 ConstantPoolType::kMixed);
2109 const char* snippets[] = { 2107 const char* snippets[] = {
2110 "class Person {\n" 2108 "class Person {\n"
2111 " constructor(name) { this.name = name; }\n" 2109 " constructor(name) { this.name = name; }\n"
2112 " speak() { console.log(this.name + ' is speaking.'); }\n" 2110 " speak() { console.log(this.name + ' is speaking.'); }\n"
2113 "}", 2111 "}",
2114 2112
(...skipping 11 matching lines...) Expand all
2126 2124
2127 "var count = 0;\n" 2125 "var count = 0;\n"
2128 "class C { constructor() { count++; }}\n" 2126 "class C { constructor() { count++; }}\n"
2129 "return new C();\n", 2127 "return new C();\n",
2130 }; 2128 };
2131 2129
2132 CHECK_EQ(BuildActual(printer, snippets), 2130 CHECK_EQ(BuildActual(printer, snippets),
2133 LoadGolden("ClassDeclarations.golden")); 2131 LoadGolden("ClassDeclarations.golden"));
2134 } 2132 }
2135 2133
2136 // TODO(oth): Add tests for super keyword. 2134 TEST(ClassAndSuperClass) {
2135 InitializedIgnitionHandleScope scope;
2136 BytecodeExpectationsPrinter printer(CcTest::isolate(),
2137 ConstantPoolType::kMixed);
2138 printer.set_wrap(false);
2139 printer.set_test_function_name("test");
2140 const char* snippets[] = {
2141 "var test;\n"
2142 "(function() {\n"
2143 " class A {\n"
2144 " method() { return 2; }\n"
2145 " }\n"
2146 " class B extends A {\n"
2147 " method() { return super.method() + 1; }\n"
2148 " }\n"
2149 " test = new B().method;\n"
2150 " test();\n"
2151 "})();\n",
2152
2153 "var test;\n"
2154 "(function() {\n"
2155 " class A {\n"
2156 " get x() { return 1; }\n"
2157 " set x(val) { return; }\n"
2158 " }\n"
2159 " class B extends A {\n"
2160 " method() { super.x = 2; return super.x; }\n"
2161 " }\n"
2162 " test = new B().method;\n"
2163 " test();\n"
2164 "})();\n",
2165
2166 "var test;\n"
2167 "(function() {\n"
2168 " class A {\n"
2169 " constructor(x) { this.x_ = x; }\n"
2170 " }\n"
2171 " class B extends A {\n"
2172 " constructor() { super(1); this.y_ = 2; }\n"
2173 " }\n"
2174 " test = new B().constructor;\n"
2175 "})();\n",
2176
2177 "var test;\n"
2178 "(function() {\n"
2179 " class A {\n"
2180 " constructor() { this.x_ = 1; }\n"
2181 " }\n"
2182 " class B extends A {\n"
2183 " constructor() { super(); this.y_ = 2; }\n"
2184 " }\n"
2185 " test = new B().constructor;\n"
2186 "})();\n",
2187 };
2188
2189 CHECK_EQ(BuildActual(printer, snippets),
2190 LoadGolden("ClassAndSuperClass.golden"));
2191 }
2137 2192
2138 } // namespace interpreter 2193 } // namespace interpreter
2139 } // namespace internal 2194 } // namespace internal
2140 } // namespace v8 2195 } // namespace v8
OLDNEW
« no previous file with comments | « test/cctest/interpreter/generate-bytecode-expectations.cc ('k') | test/cctest/interpreter/test-interpreter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698