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 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
581 | 581 |
582 // Uncommit unused semi space. | 582 // Uncommit unused semi space. |
583 bool UncommitFromSpace() { return new_space_.UncommitFromSpace(); } | 583 bool UncommitFromSpace() { return new_space_.UncommitFromSpace(); } |
584 | 584 |
585 // Allocates and initializes a new JavaScript object based on a | 585 // Allocates and initializes a new JavaScript object based on a |
586 // constructor. | 586 // constructor. |
587 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 587 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
588 // failed. | 588 // failed. |
589 // Please note this does not perform a garbage collection. | 589 // Please note this does not perform a garbage collection. |
590 MUST_USE_RESULT MaybeObject* AllocateJSObject( | 590 MUST_USE_RESULT MaybeObject* AllocateJSObject( |
591 JSFunction* constructor, PretenureFlag pretenure = NOT_TENURED); | 591 JSFunction* constructor, |
592 PretenureFlag pretenure = NOT_TENURED, | |
593 AllocationSiteMode = DONT_TRACK_ALLOCATION_SITE, | |
594 Handle<Object>* allocation_site_info_payload = NULL); | |
592 | 595 |
593 MUST_USE_RESULT MaybeObject* AllocateJSModule(Context* context, | 596 MUST_USE_RESULT MaybeObject* AllocateJSModule(Context* context, |
594 ScopeInfo* scope_info); | 597 ScopeInfo* scope_info); |
595 | 598 |
596 // Allocate a JSArray with no elements | 599 // Allocate a JSArray with no elements |
597 MUST_USE_RESULT MaybeObject* AllocateEmptyJSArray( | 600 MUST_USE_RESULT MaybeObject* AllocateEmptyJSArray( |
598 ElementsKind elements_kind, | 601 ElementsKind elements_kind, |
602 AllocationSiteMode allocation_site_mode = DONT_TRACK_ALLOCATION_SITE, | |
603 Handle<Object> *allocation_site_payload = NULL, | |
599 PretenureFlag pretenure = NOT_TENURED) { | 604 PretenureFlag pretenure = NOT_TENURED) { |
605 // TODO(mvstanton): Danno's original change does something here, but I | |
606 // didn't include it because I don't see why we need it yet. | |
Toon Verwaest
2013/02/13 15:14:51
Outdated comment?
mvstanton
2013/02/19 11:04:08
yep, thx!
| |
600 return AllocateJSArrayAndStorage(elements_kind, 0, 0, | 607 return AllocateJSArrayAndStorage(elements_kind, 0, 0, |
608 allocation_site_mode, | |
609 allocation_site_payload, | |
601 DONT_INITIALIZE_ARRAY_ELEMENTS, | 610 DONT_INITIALIZE_ARRAY_ELEMENTS, |
602 pretenure); | 611 pretenure); |
603 } | 612 } |
604 | 613 |
605 // Allocate a JSArray with a specified length but elements that are left | 614 // Allocate a JSArray with a specified length but elements that are left |
606 // uninitialized. | 615 // uninitialized. |
607 MUST_USE_RESULT MaybeObject* AllocateJSArrayAndStorage( | 616 MUST_USE_RESULT MaybeObject* AllocateJSArrayAndStorage( |
608 ElementsKind elements_kind, | 617 ElementsKind elements_kind, |
609 int length, | 618 int length, |
610 int capacity, | 619 int capacity, |
620 AllocationSiteMode allocation_site_info_mode = | |
621 DONT_TRACK_ALLOCATION_SITE, | |
622 Handle<Object> *allocation_site_payload = NULL, | |
611 ArrayStorageAllocationMode mode = DONT_INITIALIZE_ARRAY_ELEMENTS, | 623 ArrayStorageAllocationMode mode = DONT_INITIALIZE_ARRAY_ELEMENTS, |
612 PretenureFlag pretenure = NOT_TENURED); | 624 PretenureFlag pretenure = NOT_TENURED); |
613 | 625 |
614 // Allocate a JSArray with no elements | 626 // Allocate a JSArray with no elements |
615 MUST_USE_RESULT MaybeObject* AllocateJSArrayWithElements( | 627 MUST_USE_RESULT MaybeObject* AllocateJSArrayWithElements( |
616 FixedArrayBase* array_base, | 628 FixedArrayBase* array_base, |
617 ElementsKind elements_kind, | 629 ElementsKind elements_kind, |
618 int length, | 630 int length, |
619 PretenureFlag pretenure = NOT_TENURED); | 631 PretenureFlag pretenure = NOT_TENURED); |
620 | 632 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
663 // constructor. The object is reinitialized and behaves as an | 675 // constructor. The object is reinitialized and behaves as an |
664 // object that has been freshly allocated using the constructor. | 676 // object that has been freshly allocated using the constructor. |
665 MUST_USE_RESULT MaybeObject* ReinitializeJSGlobalProxy( | 677 MUST_USE_RESULT MaybeObject* ReinitializeJSGlobalProxy( |
666 JSFunction* constructor, JSGlobalProxy* global); | 678 JSFunction* constructor, JSGlobalProxy* global); |
667 | 679 |
668 // Allocates and initializes a new JavaScript object based on a map. | 680 // Allocates and initializes a new JavaScript object based on a map. |
669 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 681 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
670 // failed. | 682 // failed. |
671 // Please note this does not perform a garbage collection. | 683 // Please note this does not perform a garbage collection. |
672 MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMap( | 684 MUST_USE_RESULT MaybeObject* AllocateJSObjectFromMap( |
673 Map* map, PretenureFlag pretenure = NOT_TENURED); | 685 Map* map, PretenureFlag pretenure = NOT_TENURED, |
686 AllocationSiteMode mode = DONT_TRACK_ALLOCATION_SITE, | |
687 Handle<Object>* allocation_site_info_payload = NULL); | |
674 | 688 |
675 // Allocates a heap object based on the map. | 689 // Allocates a heap object based on the map. |
676 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 690 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
677 // failed. | 691 // failed. |
678 // Please note this function does not perform a garbage collection. | 692 // Please note this function does not perform a garbage collection. |
679 MUST_USE_RESULT MaybeObject* Allocate(Map* map, AllocationSpace space); | 693 MUST_USE_RESULT MaybeObject* Allocate(Map* map, AllocationSpace space); |
680 | 694 |
695 MUST_USE_RESULT MaybeObject* AllocateWithAllocationSiteInfo(Map* map, | |
696 AllocationSpace space, | |
697 Handle<Object>* allocation_site_info_payload); | |
698 | |
681 // Allocates a JS Map in the heap. | 699 // Allocates a JS Map in the heap. |
682 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation | 700 // Returns Failure::RetryAfterGC(requested_bytes, space) if the allocation |
683 // failed. | 701 // failed. |
684 // Please note this function does not perform a garbage collection. | 702 // Please note this function does not perform a garbage collection. |
685 MUST_USE_RESULT MaybeObject* AllocateMap( | 703 MUST_USE_RESULT MaybeObject* AllocateMap( |
686 InstanceType instance_type, | 704 InstanceType instance_type, |
687 int instance_size, | 705 int instance_size, |
688 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND); | 706 ElementsKind elements_kind = TERMINAL_FAST_ELEMENTS_KIND); |
689 | 707 |
690 // Allocates a partial map for bootstrapping. | 708 // Allocates a partial map for bootstrapping. |
(...skipping 1317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2008 | 2026 |
2009 void CreateFixedStubs(); | 2027 void CreateFixedStubs(); |
2010 | 2028 |
2011 MUST_USE_RESULT MaybeObject* CreateOddball(const char* to_string, | 2029 MUST_USE_RESULT MaybeObject* CreateOddball(const char* to_string, |
2012 Object* to_number, | 2030 Object* to_number, |
2013 byte kind); | 2031 byte kind); |
2014 | 2032 |
2015 // Allocate a JSArray with no elements | 2033 // Allocate a JSArray with no elements |
2016 MUST_USE_RESULT MaybeObject* AllocateJSArray( | 2034 MUST_USE_RESULT MaybeObject* AllocateJSArray( |
2017 ElementsKind elements_kind, | 2035 ElementsKind elements_kind, |
2018 PretenureFlag pretenure = NOT_TENURED); | 2036 PretenureFlag pretenure = NOT_TENURED, |
2037 AllocationSiteMode mode = DONT_TRACK_ALLOCATION_SITE, | |
2038 Handle<Object>* allocation_site_info_payload = NULL); | |
2019 | 2039 |
2020 // Allocate empty fixed array. | 2040 // Allocate empty fixed array. |
2021 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray(); | 2041 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray(); |
2022 | 2042 |
2023 // Allocate empty fixed double array. | 2043 // Allocate empty fixed double array. |
2024 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedDoubleArray(); | 2044 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedDoubleArray(); |
2025 | 2045 |
2026 // Performs a minor collection in new generation. | 2046 // Performs a minor collection in new generation. |
2027 void Scavenge(); | 2047 void Scavenge(); |
2028 | 2048 |
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2945 AssertNoAllocation no_alloc; // i.e. no gc allowed. | 2965 AssertNoAllocation no_alloc; // i.e. no gc allowed. |
2946 | 2966 |
2947 private: | 2967 private: |
2948 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2968 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2949 }; | 2969 }; |
2950 #endif // DEBUG | 2970 #endif // DEBUG |
2951 | 2971 |
2952 } } // namespace v8::internal | 2972 } } // namespace v8::internal |
2953 | 2973 |
2954 #endif // V8_HEAP_H_ | 2974 #endif // V8_HEAP_H_ |
OLD | NEW |