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

Side by Side Diff: test/cctest/test-inobject-slack-tracking.cc

Issue 1506683004: Free one bit in Map by removing unused retaining counter. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years 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 | « src/x87/builtins-x87.cc ('k') | no next file » | 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 <stdlib.h> 5 #include <stdlib.h>
6 #include <sstream> 6 #include <sstream>
7 #include <utility> 7 #include <utility>
8 8
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/objects.h" 10 #include "src/objects.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 CHECK(!func->has_initial_map()); 148 CHECK(!func->has_initial_map());
149 149
150 v8::Local<v8::Script> new_A_script = v8_compile("new A();"); 150 v8::Local<v8::Script> new_A_script = v8_compile("new A();");
151 151
152 Handle<JSObject> obj = Run<JSObject>(new_A_script); 152 Handle<JSObject> obj = Run<JSObject>(new_A_script);
153 153
154 CHECK(func->has_initial_map()); 154 CHECK(func->has_initial_map());
155 Handle<Map> initial_map(func->initial_map()); 155 Handle<Map> initial_map(func->initial_map());
156 156
157 // One instance created. 157 // One instance created.
158 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 158 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
159 initial_map->construction_counter());
159 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 160 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
160 161
161 // There must be at least some slack. 162 // There must be at least some slack.
162 CHECK_LT(5, obj->map()->GetInObjectProperties()); 163 CHECK_LT(5, obj->map()->GetInObjectProperties());
163 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0)); 164 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0));
164 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1)); 165 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1));
165 CHECK_EQ(*obj, GetFieldValue(*obj, 2)); 166 CHECK_EQ(*obj, GetFieldValue(*obj, 2));
166 CHECK(IsObjectShrinkable(*obj)); 167 CHECK(IsObjectShrinkable(*obj));
167 168
168 // Create several objects to complete the tracking. 169 // Create several objects to complete the tracking.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 CHECK(!func->has_initial_map()); 210 CHECK(!func->has_initial_map());
210 211
211 Handle<JSObject> obj1 = CompileRun<JSObject>("new A(1);"); 212 Handle<JSObject> obj1 = CompileRun<JSObject>("new A(1);");
212 Handle<JSObject> obj3 = CompileRun<JSObject>("new A(3);"); 213 Handle<JSObject> obj3 = CompileRun<JSObject>("new A(3);");
213 Handle<JSObject> obj5 = CompileRun<JSObject>("new A(5);"); 214 Handle<JSObject> obj5 = CompileRun<JSObject>("new A(5);");
214 215
215 CHECK(func->has_initial_map()); 216 CHECK(func->has_initial_map());
216 Handle<Map> initial_map(func->initial_map()); 217 Handle<Map> initial_map(func->initial_map());
217 218
218 // Three instances created. 219 // Three instances created.
219 CHECK_EQ(Map::kSlackTrackingCounterStart - 3, initial_map->counter()); 220 CHECK_EQ(Map::kSlackTrackingCounterStart - 3,
221 initial_map->construction_counter());
220 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 222 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
221 223
222 // There must be at least some slack. 224 // There must be at least some slack.
223 CHECK_LT(5, obj3->map()->GetInObjectProperties()); 225 CHECK_LT(5, obj3->map()->GetInObjectProperties());
224 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj3, 0)); 226 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj3, 0));
225 CHECK_EQ(4.2, GetDoubleFieldValue(*obj3, 1)); 227 CHECK_EQ(4.2, GetDoubleFieldValue(*obj3, 1));
226 CHECK_EQ(*obj3, GetFieldValue(*obj3, 2)); 228 CHECK_EQ(*obj3, GetFieldValue(*obj3, 2));
227 CHECK(IsObjectShrinkable(*obj1)); 229 CHECK(IsObjectShrinkable(*obj1));
228 CHECK(IsObjectShrinkable(*obj3)); 230 CHECK(IsObjectShrinkable(*obj3));
229 CHECK(IsObjectShrinkable(*obj5)); 231 CHECK(IsObjectShrinkable(*obj5));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 CHECK(!func->has_initial_map()); 296 CHECK(!func->has_initial_map());
295 297
296 v8::Local<v8::Script> new_A_script = v8_compile("CreateGenerator();"); 298 v8::Local<v8::Script> new_A_script = v8_compile("CreateGenerator();");
297 299
298 Handle<JSObject> obj = Run<JSObject>(new_A_script); 300 Handle<JSObject> obj = Run<JSObject>(new_A_script);
299 301
300 CHECK(func->has_initial_map()); 302 CHECK(func->has_initial_map());
301 Handle<Map> initial_map(func->initial_map()); 303 Handle<Map> initial_map(func->initial_map());
302 304
303 // One instance created. 305 // One instance created.
304 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 306 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
307 initial_map->construction_counter());
305 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 308 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
306 309
307 // There must be at least some slack. 310 // There must be at least some slack.
308 CHECK_LT(5, obj->map()->GetInObjectProperties()); 311 CHECK_LT(5, obj->map()->GetInObjectProperties());
309 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0)); 312 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0));
310 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1)); 313 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1));
311 CHECK_EQ(*obj, GetFieldValue(*obj, 2)); 314 CHECK_EQ(*obj, GetFieldValue(*obj, 2));
312 CHECK(IsObjectShrinkable(*obj)); 315 CHECK(IsObjectShrinkable(*obj));
313 316
314 // Create several objects to complete the tracking. 317 // Create several objects to complete the tracking.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 376
374 Handle<JSObject> obj = Run<JSObject>(new_B_script); 377 Handle<JSObject> obj = Run<JSObject>(new_B_script);
375 378
376 CHECK(a_func->has_initial_map()); 379 CHECK(a_func->has_initial_map());
377 Handle<Map> a_initial_map(a_func->initial_map()); 380 Handle<Map> a_initial_map(a_func->initial_map());
378 381
379 CHECK(b_func->has_initial_map()); 382 CHECK(b_func->has_initial_map());
380 Handle<Map> b_initial_map(b_func->initial_map()); 383 Handle<Map> b_initial_map(b_func->initial_map());
381 384
382 // Zero instances of A created. 385 // Zero instances of A created.
383 CHECK_EQ(Map::kSlackTrackingCounterStart, a_initial_map->counter()); 386 CHECK_EQ(Map::kSlackTrackingCounterStart,
387 a_initial_map->construction_counter());
384 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress()); 388 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress());
385 389
386 // One instance of B created. 390 // One instance of B created.
387 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, b_initial_map->counter()); 391 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
392 b_initial_map->construction_counter());
388 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress()); 393 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress());
389 394
390 // There must be at least some slack. 395 // There must be at least some slack.
391 CHECK_LT(10, obj->map()->GetInObjectProperties()); 396 CHECK_LT(10, obj->map()->GetInObjectProperties());
392 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0)); 397 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, 0));
393 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1)); 398 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, 1));
394 CHECK_EQ(*obj, GetFieldValue(*obj, 2)); 399 CHECK_EQ(*obj, GetFieldValue(*obj, 2));
395 CHECK_EQ(Smi::FromInt(142), GetFieldValue(*obj, 3)); 400 CHECK_EQ(Smi::FromInt(142), GetFieldValue(*obj, 3));
396 CHECK_EQ(14.2, GetDoubleFieldValue(*obj, 4)); 401 CHECK_EQ(14.2, GetDoubleFieldValue(*obj, 4));
397 CHECK_EQ(*obj, GetFieldValue(*obj, 5)); 402 CHECK_EQ(*obj, GetFieldValue(*obj, 5));
398 CHECK(IsObjectShrinkable(*obj)); 403 CHECK(IsObjectShrinkable(*obj));
399 404
400 // Create several subclass instances to complete the tracking. 405 // Create several subclass instances to complete the tracking.
401 for (int i = 1; i < Map::kGenerousAllocationCount; i++) { 406 for (int i = 1; i < Map::kGenerousAllocationCount; i++) {
402 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress()); 407 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress());
403 Handle<JSObject> tmp = Run<JSObject>(new_B_script); 408 Handle<JSObject> tmp = Run<JSObject>(new_B_script);
404 CHECK_EQ(b_initial_map->IsInobjectSlackTrackingInProgress(), 409 CHECK_EQ(b_initial_map->IsInobjectSlackTrackingInProgress(),
405 IsObjectShrinkable(*tmp)); 410 IsObjectShrinkable(*tmp));
406 } 411 }
407 CHECK(!b_initial_map->IsInobjectSlackTrackingInProgress()); 412 CHECK(!b_initial_map->IsInobjectSlackTrackingInProgress());
408 CHECK(!IsObjectShrinkable(*obj)); 413 CHECK(!IsObjectShrinkable(*obj));
409 414
410 // Zero instances of A created. 415 // Zero instances of A created.
411 CHECK_EQ(Map::kSlackTrackingCounterStart, a_initial_map->counter()); 416 CHECK_EQ(Map::kSlackTrackingCounterStart,
417 a_initial_map->construction_counter());
412 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress()); 418 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress());
413 419
414 // No slack left. 420 // No slack left.
415 CHECK_EQ(6, obj->map()->GetInObjectProperties()); 421 CHECK_EQ(6, obj->map()->GetInObjectProperties());
416 } 422 }
417 423
418 424
419 TEST(SubclassBasicNoBaseClassInstancesNoInlineNew) { 425 TEST(SubclassBasicNoBaseClassInstancesNoInlineNew) {
420 FLAG_inline_new = false; 426 FLAG_inline_new = false;
421 TestSubclassBasicNoBaseClassInstances(); 427 TestSubclassBasicNoBaseClassInstances();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 Handle<JSObject> a_obj = Run<JSObject>(new_A_script); 472 Handle<JSObject> a_obj = Run<JSObject>(new_A_script);
467 Handle<JSObject> b_obj = Run<JSObject>(new_B_script); 473 Handle<JSObject> b_obj = Run<JSObject>(new_B_script);
468 474
469 CHECK(a_func->has_initial_map()); 475 CHECK(a_func->has_initial_map());
470 Handle<Map> a_initial_map(a_func->initial_map()); 476 Handle<Map> a_initial_map(a_func->initial_map());
471 477
472 CHECK(b_func->has_initial_map()); 478 CHECK(b_func->has_initial_map());
473 Handle<Map> b_initial_map(b_func->initial_map()); 479 Handle<Map> b_initial_map(b_func->initial_map());
474 480
475 // One instance of a base class created. 481 // One instance of a base class created.
476 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, a_initial_map->counter()); 482 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
483 a_initial_map->construction_counter());
477 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress()); 484 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress());
478 485
479 // One instance of a subclass created. 486 // One instance of a subclass created.
480 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, b_initial_map->counter()); 487 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
488 b_initial_map->construction_counter());
481 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress()); 489 CHECK(b_initial_map->IsInobjectSlackTrackingInProgress());
482 490
483 // Create several base class instances to complete the tracking. 491 // Create several base class instances to complete the tracking.
484 for (int i = 1; i < Map::kGenerousAllocationCount; i++) { 492 for (int i = 1; i < Map::kGenerousAllocationCount; i++) {
485 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress()); 493 CHECK(a_initial_map->IsInobjectSlackTrackingInProgress());
486 Handle<JSObject> tmp = Run<JSObject>(new_A_script); 494 Handle<JSObject> tmp = Run<JSObject>(new_A_script);
487 CHECK_EQ(a_initial_map->IsInobjectSlackTrackingInProgress(), 495 CHECK_EQ(a_initial_map->IsInobjectSlackTrackingInProgress(),
488 IsObjectShrinkable(*tmp)); 496 IsObjectShrinkable(*tmp));
489 } 497 }
490 CHECK(!a_initial_map->IsInobjectSlackTrackingInProgress()); 498 CHECK(!a_initial_map->IsInobjectSlackTrackingInProgress());
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 595
588 Handle<JSObject> obj = Run<JSObject>(new_script); 596 Handle<JSObject> obj = Run<JSObject>(new_script);
589 597
590 CHECK(func->has_initial_map()); 598 CHECK(func->has_initial_map());
591 Handle<Map> initial_map(func->initial_map()); 599 Handle<Map> initial_map(func->initial_map());
592 600
593 // There must be at least some slack. 601 // There must be at least some slack.
594 CHECK_LT(fields_count, obj->map()->GetInObjectProperties()); 602 CHECK_LT(fields_count, obj->map()->GetInObjectProperties());
595 603
596 // One instance was created. 604 // One instance was created.
597 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 605 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
606 initial_map->construction_counter());
598 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 607 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
599 608
600 // Create several instances to complete the tracking. 609 // Create several instances to complete the tracking.
601 for (int i = 1; i < Map::kGenerousAllocationCount; i++) { 610 for (int i = 1; i < Map::kGenerousAllocationCount; i++) {
602 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 611 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
603 Handle<JSObject> tmp = Run<JSObject>(new_script); 612 Handle<JSObject> tmp = Run<JSObject>(new_script);
604 CHECK_EQ(initial_map->IsInobjectSlackTrackingInProgress(), 613 CHECK_EQ(initial_map->IsInobjectSlackTrackingInProgress(),
605 IsObjectShrinkable(*tmp)); 614 IsObjectShrinkable(*tmp));
606 } 615 }
607 CHECK(!initial_map->IsInobjectSlackTrackingInProgress()); 616 CHECK(!initial_map->IsInobjectSlackTrackingInProgress());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 Handle<JSObject> obj = Run<JSObject>(new_script); 693 Handle<JSObject> obj = Run<JSObject>(new_script);
685 694
686 CHECK(func->has_initial_map()); 695 CHECK(func->has_initial_map());
687 Handle<Map> initial_map(func->initial_map()); 696 Handle<Map> initial_map(func->initial_map());
688 697
689 // There must be no slack left. 698 // There must be no slack left.
690 CHECK_EQ(JSObject::kMaxInstanceSize, obj->map()->instance_size()); 699 CHECK_EQ(JSObject::kMaxInstanceSize, obj->map()->instance_size());
691 CHECK_EQ(kMaxInobjectProperties, obj->map()->GetInObjectProperties()); 700 CHECK_EQ(kMaxInobjectProperties, obj->map()->GetInObjectProperties());
692 701
693 // One instance was created. 702 // One instance was created.
694 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 703 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
704 initial_map->construction_counter());
695 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 705 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
696 706
697 // Create several instances to complete the tracking. 707 // Create several instances to complete the tracking.
698 for (int i = 1; i < Map::kGenerousAllocationCount; i++) { 708 for (int i = 1; i < Map::kGenerousAllocationCount; i++) {
699 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 709 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
700 Handle<JSObject> tmp = Run<JSObject>(new_script); 710 Handle<JSObject> tmp = Run<JSObject>(new_script);
701 CHECK(!IsObjectShrinkable(*tmp)); 711 CHECK(!IsObjectShrinkable(*tmp));
702 } 712 }
703 CHECK(!initial_map->IsInobjectSlackTrackingInProgress()); 713 CHECK(!initial_map->IsInobjectSlackTrackingInProgress());
704 CHECK(!IsObjectShrinkable(*obj)); 714 CHECK(!IsObjectShrinkable(*obj));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 Handle<JSObject> obj = Run<JSObject>(new_script); 752 Handle<JSObject> obj = Run<JSObject>(new_script);
743 753
744 CHECK(func->has_initial_map()); 754 CHECK(func->has_initial_map());
745 Handle<Map> initial_map(func->initial_map()); 755 Handle<Map> initial_map(func->initial_map());
746 756
747 // Object should go dictionary mode. 757 // Object should go dictionary mode.
748 CHECK_EQ(JSObject::kHeaderSize, obj->map()->instance_size()); 758 CHECK_EQ(JSObject::kHeaderSize, obj->map()->instance_size());
749 CHECK(obj->map()->is_dictionary_map()); 759 CHECK(obj->map()->is_dictionary_map());
750 760
751 // One instance was created. 761 // One instance was created.
752 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 762 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
763 initial_map->construction_counter());
753 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 764 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
754 765
755 // Create several instances to complete the tracking. 766 // Create several instances to complete the tracking.
756 for (int i = 1; i < Map::kGenerousAllocationCount; i++) { 767 for (int i = 1; i < Map::kGenerousAllocationCount; i++) {
757 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 768 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
758 Handle<JSObject> tmp = Run<JSObject>(new_script); 769 Handle<JSObject> tmp = Run<JSObject>(new_script);
759 CHECK(!IsObjectShrinkable(*tmp)); 770 CHECK(!IsObjectShrinkable(*tmp));
760 } 771 }
761 CHECK(!initial_map->IsInobjectSlackTrackingInProgress()); 772 CHECK(!initial_map->IsInobjectSlackTrackingInProgress());
762 CHECK(!IsObjectShrinkable(*obj)); 773 CHECK(!IsObjectShrinkable(*obj));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 } 816 }
806 817
807 Run<JSObject>(new_script); 818 Run<JSObject>(new_script);
808 819
809 CHECK(func->has_initial_map()); 820 CHECK(func->has_initial_map());
810 Handle<Map> initial_map(func->initial_map()); 821 Handle<Map> initial_map(func->initial_map());
811 822
812 CHECK_EQ(instance_type, initial_map->instance_type()); 823 CHECK_EQ(instance_type, initial_map->instance_type());
813 824
814 // One instance of a subclass created. 825 // One instance of a subclass created.
815 CHECK_EQ(Map::kSlackTrackingCounterStart - 1, initial_map->counter()); 826 CHECK_EQ(Map::kSlackTrackingCounterStart - 1,
827 initial_map->construction_counter());
816 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 828 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
817 829
818 // Create two instances in order to ensure that |obj|.o is a data field 830 // Create two instances in order to ensure that |obj|.o is a data field
819 // in case of Function subclassing. 831 // in case of Function subclassing.
820 Handle<JSObject> obj = Run<JSObject>(new_script); 832 Handle<JSObject> obj = Run<JSObject>(new_script);
821 833
822 // Two instances of a subclass created. 834 // Two instances of a subclass created.
823 CHECK_EQ(Map::kSlackTrackingCounterStart - 2, initial_map->counter()); 835 CHECK_EQ(Map::kSlackTrackingCounterStart - 2,
836 initial_map->construction_counter());
824 CHECK(initial_map->IsInobjectSlackTrackingInProgress()); 837 CHECK(initial_map->IsInobjectSlackTrackingInProgress());
825 838
826 // There must be at least some slack. 839 // There must be at least some slack.
827 CHECK_LT(builtin_properties_count + 5, obj->map()->GetInObjectProperties()); 840 CHECK_LT(builtin_properties_count + 5, obj->map()->GetInObjectProperties());
828 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, builtin_properties_count + 0)); 841 CHECK_EQ(Smi::FromInt(42), GetFieldValue(*obj, builtin_properties_count + 0));
829 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, builtin_properties_count + 1)); 842 CHECK_EQ(4.2, GetDoubleFieldValue(*obj, builtin_properties_count + 1));
830 CHECK_EQ(*obj, GetFieldValue(*obj, builtin_properties_count + 2)); 843 CHECK_EQ(*obj, GetFieldValue(*obj, builtin_properties_count + 2));
831 CHECK(IsObjectShrinkable(*obj)); 844 CHECK(IsObjectShrinkable(*obj));
832 845
833 // Create several subclass instances to complete the tracking. 846 // Create several subclass instances to complete the tracking.
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 TestSubclassBuiltin("A1", JS_PROMISE_TYPE, "Promise", 1102 TestSubclassBuiltin("A1", JS_PROMISE_TYPE, "Promise",
1090 "function(resolve, reject) { resolve('ok'); }", 1103 "function(resolve, reject) { resolve('ok'); }",
1091 first_field); 1104 first_field);
1092 } 1105 }
1093 1106
1094 1107
1095 TEST(SubclassPromiseBuiltinNoInlineNew) { 1108 TEST(SubclassPromiseBuiltinNoInlineNew) {
1096 FLAG_inline_new = false; 1109 FLAG_inline_new = false;
1097 TestSubclassPromiseBuiltin(); 1110 TestSubclassPromiseBuiltin();
1098 } 1111 }
OLDNEW
« no previous file with comments | « src/x87/builtins-x87.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698