OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 const v8::HeapSnapshot* snapshot1 = heap_profiler->TakeHeapSnapshot(); | 698 const v8::HeapSnapshot* snapshot1 = heap_profiler->TakeHeapSnapshot(); |
699 CHECK(ValidateSnapshot(snapshot1)); | 699 CHECK(ValidateSnapshot(snapshot1)); |
700 v8::SnapshotObjectId maxId1 = snapshot1->GetMaxSnapshotJSObjectId(); | 700 v8::SnapshotObjectId maxId1 = snapshot1->GetMaxSnapshotJSObjectId(); |
701 | 701 |
702 CompileRun( | 702 CompileRun( |
703 "for (var i = 0; i < 10000; ++i)\n" | 703 "for (var i = 0; i < 10000; ++i)\n" |
704 " a[i] = new A();\n"); | 704 " a[i] = new A();\n"); |
705 CcTest::heap()->CollectAllGarbage(); | 705 CcTest::heap()->CollectAllGarbage(); |
706 | 706 |
707 const v8::HeapSnapshot* snapshot2 = heap_profiler->TakeHeapSnapshot(); | 707 const v8::HeapSnapshot* snapshot2 = heap_profiler->TakeHeapSnapshot(); |
708 CHECK(ValidateSnapshot(snapshot2)); | |
709 const v8::HeapGraphNode* global2 = GetGlobalObject(snapshot2); | 708 const v8::HeapGraphNode* global2 = GetGlobalObject(snapshot2); |
710 | 709 |
711 const v8::HeapGraphNode* array_node = | 710 const v8::HeapGraphNode* array_node = |
712 GetProperty(global2, v8::HeapGraphEdge::kProperty, "a"); | 711 GetProperty(global2, v8::HeapGraphEdge::kProperty, "a"); |
713 CHECK(array_node); | 712 CHECK(array_node); |
714 int wrong_count = 0; | 713 int wrong_count = 0; |
715 for (int i = 0, count = array_node->GetChildrenCount(); i < count; ++i) { | 714 for (int i = 0, count = array_node->GetChildrenCount(); i < count; ++i) { |
716 const v8::HeapGraphEdge* prop = array_node->GetChild(i); | 715 const v8::HeapGraphEdge* prop = array_node->GetChild(i); |
717 if (prop->GetType() != v8::HeapGraphEdge::kElement) | 716 if (prop->GetType() != v8::HeapGraphEdge::kElement) |
718 continue; | 717 continue; |
(...skipping 2330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3049 " a[i] = i;\n" | 3048 " a[i] = i;\n" |
3050 " for (var i = 0; i < 3; ++i)\n" | 3049 " for (var i = 0; i < 3; ++i)\n" |
3051 " a.shift();\n" | 3050 " a.shift();\n" |
3052 "}\n"); | 3051 "}\n"); |
3053 | 3052 |
3054 CcTest::heap()->CollectGarbage(v8::internal::NEW_SPACE); | 3053 CcTest::heap()->CollectGarbage(v8::internal::NEW_SPACE); |
3055 // Should not crash. | 3054 // Should not crash. |
3056 | 3055 |
3057 heap_profiler->StopSamplingHeapProfiler(); | 3056 heap_profiler->StopSamplingHeapProfiler(); |
3058 } | 3057 } |
OLD | NEW |