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

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

Issue 1678103002: [interpreter] Remove special "prototype" load in class literals. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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
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 "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/compiler.h" 7 #include "src/compiler.h"
8 #include "src/interpreter/bytecode-array-iterator.h" 8 #include "src/interpreter/bytecode-array-iterator.h"
9 #include "src/interpreter/bytecode-generator.h" 9 #include "src/interpreter/bytecode-generator.h"
10 #include "src/interpreter/interpreter.h" 10 #include "src/interpreter/interpreter.h"
(...skipping 8374 matching lines...) Expand 10 before | Expand all | Expand 10 after
8385 }; 8385 };
8386 // clang-format on 8386 // clang-format on
8387 8387
8388 Handle<BytecodeArray> bytecode_array = 8388 Handle<BytecodeArray> bytecode_array =
8389 helper.MakeBytecodeForFunctionBody(snippet.code_snippet); 8389 helper.MakeBytecodeForFunctionBody(snippet.code_snippet);
8390 CheckBytecodeArrayEqual(snippet, bytecode_array); 8390 CheckBytecodeArrayEqual(snippet, bytecode_array);
8391 } 8391 }
8392 8392
8393 // TODO(rmcilroy): Update expectations after switch to 8393 // TODO(rmcilroy): Update expectations after switch to
8394 // Runtime::kDefineDataPropertyInLiteral. 8394 // Runtime::kDefineDataPropertyInLiteral.
8395 DISABLED_TEST(ClassDeclarations) { 8395 DISABLED_TEST(ClassDeclarations) {
rmcilroy 2016/02/08 15:05:21 Ahh this is still disabled? Orion were you going t
8396 InitializedHandleScope handle_scope; 8396 InitializedHandleScope handle_scope;
8397 BytecodeGeneratorHelper helper; 8397 BytecodeGeneratorHelper helper;
8398 8398
8399 int closure = Register::function_closure().index(); 8399 int closure = Register::function_closure().index();
8400 int context = Register::current_context().index(); 8400 int context = Register::current_context().index();
8401 8401
8402 // clang-format off 8402 // clang-format off
8403 ExpectedSnippet<InstanceType, 12> snippets[] = { 8403 ExpectedSnippet<InstanceType, 12> snippets[] = {
8404 {"class Person {\n" 8404 {"class Person {\n"
8405 " constructor(name) { this.name = name; }\n" 8405 " constructor(name) { this.name = name; }\n"
(...skipping 11 matching lines...) Expand all
8417 B(LdaTheHole), // 8417 B(LdaTheHole), //
8418 B(Star), R(2), // 8418 B(Star), R(2), //
8419 B(CreateClosure), U8(0), U8(0), // 8419 B(CreateClosure), U8(0), U8(0), //
8420 B(Star), R(3), // 8420 B(Star), R(3), //
8421 B(LdaSmi8), U8(15), // 8421 B(LdaSmi8), U8(15), //
8422 B(Star), R(4), // 8422 B(Star), R(4), //
8423 B(LdaConstant), U8(1), // 8423 B(LdaConstant), U8(1), //
8424 B(Star), R(5), // 8424 B(Star), R(5), //
8425 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // 8425 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), //
8426 B(Star), R(2), // 8426 B(Star), R(2), //
8427 B(LdaInitialMap), // 8427 B(LoadICSloppy), //
rmcilroy 2016/02/08 15:05:21 Is this right? LoadIC needs operands to specify th
Michael Starzinger 2016/02/08 15:09:30 Yeah, this is just me being lazy and hoping we get
8428 B(Star), R(3), // 8428 B(Star), R(3), //
8429 B(Mov), R(3), R(4), // 8429 B(Mov), R(3), R(4), //
8430 B(LdaConstant), U8(2), // 8430 B(LdaConstant), U8(2), //
8431 B(Star), R(5), // 8431 B(Star), R(5), //
8432 B(CreateClosure), U8(3), U8(0), // 8432 B(CreateClosure), U8(3), U8(0), //
8433 B(Star), R(6), // 8433 B(Star), R(6), //
8434 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(3), 8434 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(3),
8435 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2), // 8435 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2), //
8436 B(Star), R(0), // 8436 B(Star), R(0), //
8437 B(Star), R(1), // 8437 B(Star), R(1), //
(...skipping 20 matching lines...) Expand all
8458 B(LdaTheHole), // 8458 B(LdaTheHole), //
8459 B(Star), R(2), // 8459 B(Star), R(2), //
8460 B(CreateClosure), U8(0), U8(0), // 8460 B(CreateClosure), U8(0), U8(0), //
8461 B(Star), R(3), // 8461 B(Star), R(3), //
8462 B(LdaSmi8), U8(15), // 8462 B(LdaSmi8), U8(15), //
8463 B(Star), R(4), // 8463 B(Star), R(4), //
8464 B(LdaConstant), U8(1), // 8464 B(LdaConstant), U8(1), //
8465 B(Star), R(5), // 8465 B(Star), R(5), //
8466 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // 8466 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), //
8467 B(Star), R(2), // 8467 B(Star), R(2), //
8468 B(LdaInitialMap), // 8468 B(LoadICSloppy), //
8469 B(Star), R(3), // 8469 B(Star), R(3), //
8470 B(Mov), R(3), R(4), // 8470 B(Mov), R(3), R(4), //
8471 B(LdaConstant), U8(2), // 8471 B(LdaConstant), U8(2), //
8472 B(Star), R(5), // 8472 B(Star), R(5), //
8473 B(CreateClosure), U8(3), U8(0), // 8473 B(CreateClosure), U8(3), U8(0), //
8474 B(Star), R(6), // 8474 B(Star), R(6), //
8475 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(3), 8475 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(3),
8476 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2), // 8476 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2), //
8477 B(Star), R(0), // 8477 B(Star), R(0), //
8478 B(Star), R(1), // 8478 B(Star), R(1), //
(...skipping 29 matching lines...) Expand all
8508 B(LdaTheHole), // 8508 B(LdaTheHole), //
8509 B(Star), R(3), // 8509 B(Star), R(3), //
8510 B(CreateClosure), U8(2), U8(0), // 8510 B(CreateClosure), U8(2), U8(0), //
8511 B(Star), R(4), // 8511 B(Star), R(4), //
8512 B(LdaSmi8), U8(41), // 8512 B(LdaSmi8), U8(41), //
8513 B(Star), R(5), // 8513 B(Star), R(5), //
8514 B(LdaSmi8), U8(107), // 8514 B(LdaSmi8), U8(107), //
8515 B(Star), R(6), // 8515 B(Star), R(6), //
8516 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // 8516 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), //
8517 B(Star), R(3), // 8517 B(Star), R(3), //
8518 B(LdaInitialMap), // 8518 B(LoadICSloppy), //
8519 B(Star), R(4), // 8519 B(Star), R(4), //
8520 B(Mov), R(4), R(5), // 8520 B(Mov), R(4), R(5), //
8521 B(LdaContextSlot), R(context), U8(4), // 8521 B(LdaContextSlot), R(context), U8(4), //
8522 B(ToName), // 8522 B(ToName), //
8523 B(Star), R(6), // 8523 B(Star), R(6), //
8524 B(CreateClosure), U8(3), U8(0), // 8524 B(CreateClosure), U8(3), U8(0), //
8525 B(Star), R(7), // 8525 B(Star), R(7), //
8526 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(3), 8526 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(3),
8527 B(Mov), R(3), R(5), // 8527 B(Mov), R(3), R(5), //
8528 B(LdaContextSlot), R(context), U8(5), // 8528 B(LdaContextSlot), R(context), U8(5), //
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
8568 B(LdaTheHole), // 8568 B(LdaTheHole), //
8569 B(Star), R(3), // 8569 B(Star), R(3), //
8570 B(CreateClosure), U8(0), U8(0), // 8570 B(CreateClosure), U8(0), U8(0), //
8571 B(Star), R(4), // 8571 B(Star), R(4), //
8572 B(LdaSmi8), U8(30), // 8572 B(LdaSmi8), U8(30), //
8573 B(Star), R(5), // 8573 B(Star), R(5), //
8574 B(LdaSmi8), U8(67), // 8574 B(LdaSmi8), U8(67), //
8575 B(Star), R(6), // 8575 B(Star), R(6), //
8576 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // 8576 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), //
8577 B(Star), R(3), // 8577 B(Star), R(3), //
8578 B(LdaInitialMap), // 8578 B(LoadICSloppy), //
8579 B(Star), R(4), // 8579 B(Star), R(4), //
8580 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2), // 8580 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2), //
8581 B(Star), R(0), // 8581 B(Star), R(0), //
8582 B(Star), R(1), // 8582 B(Star), R(1), //
8583 B(Star), R(3), // 8583 B(Star), R(3), //
8584 B(New), R(3), R(0), U8(0), // 8584 B(New), R(3), R(0), U8(0), //
8585 B(Return), // 8585 B(Return), //
8586 }, 8586 },
8587 1, 8587 1,
8588 { InstanceType::SHARED_FUNCTION_INFO_TYPE}}, 8588 { InstanceType::SHARED_FUNCTION_INFO_TYPE}},
8589 }; 8589 };
8590 // clang-format on 8590 // clang-format on
8591 8591
8592 for (size_t i = 0; i < arraysize(snippets); i++) { 8592 for (size_t i = 0; i < arraysize(snippets); i++) {
8593 Handle<BytecodeArray> bytecode_array = 8593 Handle<BytecodeArray> bytecode_array =
8594 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); 8594 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet);
8595 CheckBytecodeArrayEqual(snippets[i], bytecode_array); 8595 CheckBytecodeArrayEqual(snippets[i], bytecode_array);
8596 } 8596 }
8597 } 8597 }
8598 8598
8599 } // namespace interpreter 8599 } // namespace interpreter
8600 } // namespace internal 8600 } // namespace internal
8601 } // namespace v8 8601 } // namespace v8
OLDNEW
« no previous file with comments | « src/interpreter/interpreter.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