OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_FACTORY_H_ | 5 #ifndef V8_FACTORY_H_ |
6 #define V8_FACTORY_H_ | 6 #define V8_FACTORY_H_ |
7 | 7 |
8 #include "src/isolate.h" | 8 #include "src/isolate.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 Handle<JSMessageObject> NewJSMessageObject( | 636 Handle<JSMessageObject> NewJSMessageObject( |
637 Handle<String> type, | 637 Handle<String> type, |
638 Handle<JSArray> arguments, | 638 Handle<JSArray> arguments, |
639 int start_position, | 639 int start_position, |
640 int end_position, | 640 int end_position, |
641 Handle<Object> script, | 641 Handle<Object> script, |
642 Handle<Object> stack_frames); | 642 Handle<Object> stack_frames); |
643 | 643 |
644 Handle<DebugInfo> NewDebugInfo(Handle<SharedFunctionInfo> shared); | 644 Handle<DebugInfo> NewDebugInfo(Handle<SharedFunctionInfo> shared); |
645 | 645 |
646 // Return a map using the map cache in the native context. | 646 // Return a map for given number of properties using the map cache in the |
647 // The key the an ordered set of property names. | 647 // native context. |
648 Handle<Map> ObjectLiteralMapFromCache(Handle<Context> context, | 648 Handle<Map> ObjectLiteralMapFromCache(Handle<Context> context, |
649 Handle<FixedArray> keys); | 649 int number_of_properties, |
| 650 bool* is_result_from_cache); |
650 | 651 |
651 // Creates a new FixedArray that holds the data associated with the | 652 // Creates a new FixedArray that holds the data associated with the |
652 // atom regexp and stores it in the regexp. | 653 // atom regexp and stores it in the regexp. |
653 void SetRegExpAtomData(Handle<JSRegExp> regexp, | 654 void SetRegExpAtomData(Handle<JSRegExp> regexp, |
654 JSRegExp::Type type, | 655 JSRegExp::Type type, |
655 Handle<String> source, | 656 Handle<String> source, |
656 JSRegExp::Flags flags, | 657 JSRegExp::Flags flags, |
657 Handle<Object> match_pattern); | 658 Handle<Object> match_pattern); |
658 | 659 |
659 // Creates a new FixedArray that holds the data associated with the | 660 // Creates a new FixedArray that holds the data associated with the |
(...skipping 22 matching lines...) Expand all Loading... |
682 Handle<T> New(Handle<Map> map, AllocationSpace space); | 683 Handle<T> New(Handle<Map> map, AllocationSpace space); |
683 | 684 |
684 template<typename T> | 685 template<typename T> |
685 Handle<T> New(Handle<Map> map, | 686 Handle<T> New(Handle<Map> map, |
686 AllocationSpace space, | 687 AllocationSpace space, |
687 Handle<AllocationSite> allocation_site); | 688 Handle<AllocationSite> allocation_site); |
688 | 689 |
689 // Creates a code object that is not yet fully initialized yet. | 690 // Creates a code object that is not yet fully initialized yet. |
690 inline Handle<Code> NewCodeRaw(int object_size, bool immovable); | 691 inline Handle<Code> NewCodeRaw(int object_size, bool immovable); |
691 | 692 |
692 // Create a new map cache. | |
693 Handle<MapCache> NewMapCache(int at_least_space_for); | |
694 | |
695 // Update the map cache in the native context with (keys, map) | |
696 Handle<MapCache> AddToMapCache(Handle<Context> context, | |
697 Handle<FixedArray> keys, | |
698 Handle<Map> map); | |
699 | |
700 // Attempt to find the number in a small cache. If we finds it, return | 693 // Attempt to find the number in a small cache. If we finds it, return |
701 // the string representation of the number. Otherwise return undefined. | 694 // the string representation of the number. Otherwise return undefined. |
702 Handle<Object> GetNumberStringCache(Handle<Object> number); | 695 Handle<Object> GetNumberStringCache(Handle<Object> number); |
703 | 696 |
704 // Update the cache with a new number-string pair. | 697 // Update the cache with a new number-string pair. |
705 void SetNumberStringCache(Handle<Object> number, Handle<String> string); | 698 void SetNumberStringCache(Handle<Object> number, Handle<String> string); |
706 | 699 |
707 // Initializes a function with a shared part and prototype. | 700 // Initializes a function with a shared part and prototype. |
708 // Note: this code was factored out of NewFunction such that other parts of | 701 // Note: this code was factored out of NewFunction such that other parts of |
709 // the VM could use it. Specifically, a function that creates instances of | 702 // the VM could use it. Specifically, a function that creates instances of |
(...skipping 15 matching lines...) Expand all Loading... |
725 // Reinitialize a JSProxy into an (empty) JS object of respective type and | 718 // Reinitialize a JSProxy into an (empty) JS object of respective type and |
726 // size, but keeping the original prototype. The receiver must have at least | 719 // size, but keeping the original prototype. The receiver must have at least |
727 // the size of the new object. The object is reinitialized and behaves as an | 720 // the size of the new object. The object is reinitialized and behaves as an |
728 // object that has been freshly allocated. | 721 // object that has been freshly allocated. |
729 void ReinitializeJSProxy(Handle<JSProxy> proxy, InstanceType type, int size); | 722 void ReinitializeJSProxy(Handle<JSProxy> proxy, InstanceType type, int size); |
730 }; | 723 }; |
731 | 724 |
732 } } // namespace v8::internal | 725 } } // namespace v8::internal |
733 | 726 |
734 #endif // V8_FACTORY_H_ | 727 #endif // V8_FACTORY_H_ |
OLD | NEW |