| 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 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 return old_data_space_->allocation_top_address(); | 676 return old_data_space_->allocation_top_address(); |
| 677 } | 677 } |
| 678 Address* OldDataSpaceAllocationLimitAddress() { | 678 Address* OldDataSpaceAllocationLimitAddress() { |
| 679 return old_data_space_->allocation_limit_address(); | 679 return old_data_space_->allocation_limit_address(); |
| 680 } | 680 } |
| 681 | 681 |
| 682 // Allocates and initializes a new JavaScript object based on a | 682 // Allocates and initializes a new JavaScript object based on a |
| 683 // constructor. | 683 // constructor. |
| 684 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 684 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
| 685 // failed. | 685 // failed. |
| 686 // If allocation_site is non-null, then a memento is emitted after the object |
| 687 // that points to the site. |
| 686 // Please note this does not perform a garbage collection. | 688 // Please note this does not perform a garbage collection. |
| 687 MUST_USE_RESULT MaybeObject* AllocateJSObject( | 689 MUST_USE_RESULT MaybeObject* AllocateJSObject( |
| 688 JSFunction* constructor, | 690 JSFunction* constructor, |
| 689 PretenureFlag pretenure = NOT_TENURED); | 691 PretenureFlag pretenure = NOT_TENURED, |
| 690 | 692 AllocationSite* allocation_site = NULL); |
| 691 MUST_USE_RESULT MaybeObject* AllocateJSObjectWithAllocationSite( | |
| 692 JSFunction* constructor, | |
| 693 Handle<AllocationSite> allocation_site); | |
| 694 | 693 |
| 695 MUST_USE_RESULT MaybeObject* AllocateJSModule(Context* context, | 694 MUST_USE_RESULT MaybeObject* AllocateJSModule(Context* context, |
| 696 ScopeInfo* scope_info); | 695 ScopeInfo* scope_info); |
| 697 | 696 |
| 698 // Allocate a JSArray with no elements | 697 // Allocate a JSArray with no elements |
| 699 MUST_USE_RESULT MaybeObject* AllocateEmptyJSArray( | 698 MUST_USE_RESULT MaybeObject* AllocateEmptyJSArray( |
| 700 ElementsKind elements_kind, | 699 ElementsKind elements_kind, |
| 701 PretenureFlag pretenure = NOT_TENURED) { | 700 PretenureFlag pretenure = NOT_TENURED) { |
| 702 return AllocateJSArrayAndStorage(elements_kind, 0, 0, | 701 return AllocateJSArrayAndStorage(elements_kind, 0, 0, |
| 703 DONT_INITIALIZE_ARRAY_ELEMENTS, | 702 DONT_INITIALIZE_ARRAY_ELEMENTS, |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 763 // Reinitialize an JSGlobalProxy based on a constructor. The object | 762 // Reinitialize an JSGlobalProxy based on a constructor. The object |
| 764 // must have the same size as objects allocated using the | 763 // must have the same size as objects allocated using the |
| 765 // constructor. The object is reinitialized and behaves as an | 764 // constructor. The object is reinitialized and behaves as an |
| 766 // object that has been freshly allocated using the constructor. | 765 // object that has been freshly allocated using the constructor. |
| 767 MUST_USE_RESULT MaybeObject* ReinitializeJSGlobalProxy( | 766 MUST_USE_RESULT MaybeObject* ReinitializeJSGlobalProxy( |
| 768 JSFunction* constructor, JSGlobalProxy* global); | 767 JSFunction* constructor, JSGlobalProxy* global); |
| 769 | 768 |
| 770 // Allocates and initializes a new JavaScript object based on a map. | 769 // Allocates and initializes a new JavaScript object based on a map. |
| 771 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 770 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
| 772 // failed. | 771 // failed. |
| 772 // Passing an allocation site means that a memento will be created that |
| 773 // points to the site. |
| 773 // Please note this does not perform a garbage collection. | 774 // Please note this does not perform a garbage collection. |
| 774 MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMap( | 775 MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMap( |
| 775 Map* map, PretenureFlag pretenure = NOT_TENURED, bool alloc_props = true); | 776 Map* map, |
| 776 | 777 PretenureFlag pretenure = NOT_TENURED, |
| 777 MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMapWithAllocationSite( | 778 bool alloc_props = true, |
| 778 Map* map, Handle<AllocationSite> allocation_site); | 779 AllocationSite* allocation_site = NULL); |
| 779 | 780 |
| 780 // Allocates a heap object based on the map. | 781 // Allocates a heap object based on the map. |
| 781 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 782 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
| 782 // failed. | 783 // failed. |
| 783 // Please note this function does not perform a garbage collection. | 784 // Please note this function does not perform a garbage collection. |
| 784 MUST_USE_RESULT MaybeObject* Allocate(Map* map, AllocationSpace space); | 785 MUST_USE_RESULT MaybeObject* Allocate(Map* map, AllocationSpace space, |
| 785 | 786 AllocationSite* allocation_site = NULL); |
| 786 MUST_USE_RESULT MaybeObject* AllocateWithAllocationSite(Map* map, | |
| 787 AllocationSpace space, Handle<AllocationSite> allocation_site); | |
| 788 | 787 |
| 789 // Allocates a JS Map in the heap. | 788 // Allocates a JS Map in the heap. |
| 790 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 789 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
| 791 // failed. | 790 // failed. |
| 792 // Please note this function does not perform a garbage collection. | 791 // Please note this function does not perform a garbage collection. |
| 793 MUST_USE_RESULT MaybeObject* AllocateMap( | 792 MUST_USE_RESULT MaybeObject* AllocateMap( |
| 794 InstanceType instance_type, | 793 InstanceType instance_type, |
| 795 int instance_size, | 794 int instance_size, |
| 796 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND); | 795 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND); |
| 797 | 796 |
| (...skipping 2315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3113 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 3112 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
| 3114 | 3113 |
| 3115 private: | 3114 private: |
| 3116 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 3115 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
| 3117 }; | 3116 }; |
| 3118 #endif // DEBUG | 3117 #endif // DEBUG |
| 3119 | 3118 |
| 3120 } } // namespace v8::internal | 3119 } } // namespace v8::internal |
| 3121 | 3120 |
| 3122 #endif // V8_HEAP_H_ | 3121 #endif // V8_HEAP_H_ |
| OLD | NEW |