Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: src/factory.h

Issue 237963024: Select function map based on prototype and shared function info. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comment Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/factory.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "isolate.h" 8 #include "isolate.h"
9 9
10 namespace v8 { 10 namespace v8 {
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 // to do that. 626 // to do that.
627 template<typename T> 627 template<typename T>
628 Handle<T> New(Handle<Map> map, AllocationSpace space); 628 Handle<T> New(Handle<Map> map, AllocationSpace space);
629 629
630 template<typename T> 630 template<typename T>
631 Handle<T> New(Handle<Map> map, 631 Handle<T> New(Handle<Map> map,
632 AllocationSpace space, 632 AllocationSpace space,
633 Handle<AllocationSite> allocation_site); 633 Handle<AllocationSite> allocation_site);
634 634
635 // Initializes a function with a shared part and prototype. 635 // Initializes a function with a shared part and prototype.
636 // Note: this code was factored out of NewFunctionHelper such that 636 // Note: this code was factored out of NewFunction such that other parts of
637 // other parts of the VM could use it. Specifically, a function that creates 637 // the VM could use it. Specifically, a function that creates instances of
638 // instances of type JS_FUNCTION_TYPE benefit from the use of this function. 638 // type JS_FUNCTION_TYPE benefit from the use of this function.
639 inline void InitializeFunction(Handle<JSFunction> function, 639 inline void InitializeFunction(Handle<JSFunction> function,
640 Handle<SharedFunctionInfo> shared, 640 Handle<SharedFunctionInfo> info,
641 Handle<Object> prototype); 641 Handle<Context> context,
642 MaybeHandle<Object> maybe_prototype);
642 643
643 // Creates a function initialized with a shared part. 644 // Creates a function initialized with a shared part.
644 inline Handle<JSFunction> NewFunctionHelper( 645 inline Handle<JSFunction> NewFunction(Handle<SharedFunctionInfo> info,
645 Handle<Map> function_map, 646 Handle<Context> context,
646 Handle<SharedFunctionInfo> shared, 647 MaybeHandle<Object> maybe_prototype,
647 Handle<Object> prototype, 648 PretenureFlag pretenure = TENURED);
648 PretenureFlag pretenure = TENURED);
649 649
650 // Create a new map cache. 650 // Create a new map cache.
651 Handle<MapCache> NewMapCache(int at_least_space_for); 651 Handle<MapCache> NewMapCache(int at_least_space_for);
652 652
653 // Update the map cache in the native context with (keys, map) 653 // Update the map cache in the native context with (keys, map)
654 Handle<MapCache> AddToMapCache(Handle<Context> context, 654 Handle<MapCache> AddToMapCache(Handle<Context> context,
655 Handle<FixedArray> keys, 655 Handle<FixedArray> keys,
656 Handle<Map> map); 656 Handle<Map> map);
657 657
658 // Attempt to find the number in a small cache. If we finds it, return 658 // Attempt to find the number in a small cache. If we finds it, return
659 // the string representation of the number. Otherwise return undefined. 659 // the string representation of the number. Otherwise return undefined.
660 Handle<Object> GetNumberStringCache(Handle<Object> number); 660 Handle<Object> GetNumberStringCache(Handle<Object> number);
661 661
662 // Update the cache with a new number-string pair. 662 // Update the cache with a new number-string pair.
663 void SetNumberStringCache(Handle<Object> number, Handle<String> string); 663 void SetNumberStringCache(Handle<Object> number, Handle<String> string);
664 }; 664 };
665 665
666 } } // namespace v8::internal 666 } } // namespace v8::internal
667 667
668 #endif // V8_FACTORY_H_ 668 #endif // V8_FACTORY_H_
OLDNEW
« no previous file with comments | « no previous file | src/factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698