OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 int capacity, | 654 int capacity, |
655 ArrayStorageAllocationMode mode = DONT_INITIALIZE_ARRAY_ELEMENTS); | 655 ArrayStorageAllocationMode mode = DONT_INITIALIZE_ARRAY_ELEMENTS); |
656 | 656 |
657 // Allocate a JSArray with no elements | 657 // Allocate a JSArray with no elements |
658 MUST_USE_RESULT MaybeObject* AllocateJSArrayWithElements( | 658 MUST_USE_RESULT MaybeObject* AllocateJSArrayWithElements( |
659 FixedArrayBase* array_base, | 659 FixedArrayBase* array_base, |
660 ElementsKind elements_kind, | 660 ElementsKind elements_kind, |
661 int length, | 661 int length, |
662 PretenureFlag pretenure = NOT_TENURED); | 662 PretenureFlag pretenure = NOT_TENURED); |
663 | 663 |
664 // Allocates and initializes a new global object based on a constructor. | |
665 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | |
666 // failed. | |
667 // Please note this does not perform a garbage collection. | |
668 MUST_USE_RESULT MaybeObject* AllocateGlobalObject(JSFunction* constructor); | |
669 | |
670 // Returns a deep copy of the JavaScript object. | 664 // Returns a deep copy of the JavaScript object. |
671 // Properties and elements are copied too. | 665 // Properties and elements are copied too. |
672 // Returns failure if allocation failed. | 666 // Returns failure if allocation failed. |
673 // Optionally takes an AllocationSite to be appended in an AllocationMemento. | 667 // Optionally takes an AllocationSite to be appended in an AllocationMemento. |
674 MUST_USE_RESULT MaybeObject* CopyJSObject(JSObject* source, | 668 MUST_USE_RESULT MaybeObject* CopyJSObject(JSObject* source, |
675 AllocationSite* site = NULL); | 669 AllocationSite* site = NULL); |
676 | 670 |
677 // Allocates the function prototype. | 671 // Allocates the function prototype. |
678 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 672 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
679 // failed. | 673 // failed. |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 ExternalArrayType array_type, | 875 ExternalArrayType array_type, |
882 void* external_pointer, | 876 void* external_pointer, |
883 PretenureFlag pretenure); | 877 PretenureFlag pretenure); |
884 | 878 |
885 // Allocate a symbol in old space. | 879 // Allocate a symbol in old space. |
886 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 880 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
887 // failed. | 881 // failed. |
888 // Please note this does not perform a garbage collection. | 882 // Please note this does not perform a garbage collection. |
889 MUST_USE_RESULT MaybeObject* AllocateSymbol(); | 883 MUST_USE_RESULT MaybeObject* AllocateSymbol(); |
890 | 884 |
891 // Allocate a tenured simple cell. | |
892 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | |
893 // failed. | |
894 // Please note this does not perform a garbage collection. | |
895 MUST_USE_RESULT MaybeObject* AllocateCell(Object* value); | |
896 | |
897 // Allocate a tenured JS global property cell. | |
898 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | |
899 // failed. | |
900 // Please note this does not perform a garbage collection. | |
901 MUST_USE_RESULT MaybeObject* AllocatePropertyCell(Object* value); | |
902 | |
903 // Allocate Box. | |
904 MUST_USE_RESULT MaybeObject* AllocateBox(Object* value, | |
905 PretenureFlag pretenure); | |
906 | |
907 // Allocate a tenured AllocationSite. It's payload is null | 885 // Allocate a tenured AllocationSite. It's payload is null |
908 MUST_USE_RESULT MaybeObject* AllocateAllocationSite(); | 886 MUST_USE_RESULT MaybeObject* AllocateAllocationSite(); |
909 | 887 |
910 // Allocates a fixed array initialized with undefined values | 888 // Allocates a fixed array initialized with undefined values |
911 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 889 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
912 // failed. | 890 // failed. |
913 // Please note this does not perform a garbage collection. | 891 // Please note this does not perform a garbage collection. |
914 MUST_USE_RESULT MaybeObject* AllocateFixedArray( | 892 MUST_USE_RESULT MaybeObject* AllocateFixedArray( |
915 int length, | 893 int length, |
916 PretenureFlag pretenure = NOT_TENURED); | 894 PretenureFlag pretenure = NOT_TENURED); |
(...skipping 1241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2158 // Allocate empty fixed array. | 2136 // Allocate empty fixed array. |
2159 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray(); | 2137 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray(); |
2160 | 2138 |
2161 // Allocate empty external array of given type. | 2139 // Allocate empty external array of given type. |
2162 MUST_USE_RESULT MaybeObject* AllocateEmptyExternalArray( | 2140 MUST_USE_RESULT MaybeObject* AllocateEmptyExternalArray( |
2163 ExternalArrayType array_type); | 2141 ExternalArrayType array_type); |
2164 | 2142 |
2165 // Allocate empty fixed double array. | 2143 // Allocate empty fixed double array. |
2166 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedDoubleArray(); | 2144 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedDoubleArray(); |
2167 | 2145 |
| 2146 // Allocate a tenured simple cell. |
| 2147 MUST_USE_RESULT MaybeObject* AllocateCell(Object* value); |
| 2148 |
| 2149 // Allocate a tenured JS global property cell initialized with the hole. |
| 2150 MUST_USE_RESULT MaybeObject* AllocatePropertyCell(); |
| 2151 |
| 2152 // Allocate Box. |
| 2153 MUST_USE_RESULT MaybeObject* AllocateBox(Object* value, |
| 2154 PretenureFlag pretenure); |
| 2155 |
2168 // Performs a minor collection in new generation. | 2156 // Performs a minor collection in new generation. |
2169 void Scavenge(); | 2157 void Scavenge(); |
2170 | 2158 |
2171 static String* UpdateNewSpaceReferenceInExternalStringTableEntry( | 2159 static String* UpdateNewSpaceReferenceInExternalStringTableEntry( |
2172 Heap* heap, | 2160 Heap* heap, |
2173 Object** pointer); | 2161 Object** pointer); |
2174 | 2162 |
2175 Address DoScavenge(ObjectVisitor* scavenge_visitor, Address new_space_front); | 2163 Address DoScavenge(ObjectVisitor* scavenge_visitor, Address new_space_front); |
2176 static void ScavengeStoreBufferCallback(Heap* heap, | 2164 static void ScavengeStoreBufferCallback(Heap* heap, |
2177 MemoryChunk* page, | 2165 MemoryChunk* page, |
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3088 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 3076 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
3089 | 3077 |
3090 private: | 3078 private: |
3091 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 3079 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
3092 }; | 3080 }; |
3093 #endif // DEBUG | 3081 #endif // DEBUG |
3094 | 3082 |
3095 } } // namespace v8::internal | 3083 } } // namespace v8::internal |
3096 | 3084 |
3097 #endif // V8_HEAP_H_ | 3085 #endif // V8_HEAP_H_ |
OLD | NEW |