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

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

Issue 2394213003: Named all zones in the project (Closed)
Patch Set: Merge branch 'master' into zonenames 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 unified diff | Download patch
« no previous file with comments | « test/cctest/compiler/test-run-native-calls.cc ('k') | test/cctest/test-ast.cc » ('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 <tuple> 5 #include <tuple>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/execution.h" 9 #include "src/execution.h"
10 #include "src/handles.h" 10 #include "src/handles.h"
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 258
259 TEST(InterpreterShiftOpsSmi) { 259 TEST(InterpreterShiftOpsSmi) {
260 int lhs_inputs[] = {0, -17, -182, 1073741823, -1}; 260 int lhs_inputs[] = {0, -17, -182, 1073741823, -1};
261 int rhs_inputs[] = {5, 2, 1, -1, -2, 0, 31, 32, -32, 64, 37}; 261 int rhs_inputs[] = {5, 2, 1, -1, -2, 0, 31, 32, -32, 64, 37};
262 for (size_t l = 0; l < arraysize(lhs_inputs); l++) { 262 for (size_t l = 0; l < arraysize(lhs_inputs); l++) {
263 for (size_t r = 0; r < arraysize(rhs_inputs); r++) { 263 for (size_t r = 0; r < arraysize(rhs_inputs); r++) {
264 for (size_t o = 0; o < arraysize(kShiftOperators); o++) { 264 for (size_t o = 0; o < arraysize(kShiftOperators); o++) {
265 HandleAndZoneScope handles; 265 HandleAndZoneScope handles;
266 Isolate* isolate = handles.main_isolate(); 266 Isolate* isolate = handles.main_isolate();
267 Factory* factory = isolate->factory(); 267 Factory* factory = isolate->factory();
268 Zone zone(isolate->allocator()); 268 Zone zone(isolate->allocator(), ZONE_NAME);
269 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1); 269 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1);
270 270
271 FeedbackVectorSpec feedback_spec(&zone); 271 FeedbackVectorSpec feedback_spec(&zone);
272 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 272 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
273 Handle<i::TypeFeedbackVector> vector = 273 Handle<i::TypeFeedbackVector> vector =
274 NewTypeFeedbackVector(isolate, &feedback_spec); 274 NewTypeFeedbackVector(isolate, &feedback_spec);
275 275
276 Register reg(0); 276 Register reg(0);
277 int lhs = lhs_inputs[l]; 277 int lhs = lhs_inputs[l];
278 int rhs = rhs_inputs[r]; 278 int rhs = rhs_inputs[r];
(...skipping 18 matching lines...) Expand all
297 297
298 TEST(InterpreterBinaryOpsSmi) { 298 TEST(InterpreterBinaryOpsSmi) {
299 int lhs_inputs[] = {3266, 1024, 0, -17, -18000}; 299 int lhs_inputs[] = {3266, 1024, 0, -17, -18000};
300 int rhs_inputs[] = {3266, 5, 4, 3, 2, 1, -1, -2}; 300 int rhs_inputs[] = {3266, 5, 4, 3, 2, 1, -1, -2};
301 for (size_t l = 0; l < arraysize(lhs_inputs); l++) { 301 for (size_t l = 0; l < arraysize(lhs_inputs); l++) {
302 for (size_t r = 0; r < arraysize(rhs_inputs); r++) { 302 for (size_t r = 0; r < arraysize(rhs_inputs); r++) {
303 for (size_t o = 0; o < arraysize(kArithmeticOperators); o++) { 303 for (size_t o = 0; o < arraysize(kArithmeticOperators); o++) {
304 HandleAndZoneScope handles; 304 HandleAndZoneScope handles;
305 Isolate* isolate = handles.main_isolate(); 305 Isolate* isolate = handles.main_isolate();
306 Factory* factory = isolate->factory(); 306 Factory* factory = isolate->factory();
307 Zone zone(isolate->allocator()); 307 Zone zone(isolate->allocator(), ZONE_NAME);
308 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1); 308 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1);
309 309
310 FeedbackVectorSpec feedback_spec(&zone); 310 FeedbackVectorSpec feedback_spec(&zone);
311 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 311 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
312 Handle<i::TypeFeedbackVector> vector = 312 Handle<i::TypeFeedbackVector> vector =
313 NewTypeFeedbackVector(isolate, &feedback_spec); 313 NewTypeFeedbackVector(isolate, &feedback_spec);
314 314
315 Register reg(0); 315 Register reg(0);
316 int lhs = lhs_inputs[l]; 316 int lhs = lhs_inputs[l];
317 int rhs = rhs_inputs[r]; 317 int rhs = rhs_inputs[r];
(...skipping 20 matching lines...) Expand all
338 TEST(InterpreterBinaryOpsHeapNumber) { 338 TEST(InterpreterBinaryOpsHeapNumber) {
339 double lhs_inputs[] = {3266.101, 1024.12, 0.01, -17.99, -18000.833, 9.1e17}; 339 double lhs_inputs[] = {3266.101, 1024.12, 0.01, -17.99, -18000.833, 9.1e17};
340 double rhs_inputs[] = {3266.101, 5.999, 4.778, 3.331, 2.643, 340 double rhs_inputs[] = {3266.101, 5.999, 4.778, 3.331, 2.643,
341 1.1, -1.8, -2.9, 8.3e-27}; 341 1.1, -1.8, -2.9, 8.3e-27};
342 for (size_t l = 0; l < arraysize(lhs_inputs); l++) { 342 for (size_t l = 0; l < arraysize(lhs_inputs); l++) {
343 for (size_t r = 0; r < arraysize(rhs_inputs); r++) { 343 for (size_t r = 0; r < arraysize(rhs_inputs); r++) {
344 for (size_t o = 0; o < arraysize(kArithmeticOperators); o++) { 344 for (size_t o = 0; o < arraysize(kArithmeticOperators); o++) {
345 HandleAndZoneScope handles; 345 HandleAndZoneScope handles;
346 Isolate* isolate = handles.main_isolate(); 346 Isolate* isolate = handles.main_isolate();
347 Factory* factory = isolate->factory(); 347 Factory* factory = isolate->factory();
348 Zone zone(isolate->allocator()); 348 Zone zone(isolate->allocator(), ZONE_NAME);
349 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1); 349 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 1);
350 350
351 FeedbackVectorSpec feedback_spec(&zone); 351 FeedbackVectorSpec feedback_spec(&zone);
352 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 352 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
353 Handle<i::TypeFeedbackVector> vector = 353 Handle<i::TypeFeedbackVector> vector =
354 NewTypeFeedbackVector(isolate, &feedback_spec); 354 NewTypeFeedbackVector(isolate, &feedback_spec);
355 355
356 Register reg(0); 356 Register reg(0);
357 double lhs = lhs_inputs[l]; 357 double lhs = lhs_inputs[l];
358 double rhs = rhs_inputs[r]; 358 double rhs = rhs_inputs[r];
(...skipping 14 matching lines...) Expand all
373 } 373 }
374 } 374 }
375 } 375 }
376 } 376 }
377 377
378 378
379 TEST(InterpreterStringAdd) { 379 TEST(InterpreterStringAdd) {
380 HandleAndZoneScope handles; 380 HandleAndZoneScope handles;
381 Isolate* isolate = handles.main_isolate(); 381 Isolate* isolate = handles.main_isolate();
382 Factory* factory = isolate->factory(); 382 Factory* factory = isolate->factory();
383 Zone zone(isolate->allocator()); 383 Zone zone(isolate->allocator(), ZONE_NAME);
384 384
385 struct TestCase { 385 struct TestCase {
386 Handle<Object> lhs; 386 Handle<Object> lhs;
387 Handle<Object> rhs; 387 Handle<Object> rhs;
388 Handle<Object> expected_value; 388 Handle<Object> expected_value;
389 int32_t expected_feedback; 389 int32_t expected_feedback;
390 } test_cases[] = { 390 } test_cases[] = {
391 {factory->NewStringFromStaticChars("a"), 391 {factory->NewStringFromStaticChars("a"),
392 factory->NewStringFromStaticChars("b"), 392 factory->NewStringFromStaticChars("b"),
393 factory->NewStringFromStaticChars("ab"), 393 factory->NewStringFromStaticChars("ab"),
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 // Check for Smis. 465 // Check for Smis.
466 return_val = callable(Handle<Smi>(Smi::FromInt(3), handles.main_isolate())) 466 return_val = callable(Handle<Smi>(Smi::FromInt(3), handles.main_isolate()))
467 .ToHandleChecked(); 467 .ToHandleChecked();
468 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(3)); 468 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(3));
469 } 469 }
470 470
471 471
472 TEST(InterpreterParameter8) { 472 TEST(InterpreterParameter8) {
473 HandleAndZoneScope handles; 473 HandleAndZoneScope handles;
474 Isolate* isolate = handles.main_isolate(); 474 Isolate* isolate = handles.main_isolate();
475 Zone zone(isolate->allocator()); 475 Zone zone(isolate->allocator(), ZONE_NAME);
476 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 8, 0, 0); 476 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 8, 0, 0);
477 477
478 FeedbackVectorSpec feedback_spec(&zone); 478 FeedbackVectorSpec feedback_spec(&zone);
479 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 479 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
480 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot(); 480 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot();
481 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot(); 481 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot();
482 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot(); 482 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot();
483 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot(); 483 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot();
484 FeedbackVectorSlot slot5 = feedback_spec.AddInterpreterBinaryOpICSlot(); 484 FeedbackVectorSlot slot5 = feedback_spec.AddInterpreterBinaryOpICSlot();
485 FeedbackVectorSlot slot6 = feedback_spec.AddInterpreterBinaryOpICSlot(); 485 FeedbackVectorSlot slot6 = feedback_spec.AddInterpreterBinaryOpICSlot();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 // Check for Smis. 520 // Check for Smis.
521 Handle<Object> return_val = 521 Handle<Object> return_val =
522 callable(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) 522 callable(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)
523 .ToHandleChecked(); 523 .ToHandleChecked();
524 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(36)); 524 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(36));
525 } 525 }
526 526
527 TEST(InterpreterBinaryOpTypeFeedback) { 527 TEST(InterpreterBinaryOpTypeFeedback) {
528 HandleAndZoneScope handles; 528 HandleAndZoneScope handles;
529 i::Isolate* isolate = handles.main_isolate(); 529 i::Isolate* isolate = handles.main_isolate();
530 i::Zone zone(isolate->allocator()); 530 i::Zone zone(isolate->allocator(), ZONE_NAME);
531 531
532 struct BinaryOpExpectation { 532 struct BinaryOpExpectation {
533 Token::Value op; 533 Token::Value op;
534 Handle<Object> arg1; 534 Handle<Object> arg1;
535 Handle<Object> arg2; 535 Handle<Object> arg2;
536 Handle<Object> result; 536 Handle<Object> result;
537 int32_t feedback; 537 int32_t feedback;
538 }; 538 };
539 539
540 BinaryOpExpectation const kTestCases[] = { 540 BinaryOpExpectation const kTestCases[] = {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 Object* feedback0 = vector->Get(slot0); 666 Object* feedback0 = vector->Get(slot0);
667 CHECK(feedback0->IsSmi()); 667 CHECK(feedback0->IsSmi());
668 CHECK_EQ(test_case.feedback, static_cast<Smi*>(feedback0)->value()); 668 CHECK_EQ(test_case.feedback, static_cast<Smi*>(feedback0)->value());
669 CHECK(Object::Equals(test_case.result, return_val).ToChecked()); 669 CHECK(Object::Equals(test_case.result, return_val).ToChecked());
670 } 670 }
671 } 671 }
672 672
673 TEST(InterpreterBinaryOpSmiTypeFeedback) { 673 TEST(InterpreterBinaryOpSmiTypeFeedback) {
674 HandleAndZoneScope handles; 674 HandleAndZoneScope handles;
675 i::Isolate* isolate = handles.main_isolate(); 675 i::Isolate* isolate = handles.main_isolate();
676 i::Zone zone(isolate->allocator()); 676 i::Zone zone(isolate->allocator(), ZONE_NAME);
677 677
678 struct BinaryOpExpectation { 678 struct BinaryOpExpectation {
679 Token::Value op; 679 Token::Value op;
680 Handle<Object> arg1; 680 Handle<Object> arg1;
681 int32_t arg2; 681 int32_t arg2;
682 Handle<Object> result; 682 Handle<Object> result;
683 int32_t feedback; 683 int32_t feedback;
684 }; 684 };
685 685
686 BinaryOpExpectation const kTestCases[] = { 686 BinaryOpExpectation const kTestCases[] = {
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 Object* feedback0 = vector->Get(slot0); 770 Object* feedback0 = vector->Get(slot0);
771 CHECK(feedback0->IsSmi()); 771 CHECK(feedback0->IsSmi());
772 CHECK_EQ(test_case.feedback, static_cast<Smi*>(feedback0)->value()); 772 CHECK_EQ(test_case.feedback, static_cast<Smi*>(feedback0)->value());
773 CHECK(Object::Equals(test_case.result, return_val).ToChecked()); 773 CHECK(Object::Equals(test_case.result, return_val).ToChecked());
774 } 774 }
775 } 775 }
776 776
777 TEST(InterpreterUnaryOpFeedback) { 777 TEST(InterpreterUnaryOpFeedback) {
778 HandleAndZoneScope handles; 778 HandleAndZoneScope handles;
779 i::Isolate* isolate = handles.main_isolate(); 779 i::Isolate* isolate = handles.main_isolate();
780 i::Zone zone(isolate->allocator()); 780 i::Zone zone(isolate->allocator(), ZONE_NAME);
781 781
782 Handle<Smi> smi_one = Handle<Smi>(Smi::FromInt(1), isolate); 782 Handle<Smi> smi_one = Handle<Smi>(Smi::FromInt(1), isolate);
783 Handle<Smi> smi_max = Handle<Smi>(Smi::FromInt(Smi::kMaxValue), isolate); 783 Handle<Smi> smi_max = Handle<Smi>(Smi::FromInt(Smi::kMaxValue), isolate);
784 Handle<Smi> smi_min = Handle<Smi>(Smi::FromInt(Smi::kMinValue), isolate); 784 Handle<Smi> smi_min = Handle<Smi>(Smi::FromInt(Smi::kMinValue), isolate);
785 Handle<HeapNumber> number = isolate->factory()->NewHeapNumber(2.1); 785 Handle<HeapNumber> number = isolate->factory()->NewHeapNumber(2.1);
786 Handle<String> str = isolate->factory()->NewStringFromAsciiChecked("42"); 786 Handle<String> str = isolate->factory()->NewStringFromAsciiChecked("42");
787 787
788 struct TestCase { 788 struct TestCase {
789 Token::Value op; 789 Token::Value op;
790 Handle<Smi> smi_feedback_value; 790 Handle<Smi> smi_feedback_value;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 Object* feedback3 = vector->Get(slot3); 847 Object* feedback3 = vector->Get(slot3);
848 CHECK(feedback3->IsSmi()); 848 CHECK(feedback3->IsSmi());
849 CHECK_EQ(BinaryOperationFeedback::kAny, 849 CHECK_EQ(BinaryOperationFeedback::kAny,
850 static_cast<Smi*>(feedback3)->value()); 850 static_cast<Smi*>(feedback3)->value());
851 } 851 }
852 } 852 }
853 853
854 TEST(InterpreterBitwiseTypeFeedback) { 854 TEST(InterpreterBitwiseTypeFeedback) {
855 HandleAndZoneScope handles; 855 HandleAndZoneScope handles;
856 i::Isolate* isolate = handles.main_isolate(); 856 i::Isolate* isolate = handles.main_isolate();
857 i::Zone zone(isolate->allocator()); 857 i::Zone zone(isolate->allocator(), ZONE_NAME);
858 const Token::Value kBitwiseBinaryOperators[] = { 858 const Token::Value kBitwiseBinaryOperators[] = {
859 Token::Value::BIT_OR, Token::Value::BIT_XOR, Token::Value::BIT_AND, 859 Token::Value::BIT_OR, Token::Value::BIT_XOR, Token::Value::BIT_AND,
860 Token::Value::SHL, Token::Value::SHR, Token::Value::SAR}; 860 Token::Value::SHL, Token::Value::SHR, Token::Value::SAR};
861 861
862 for (Token::Value op : kBitwiseBinaryOperators) { 862 for (Token::Value op : kBitwiseBinaryOperators) {
863 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 4, 0, 0); 863 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 4, 0, 0);
864 864
865 i::FeedbackVectorSpec feedback_spec(&zone); 865 i::FeedbackVectorSpec feedback_spec(&zone);
866 i::FeedbackVectorSlot slot0 = feedback_spec.AddInterpreterBinaryOpICSlot(); 866 i::FeedbackVectorSlot slot0 = feedback_spec.AddInterpreterBinaryOpICSlot();
867 i::FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot(); 867 i::FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 Handle<i::Object> global_obj = 1023 Handle<i::Object> global_obj =
1024 Object::GetProperty(isolate->global_object(), name).ToHandleChecked(); 1024 Object::GetProperty(isolate->global_object(), name).ToHandleChecked();
1025 CHECK_EQ(Smi::cast(*global_obj), Smi::FromInt(999)); 1025 CHECK_EQ(Smi::cast(*global_obj), Smi::FromInt(999));
1026 } 1026 }
1027 1027
1028 1028
1029 TEST(InterpreterLoadNamedProperty) { 1029 TEST(InterpreterLoadNamedProperty) {
1030 HandleAndZoneScope handles; 1030 HandleAndZoneScope handles;
1031 Isolate* isolate = handles.main_isolate(); 1031 Isolate* isolate = handles.main_isolate();
1032 Factory* factory = isolate->factory(); 1032 Factory* factory = isolate->factory();
1033 Zone zone(isolate->allocator()); 1033 Zone zone(isolate->allocator(), ZONE_NAME);
1034 1034
1035 FeedbackVectorSpec feedback_spec(&zone); 1035 FeedbackVectorSpec feedback_spec(&zone);
1036 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot(); 1036 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot();
1037 1037
1038 Handle<i::TypeFeedbackVector> vector = 1038 Handle<i::TypeFeedbackVector> vector =
1039 NewTypeFeedbackVector(isolate, &feedback_spec); 1039 NewTypeFeedbackVector(isolate, &feedback_spec);
1040 1040
1041 Handle<i::String> name = factory->NewStringFromAsciiChecked("val"); 1041 Handle<i::String> name = factory->NewStringFromAsciiChecked("val");
1042 name = factory->string_table()->LookupString(isolate, name); 1042 name = factory->string_table()->LookupString(isolate, name);
1043 1043
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 InterpreterTester::NewObject("({ val : 789, val4 : 123 })"); 1076 InterpreterTester::NewObject("({ val : 789, val4 : 123 })");
1077 return_val = callable(object5).ToHandleChecked(); 1077 return_val = callable(object5).ToHandleChecked();
1078 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(789)); 1078 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(789));
1079 } 1079 }
1080 1080
1081 1081
1082 TEST(InterpreterLoadKeyedProperty) { 1082 TEST(InterpreterLoadKeyedProperty) {
1083 HandleAndZoneScope handles; 1083 HandleAndZoneScope handles;
1084 Isolate* isolate = handles.main_isolate(); 1084 Isolate* isolate = handles.main_isolate();
1085 Factory* factory = isolate->factory(); 1085 Factory* factory = isolate->factory();
1086 Zone zone(isolate->allocator()); 1086 Zone zone(isolate->allocator(), ZONE_NAME);
1087 1087
1088 FeedbackVectorSpec feedback_spec(&zone); 1088 FeedbackVectorSpec feedback_spec(&zone);
1089 FeedbackVectorSlot slot = feedback_spec.AddKeyedLoadICSlot(); 1089 FeedbackVectorSlot slot = feedback_spec.AddKeyedLoadICSlot();
1090 1090
1091 Handle<i::TypeFeedbackVector> vector = 1091 Handle<i::TypeFeedbackVector> vector =
1092 NewTypeFeedbackVector(isolate, &feedback_spec); 1092 NewTypeFeedbackVector(isolate, &feedback_spec);
1093 1093
1094 Handle<i::String> key = factory->NewStringFromAsciiChecked("key"); 1094 Handle<i::String> key = factory->NewStringFromAsciiChecked("key");
1095 key = factory->string_table()->LookupString(isolate, key); 1095 key = factory->string_table()->LookupString(isolate, key);
1096 1096
(...skipping 21 matching lines...) Expand all
1118 InterpreterTester::NewObject("({ key : 789, val2 : 123 })"); 1118 InterpreterTester::NewObject("({ key : 789, val2 : 123 })");
1119 return_val = callable(object3).ToHandleChecked(); 1119 return_val = callable(object3).ToHandleChecked();
1120 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(789)); 1120 CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(789));
1121 } 1121 }
1122 1122
1123 1123
1124 TEST(InterpreterStoreNamedProperty) { 1124 TEST(InterpreterStoreNamedProperty) {
1125 HandleAndZoneScope handles; 1125 HandleAndZoneScope handles;
1126 Isolate* isolate = handles.main_isolate(); 1126 Isolate* isolate = handles.main_isolate();
1127 Factory* factory = isolate->factory(); 1127 Factory* factory = isolate->factory();
1128 Zone zone(isolate->allocator()); 1128 Zone zone(isolate->allocator(), ZONE_NAME);
1129 1129
1130 FeedbackVectorSpec feedback_spec(&zone); 1130 FeedbackVectorSpec feedback_spec(&zone);
1131 FeedbackVectorSlot slot = feedback_spec.AddStoreICSlot(); 1131 FeedbackVectorSlot slot = feedback_spec.AddStoreICSlot();
1132 1132
1133 Handle<i::TypeFeedbackVector> vector = 1133 Handle<i::TypeFeedbackVector> vector =
1134 NewTypeFeedbackVector(isolate, &feedback_spec); 1134 NewTypeFeedbackVector(isolate, &feedback_spec);
1135 1135
1136 Handle<i::String> name = factory->NewStringFromAsciiChecked("val"); 1136 Handle<i::String> name = factory->NewStringFromAsciiChecked("val");
1137 name = factory->string_table()->LookupString(isolate, name); 1137 name = factory->string_table()->LookupString(isolate, name);
1138 1138
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 callable(object5).ToHandleChecked(); 1177 callable(object5).ToHandleChecked();
1178 CHECK(Runtime::GetObjectProperty(isolate, object5, name).ToHandle(&result)); 1178 CHECK(Runtime::GetObjectProperty(isolate, object5, name).ToHandle(&result));
1179 CHECK_EQ(Smi::cast(*result), Smi::FromInt(999)); 1179 CHECK_EQ(Smi::cast(*result), Smi::FromInt(999));
1180 } 1180 }
1181 1181
1182 1182
1183 TEST(InterpreterStoreKeyedProperty) { 1183 TEST(InterpreterStoreKeyedProperty) {
1184 HandleAndZoneScope handles; 1184 HandleAndZoneScope handles;
1185 Isolate* isolate = handles.main_isolate(); 1185 Isolate* isolate = handles.main_isolate();
1186 Factory* factory = isolate->factory(); 1186 Factory* factory = isolate->factory();
1187 Zone zone(isolate->allocator()); 1187 Zone zone(isolate->allocator(), ZONE_NAME);
1188 1188
1189 FeedbackVectorSpec feedback_spec(&zone); 1189 FeedbackVectorSpec feedback_spec(&zone);
1190 FeedbackVectorSlot slot = feedback_spec.AddKeyedStoreICSlot(); 1190 FeedbackVectorSlot slot = feedback_spec.AddKeyedStoreICSlot();
1191 1191
1192 Handle<i::TypeFeedbackVector> vector = 1192 Handle<i::TypeFeedbackVector> vector =
1193 NewTypeFeedbackVector(isolate, &feedback_spec); 1193 NewTypeFeedbackVector(isolate, &feedback_spec);
1194 1194
1195 Handle<i::String> name = factory->NewStringFromAsciiChecked("val"); 1195 Handle<i::String> name = factory->NewStringFromAsciiChecked("val");
1196 name = factory->string_table()->LookupString(isolate, name); 1196 name = factory->string_table()->LookupString(isolate, name);
1197 1197
(...skipping 26 matching lines...) Expand all
1224 InterpreterTester::NewObject("({ val : 456, other : 123 })"); 1224 InterpreterTester::NewObject("({ val : 456, other : 123 })");
1225 callable(object2).ToHandleChecked(); 1225 callable(object2).ToHandleChecked();
1226 CHECK(Runtime::GetObjectProperty(isolate, object2, name).ToHandle(&result)); 1226 CHECK(Runtime::GetObjectProperty(isolate, object2, name).ToHandle(&result));
1227 CHECK_EQ(Smi::cast(*result), Smi::FromInt(999)); 1227 CHECK_EQ(Smi::cast(*result), Smi::FromInt(999));
1228 } 1228 }
1229 1229
1230 static void TestInterpreterCall(TailCallMode tail_call_mode) { 1230 static void TestInterpreterCall(TailCallMode tail_call_mode) {
1231 HandleAndZoneScope handles; 1231 HandleAndZoneScope handles;
1232 Isolate* isolate = handles.main_isolate(); 1232 Isolate* isolate = handles.main_isolate();
1233 Factory* factory = isolate->factory(); 1233 Factory* factory = isolate->factory();
1234 Zone zone(isolate->allocator()); 1234 Zone zone(isolate->allocator(), ZONE_NAME);
1235 1235
1236 FeedbackVectorSpec feedback_spec(&zone); 1236 FeedbackVectorSpec feedback_spec(&zone);
1237 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot(); 1237 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot();
1238 FeedbackVectorSlot call_slot = feedback_spec.AddCallICSlot(); 1238 FeedbackVectorSlot call_slot = feedback_spec.AddCallICSlot();
1239 1239
1240 Handle<i::TypeFeedbackVector> vector = 1240 Handle<i::TypeFeedbackVector> vector =
1241 NewTypeFeedbackVector(isolate, &feedback_spec); 1241 NewTypeFeedbackVector(isolate, &feedback_spec);
1242 int slot_index = vector->GetIndex(slot); 1242 int slot_index = vector->GetIndex(slot);
1243 int call_slot_index = -1; 1243 int call_slot_index = -1;
1244 call_slot_index = vector->GetIndex(call_slot); 1244 call_slot_index = vector->GetIndex(call_slot);
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 .LoadLiteral(Smi::FromInt(value)) 1400 .LoadLiteral(Smi::FromInt(value))
1401 .BinaryOperation(Token::Value::ADD, reg, slot_index) 1401 .BinaryOperation(Token::Value::ADD, reg, slot_index)
1402 .StoreAccumulatorInRegister(reg) 1402 .StoreAccumulatorInRegister(reg)
1403 .LoadAccumulatorWithRegister(scratch); 1403 .LoadAccumulatorWithRegister(scratch);
1404 } 1404 }
1405 1405
1406 1406
1407 TEST(InterpreterJumps) { 1407 TEST(InterpreterJumps) {
1408 HandleAndZoneScope handles; 1408 HandleAndZoneScope handles;
1409 Isolate* isolate = handles.main_isolate(); 1409 Isolate* isolate = handles.main_isolate();
1410 Zone zone(isolate->allocator()); 1410 Zone zone(isolate->allocator(), ZONE_NAME);
1411 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2); 1411 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2);
1412 1412
1413 FeedbackVectorSpec feedback_spec(&zone); 1413 FeedbackVectorSpec feedback_spec(&zone);
1414 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 1414 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
1415 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1415 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot();
1416 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1416 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot();
1417 1417
1418 Handle<i::TypeFeedbackVector> vector = 1418 Handle<i::TypeFeedbackVector> vector =
1419 NewTypeFeedbackVector(isolate, &feedback_spec); 1419 NewTypeFeedbackVector(isolate, &feedback_spec);
1420 1420
(...skipping 18 matching lines...) Expand all
1439 InterpreterTester tester(isolate, bytecode_array, vector); 1439 InterpreterTester tester(isolate, bytecode_array, vector);
1440 auto callable = tester.GetCallable<>(); 1440 auto callable = tester.GetCallable<>();
1441 Handle<Object> return_value = callable().ToHandleChecked(); 1441 Handle<Object> return_value = callable().ToHandleChecked();
1442 CHECK_EQ(Smi::cast(*return_value)->value(), 7); 1442 CHECK_EQ(Smi::cast(*return_value)->value(), 7);
1443 } 1443 }
1444 1444
1445 1445
1446 TEST(InterpreterConditionalJumps) { 1446 TEST(InterpreterConditionalJumps) {
1447 HandleAndZoneScope handles; 1447 HandleAndZoneScope handles;
1448 Isolate* isolate = handles.main_isolate(); 1448 Isolate* isolate = handles.main_isolate();
1449 Zone zone(isolate->allocator()); 1449 Zone zone(isolate->allocator(), ZONE_NAME);
1450 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2); 1450 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2);
1451 1451
1452 FeedbackVectorSpec feedback_spec(&zone); 1452 FeedbackVectorSpec feedback_spec(&zone);
1453 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 1453 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
1454 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1454 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot();
1455 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1455 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot();
1456 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1456 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot();
1457 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1457 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot();
1458 1458
1459 Handle<i::TypeFeedbackVector> vector = 1459 Handle<i::TypeFeedbackVector> vector =
(...skipping 29 matching lines...) Expand all
1489 InterpreterTester tester(isolate, bytecode_array, vector); 1489 InterpreterTester tester(isolate, bytecode_array, vector);
1490 auto callable = tester.GetCallable<>(); 1490 auto callable = tester.GetCallable<>();
1491 Handle<Object> return_value = callable().ToHandleChecked(); 1491 Handle<Object> return_value = callable().ToHandleChecked();
1492 CHECK_EQ(Smi::cast(*return_value)->value(), 7); 1492 CHECK_EQ(Smi::cast(*return_value)->value(), 7);
1493 } 1493 }
1494 1494
1495 TEST(InterpreterConditionalJumps2) { 1495 TEST(InterpreterConditionalJumps2) {
1496 // TODO(oth): Add tests for all conditional jumps near and far. 1496 // TODO(oth): Add tests for all conditional jumps near and far.
1497 HandleAndZoneScope handles; 1497 HandleAndZoneScope handles;
1498 Isolate* isolate = handles.main_isolate(); 1498 Isolate* isolate = handles.main_isolate();
1499 Zone zone(isolate->allocator()); 1499 Zone zone(isolate->allocator(), ZONE_NAME);
1500 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2); 1500 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 2);
1501 1501
1502 FeedbackVectorSpec feedback_spec(&zone); 1502 FeedbackVectorSpec feedback_spec(&zone);
1503 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 1503 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
1504 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1504 FeedbackVectorSlot slot1 = feedback_spec.AddInterpreterBinaryOpICSlot();
1505 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1505 FeedbackVectorSlot slot2 = feedback_spec.AddInterpreterBinaryOpICSlot();
1506 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1506 FeedbackVectorSlot slot3 = feedback_spec.AddInterpreterBinaryOpICSlot();
1507 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot(); 1507 FeedbackVectorSlot slot4 = feedback_spec.AddInterpreterBinaryOpICSlot();
1508 1508
1509 Handle<i::TypeFeedbackVector> vector = 1509 Handle<i::TypeFeedbackVector> vector =
(...skipping 30 matching lines...) Expand all
1540 auto callable = tester.GetCallable<>(); 1540 auto callable = tester.GetCallable<>();
1541 Handle<Object> return_value = callable().ToHandleChecked(); 1541 Handle<Object> return_value = callable().ToHandleChecked();
1542 CHECK_EQ(Smi::cast(*return_value)->value(), 7); 1542 CHECK_EQ(Smi::cast(*return_value)->value(), 7);
1543 } 1543 }
1544 1544
1545 TEST(InterpreterJumpConstantWith16BitOperand) { 1545 TEST(InterpreterJumpConstantWith16BitOperand) {
1546 HandleAndZoneScope handles; 1546 HandleAndZoneScope handles;
1547 Isolate* isolate = handles.main_isolate(); 1547 Isolate* isolate = handles.main_isolate();
1548 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 257); 1548 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 1, 0, 257);
1549 1549
1550 Zone zone(isolate->allocator()); 1550 Zone zone(isolate->allocator(), ZONE_NAME);
1551 1551
1552 FeedbackVectorSpec feedback_spec(&zone); 1552 FeedbackVectorSpec feedback_spec(&zone);
1553 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot(); 1553 FeedbackVectorSlot slot = feedback_spec.AddInterpreterBinaryOpICSlot();
1554 Handle<i::TypeFeedbackVector> vector = 1554 Handle<i::TypeFeedbackVector> vector =
1555 NewTypeFeedbackVector(isolate, &feedback_spec); 1555 NewTypeFeedbackVector(isolate, &feedback_spec);
1556 1556
1557 Register reg(0), scratch(256); 1557 Register reg(0), scratch(256);
1558 BytecodeLabel done, fake; 1558 BytecodeLabel done, fake;
1559 1559
1560 builder.LoadLiteral(Smi::kZero); 1560 builder.LoadLiteral(Smi::kZero);
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1685 12345678, 1685 12345678,
1686 v8::internal::kMaxInt / 4, 1686 v8::internal::kMaxInt / 4,
1687 v8::internal::kMaxInt / 2}; 1687 v8::internal::kMaxInt / 2};
1688 1688
1689 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) { 1689 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) {
1690 Token::Value comparison = kComparisonTypes[c]; 1690 Token::Value comparison = kComparisonTypes[c];
1691 for (size_t i = 0; i < arraysize(inputs); i++) { 1691 for (size_t i = 0; i < arraysize(inputs); i++) {
1692 for (size_t j = 0; j < arraysize(inputs); j++) { 1692 for (size_t j = 0; j < arraysize(inputs); j++) {
1693 HandleAndZoneScope handles; 1693 HandleAndZoneScope handles;
1694 Isolate* isolate = handles.main_isolate(); 1694 Isolate* isolate = handles.main_isolate();
1695 Zone zone(isolate->allocator()); 1695 Zone zone(isolate->allocator(), ZONE_NAME);
1696 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1); 1696 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1);
1697 1697
1698 FeedbackVectorSpec feedback_spec(&zone); 1698 FeedbackVectorSpec feedback_spec(&zone);
1699 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot(); 1699 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot();
1700 Handle<i::TypeFeedbackVector> vector = 1700 Handle<i::TypeFeedbackVector> vector =
1701 NewTypeFeedbackVector(isolate, &feedback_spec); 1701 NewTypeFeedbackVector(isolate, &feedback_spec);
1702 1702
1703 Register r0(0); 1703 Register r0(0);
1704 builder.LoadLiteral(Smi::FromInt(inputs[i])) 1704 builder.LoadLiteral(Smi::FromInt(inputs[i]))
1705 .StoreAccumulatorInRegister(r0) 1705 .StoreAccumulatorInRegister(r0)
(...skipping 26 matching lines...) Expand all
1732 0.1000001, 1732 0.1000001,
1733 1e99, 1733 1e99,
1734 -1e-99}; 1734 -1e-99};
1735 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) { 1735 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) {
1736 Token::Value comparison = kComparisonTypes[c]; 1736 Token::Value comparison = kComparisonTypes[c];
1737 for (size_t i = 0; i < arraysize(inputs); i++) { 1737 for (size_t i = 0; i < arraysize(inputs); i++) {
1738 for (size_t j = 0; j < arraysize(inputs); j++) { 1738 for (size_t j = 0; j < arraysize(inputs); j++) {
1739 HandleAndZoneScope handles; 1739 HandleAndZoneScope handles;
1740 Isolate* isolate = handles.main_isolate(); 1740 Isolate* isolate = handles.main_isolate();
1741 Factory* factory = isolate->factory(); 1741 Factory* factory = isolate->factory();
1742 Zone zone(isolate->allocator()); 1742 Zone zone(isolate->allocator(), ZONE_NAME);
1743 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1); 1743 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1);
1744 1744
1745 FeedbackVectorSpec feedback_spec(&zone); 1745 FeedbackVectorSpec feedback_spec(&zone);
1746 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot(); 1746 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot();
1747 Handle<i::TypeFeedbackVector> vector = 1747 Handle<i::TypeFeedbackVector> vector =
1748 NewTypeFeedbackVector(isolate, &feedback_spec); 1748 NewTypeFeedbackVector(isolate, &feedback_spec);
1749 1749
1750 Register r0(0); 1750 Register r0(0);
1751 builder.LoadLiteral(factory->NewHeapNumber(inputs[i])) 1751 builder.LoadLiteral(factory->NewHeapNumber(inputs[i]))
1752 .StoreAccumulatorInRegister(r0) 1752 .StoreAccumulatorInRegister(r0)
(...skipping 15 matching lines...) Expand all
1768 } 1768 }
1769 } 1769 }
1770 } 1770 }
1771 } 1771 }
1772 1772
1773 1773
1774 TEST(InterpreterStringComparisons) { 1774 TEST(InterpreterStringComparisons) {
1775 HandleAndZoneScope handles; 1775 HandleAndZoneScope handles;
1776 Isolate* isolate = handles.main_isolate(); 1776 Isolate* isolate = handles.main_isolate();
1777 Factory* factory = isolate->factory(); 1777 Factory* factory = isolate->factory();
1778 Zone zone(isolate->allocator()); 1778 Zone zone(isolate->allocator(), ZONE_NAME);
1779 1779
1780 std::string inputs[] = {"A", "abc", "z", "", "Foo!", "Foo"}; 1780 std::string inputs[] = {"A", "abc", "z", "", "Foo!", "Foo"};
1781 1781
1782 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) { 1782 for (size_t c = 0; c < arraysize(kComparisonTypes); c++) {
1783 Token::Value comparison = kComparisonTypes[c]; 1783 Token::Value comparison = kComparisonTypes[c];
1784 for (size_t i = 0; i < arraysize(inputs); i++) { 1784 for (size_t i = 0; i < arraysize(inputs); i++) {
1785 for (size_t j = 0; j < arraysize(inputs); j++) { 1785 for (size_t j = 0; j < arraysize(inputs); j++) {
1786 CanonicalHandleScope canonical(isolate); 1786 CanonicalHandleScope canonical(isolate);
1787 const char* lhs = inputs[i].c_str(); 1787 const char* lhs = inputs[i].c_str();
1788 const char* rhs = inputs[j].c_str(); 1788 const char* rhs = inputs[j].c_str();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1834 const char* lhs_cstr = inputs[i]; 1834 const char* lhs_cstr = inputs[i];
1835 const char* rhs_cstr = inputs[j]; 1835 const char* rhs_cstr = inputs[j];
1836 double lhs = StringToDouble(&unicode_cache, lhs_cstr, 1836 double lhs = StringToDouble(&unicode_cache, lhs_cstr,
1837 ConversionFlags::NO_FLAGS); 1837 ConversionFlags::NO_FLAGS);
1838 double rhs = StringToDouble(&unicode_cache, rhs_cstr, 1838 double rhs = StringToDouble(&unicode_cache, rhs_cstr,
1839 ConversionFlags::NO_FLAGS); 1839 ConversionFlags::NO_FLAGS);
1840 HandleAndZoneScope handles; 1840 HandleAndZoneScope handles;
1841 Isolate* isolate = handles.main_isolate(); 1841 Isolate* isolate = handles.main_isolate();
1842 Factory* factory = isolate->factory(); 1842 Factory* factory = isolate->factory();
1843 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1); 1843 BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1);
1844 Zone zone(isolate->allocator()); 1844 Zone zone(isolate->allocator(), ZONE_NAME);
1845 1845
1846 FeedbackVectorSpec feedback_spec(&zone); 1846 FeedbackVectorSpec feedback_spec(&zone);
1847 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot(); 1847 FeedbackVectorSlot slot = feedback_spec.AddInterpreterCompareICSlot();
1848 Handle<i::TypeFeedbackVector> vector = 1848 Handle<i::TypeFeedbackVector> vector =
1849 NewTypeFeedbackVector(isolate, &feedback_spec); 1849 NewTypeFeedbackVector(isolate, &feedback_spec);
1850 1850
1851 Register r0(0); 1851 Register r0(0);
1852 if (pass == 0) { 1852 if (pass == 0) {
1853 // Comparison with HeapNumber on the lhs and String on the rhs 1853 // Comparison with HeapNumber on the lhs and String on the rhs
1854 builder.LoadLiteral(factory->NewNumber(lhs)) 1854 builder.LoadLiteral(factory->NewNumber(lhs))
(...skipping 2966 matching lines...) Expand 10 before | Expand all | Expand 10 after
4821 auto callable = tester.GetCallable<>(); 4821 auto callable = tester.GetCallable<>();
4822 4822
4823 Handle<i::Object> return_value = callable().ToHandleChecked(); 4823 Handle<i::Object> return_value = callable().ToHandleChecked();
4824 CHECK(return_value->SameValue(*tests[i].second)); 4824 CHECK(return_value->SameValue(*tests[i].second));
4825 } 4825 }
4826 } 4826 }
4827 4827
4828 } // namespace interpreter 4828 } // namespace interpreter
4829 } // namespace internal 4829 } // namespace internal
4830 } // namespace v8 4830 } // namespace v8
OLDNEW
« no previous file with comments | « test/cctest/compiler/test-run-native-calls.cc ('k') | test/cctest/test-ast.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698