OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 | 2 |
3 #include <stdlib.h> | 3 #include <stdlib.h> |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "execution.h" | 7 #include "execution.h" |
8 #include "factory.h" | 8 #include "factory.h" |
9 #include "macro-assembler.h" | 9 #include "macro-assembler.h" |
10 #include "global-handles.h" | 10 #include "global-handles.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 CHECK(Smi::FromInt(Smi::kMinValue)->IsSmi()); | 201 CHECK(Smi::FromInt(Smi::kMinValue)->IsSmi()); |
202 CHECK(Smi::FromInt(Smi::kMaxValue)->IsSmi()); | 202 CHECK(Smi::FromInt(Smi::kMaxValue)->IsSmi()); |
203 } | 203 } |
204 | 204 |
205 | 205 |
206 TEST(GarbageCollection) { | 206 TEST(GarbageCollection) { |
207 InitializeVM(); | 207 InitializeVM(); |
208 | 208 |
209 v8::HandleScope sc; | 209 v8::HandleScope sc; |
210 // check GC when heap is empty | 210 // check GC when heap is empty |
211 int free_bytes = Heap::MaxHeapObjectSize(); | 211 int free_bytes = Heap::MaxObjectSizeInPagedSpace(); |
212 CHECK(Heap::CollectGarbage(free_bytes, NEW_SPACE)); | 212 CHECK(Heap::CollectGarbage(free_bytes, NEW_SPACE)); |
213 | 213 |
214 // allocate a function and keep it in global object's property | 214 // allocate a function and keep it in global object's property |
215 String* func_name = String::cast(Heap::LookupAsciiSymbol("theFunction")); | 215 String* func_name = String::cast(Heap::LookupAsciiSymbol("theFunction")); |
216 SharedFunctionInfo* function_share = | 216 SharedFunctionInfo* function_share = |
217 SharedFunctionInfo::cast(Heap::AllocateSharedFunctionInfo(func_name)); | 217 SharedFunctionInfo::cast(Heap::AllocateSharedFunctionInfo(func_name)); |
218 JSFunction* function = | 218 JSFunction* function = |
219 JSFunction::cast(Heap::AllocateFunction(*Top::function_map(), | 219 JSFunction::cast(Heap::AllocateFunction(*Top::function_map(), |
220 function_share, | 220 function_share, |
221 Heap::undefined_value())); | 221 Heap::undefined_value())); |
(...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 objs[next_objs_index++] = Factory::NewJSArray(10); | 775 objs[next_objs_index++] = Factory::NewJSArray(10); |
776 objs[next_objs_index++] = Factory::NewJSArray(10, TENURED); | 776 objs[next_objs_index++] = Factory::NewJSArray(10, TENURED); |
777 | 777 |
778 // Allocate a small string to OLD_DATA_SPACE and NEW_SPACE | 778 // Allocate a small string to OLD_DATA_SPACE and NEW_SPACE |
779 objs[next_objs_index++] = | 779 objs[next_objs_index++] = |
780 Factory::NewStringFromAscii(CStrVector("abcdefghij")); | 780 Factory::NewStringFromAscii(CStrVector("abcdefghij")); |
781 objs[next_objs_index++] = | 781 objs[next_objs_index++] = |
782 Factory::NewStringFromAscii(CStrVector("abcdefghij"), TENURED); | 782 Factory::NewStringFromAscii(CStrVector("abcdefghij"), TENURED); |
783 | 783 |
784 // Allocate a large string (for large object space). | 784 // Allocate a large string (for large object space). |
785 int large_size = Heap::MaxHeapObjectSize() + 1; | 785 int large_size = Heap::MaxObjectSizeInPagedSpace() + 1; |
786 char* str = new char[large_size]; | 786 char* str = new char[large_size]; |
787 for (int i = 0; i < large_size - 1; ++i) str[i] = 'a'; | 787 for (int i = 0; i < large_size - 1; ++i) str[i] = 'a'; |
788 str[large_size - 1] = '\0'; | 788 str[large_size - 1] = '\0'; |
789 objs[next_objs_index++] = | 789 objs[next_objs_index++] = |
790 Factory::NewStringFromAscii(CStrVector(str), TENURED); | 790 Factory::NewStringFromAscii(CStrVector(str), TENURED); |
791 delete[] str; | 791 delete[] str; |
792 | 792 |
793 // Add a Map object to look for. | 793 // Add a Map object to look for. |
794 objs[next_objs_index++] = Handle<Map>(HeapObject::cast(*objs[0])->map()); | 794 objs[next_objs_index++] = Handle<Map>(HeapObject::cast(*objs[0])->map()); |
795 | 795 |
796 CHECK_EQ(objs_count, next_objs_index); | 796 CHECK_EQ(objs_count, next_objs_index); |
797 CHECK_EQ(objs_count, ObjectsFoundInHeap(objs, objs_count)); | 797 CHECK_EQ(objs_count, ObjectsFoundInHeap(objs, objs_count)); |
798 } | 798 } |
OLD | NEW |