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

Side by Side Diff: src/heap/heap.cc

Issue 2551763003: v8::Private::ForApi should be context-independent. (Closed)
Patch Set: fix Created 4 years 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
« no previous file with comments | « src/heap/heap.h ('k') | src/isolate.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #include "src/heap/heap.h" 5 #include "src/heap/heap.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/ast/context-slot-cache.h" 9 #include "src/ast/context-slot-cache.h"
10 #include "src/base/bits.h" 10 #include "src/base/bits.h"
(...skipping 2664 matching lines...) Expand 10 before | Expand all | Expand 10 after
2675 roots_[k##name##RootIndex] = *name; 2675 roots_[k##name##RootIndex] = *name;
2676 WELL_KNOWN_SYMBOL_LIST(SYMBOL_INIT) 2676 WELL_KNOWN_SYMBOL_LIST(SYMBOL_INIT)
2677 #undef SYMBOL_INIT 2677 #undef SYMBOL_INIT
2678 } 2678 }
2679 2679
2680 Handle<NameDictionary> empty_properties_dictionary = 2680 Handle<NameDictionary> empty_properties_dictionary =
2681 NameDictionary::New(isolate(), 0, TENURED); 2681 NameDictionary::New(isolate(), 0, TENURED);
2682 empty_properties_dictionary->SetRequiresCopyOnCapacityChange(); 2682 empty_properties_dictionary->SetRequiresCopyOnCapacityChange();
2683 set_empty_properties_dictionary(*empty_properties_dictionary); 2683 set_empty_properties_dictionary(*empty_properties_dictionary);
2684 2684
2685 set_public_symbol_table(*empty_properties_dictionary);
2686 set_api_symbol_table(*empty_properties_dictionary);
2687 set_api_private_symbol_table(*empty_properties_dictionary);
2688
2685 set_number_string_cache( 2689 set_number_string_cache(
2686 *factory->NewFixedArray(kInitialNumberStringCacheSize * 2, TENURED)); 2690 *factory->NewFixedArray(kInitialNumberStringCacheSize * 2, TENURED));
2687 2691
2688 // Allocate cache for single character one byte strings. 2692 // Allocate cache for single character one byte strings.
2689 set_single_character_string_cache( 2693 set_single_character_string_cache(
2690 *factory->NewFixedArray(String::kMaxOneByteCharCode + 1, TENURED)); 2694 *factory->NewFixedArray(String::kMaxOneByteCharCode + 1, TENURED));
2691 2695
2692 // Allocate cache for string split and regexp-multiple. 2696 // Allocate cache for string split and regexp-multiple.
2693 set_string_split_cache(*factory->NewFixedArray( 2697 set_string_split_cache(*factory->NewFixedArray(
2694 RegExpResultsCache::kRegExpResultsCacheSize, TENURED)); 2698 RegExpResultsCache::kRegExpResultsCacheSize, TENURED));
2695 set_regexp_multiple_cache(*factory->NewFixedArray( 2699 set_regexp_multiple_cache(*factory->NewFixedArray(
2696 RegExpResultsCache::kRegExpResultsCacheSize, TENURED)); 2700 RegExpResultsCache::kRegExpResultsCacheSize, TENURED));
2697 2701
2698 // Allocate cache for external strings pointing to native source code. 2702 // Allocate cache for external strings pointing to native source code.
2699 set_natives_source_cache( 2703 set_natives_source_cache(
2700 *factory->NewFixedArray(Natives::GetBuiltinsCount())); 2704 *factory->NewFixedArray(Natives::GetBuiltinsCount()));
2701 2705
2702 set_experimental_natives_source_cache( 2706 set_experimental_natives_source_cache(
2703 *factory->NewFixedArray(ExperimentalNatives::GetBuiltinsCount())); 2707 *factory->NewFixedArray(ExperimentalNatives::GetBuiltinsCount()));
2704 2708
2705 set_extra_natives_source_cache( 2709 set_extra_natives_source_cache(
2706 *factory->NewFixedArray(ExtraNatives::GetBuiltinsCount())); 2710 *factory->NewFixedArray(ExtraNatives::GetBuiltinsCount()));
2707 2711
2708 set_experimental_extra_natives_source_cache( 2712 set_experimental_extra_natives_source_cache(
2709 *factory->NewFixedArray(ExperimentalExtraNatives::GetBuiltinsCount())); 2713 *factory->NewFixedArray(ExperimentalExtraNatives::GetBuiltinsCount()));
2710 2714
2711 set_undefined_cell(*factory->NewCell(factory->undefined_value())); 2715 set_undefined_cell(*factory->NewCell(factory->undefined_value()));
2712 2716
2713 // The symbol registry is initialized lazily.
2714 set_symbol_registry(Smi::kZero);
2715
2716 // Microtask queue uses the empty fixed array as a sentinel for "empty". 2717 // Microtask queue uses the empty fixed array as a sentinel for "empty".
2717 // Number of queued microtasks stored in Isolate::pending_microtask_count(). 2718 // Number of queued microtasks stored in Isolate::pending_microtask_count().
2718 set_microtask_queue(empty_fixed_array()); 2719 set_microtask_queue(empty_fixed_array());
2719 2720
2720 { 2721 {
2721 StaticFeedbackVectorSpec spec; 2722 StaticFeedbackVectorSpec spec;
2722 FeedbackVectorSlot slot = spec.AddLoadICSlot(); 2723 FeedbackVectorSlot slot = spec.AddLoadICSlot();
2723 DCHECK_EQ(slot, FeedbackVectorSlot(TypeFeedbackVector::kDummyLoadICSlot)); 2724 DCHECK_EQ(slot, FeedbackVectorSlot(TypeFeedbackVector::kDummyLoadICSlot));
2724 2725
2725 slot = spec.AddKeyedLoadICSlot(); 2726 slot = spec.AddKeyedLoadICSlot();
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
2866 } 2867 }
2867 2868
2868 bool Heap::RootCanBeWrittenAfterInitialization(Heap::RootListIndex root_index) { 2869 bool Heap::RootCanBeWrittenAfterInitialization(Heap::RootListIndex root_index) {
2869 switch (root_index) { 2870 switch (root_index) {
2870 case kNumberStringCacheRootIndex: 2871 case kNumberStringCacheRootIndex:
2871 case kInstanceofCacheFunctionRootIndex: 2872 case kInstanceofCacheFunctionRootIndex:
2872 case kInstanceofCacheMapRootIndex: 2873 case kInstanceofCacheMapRootIndex:
2873 case kInstanceofCacheAnswerRootIndex: 2874 case kInstanceofCacheAnswerRootIndex:
2874 case kCodeStubsRootIndex: 2875 case kCodeStubsRootIndex:
2875 case kEmptyScriptRootIndex: 2876 case kEmptyScriptRootIndex:
2876 case kSymbolRegistryRootIndex:
2877 case kScriptListRootIndex: 2877 case kScriptListRootIndex:
2878 case kMaterializedObjectsRootIndex: 2878 case kMaterializedObjectsRootIndex:
2879 case kMicrotaskQueueRootIndex: 2879 case kMicrotaskQueueRootIndex:
2880 case kDetachedContextsRootIndex: 2880 case kDetachedContextsRootIndex:
2881 case kWeakObjectToCodeTableRootIndex: 2881 case kWeakObjectToCodeTableRootIndex:
2882 case kWeakNewSpaceObjectToCodeListRootIndex: 2882 case kWeakNewSpaceObjectToCodeListRootIndex:
2883 case kRetainedMapsRootIndex: 2883 case kRetainedMapsRootIndex:
2884 case kNoScriptSharedFunctionInfosRootIndex: 2884 case kNoScriptSharedFunctionInfosRootIndex:
2885 case kWeakStackTraceListRootIndex: 2885 case kWeakStackTraceListRootIndex:
2886 case kSerializedTemplatesRootIndex: 2886 case kSerializedTemplatesRootIndex:
2887 case kPublicSymbolTableRootIndex:
2888 case kApiSymbolTableRootIndex:
2889 case kApiPrivateSymbolTableRootIndex:
2887 // Smi values 2890 // Smi values
2888 #define SMI_ENTRY(type, name, Name) case k##Name##RootIndex: 2891 #define SMI_ENTRY(type, name, Name) case k##Name##RootIndex:
2889 SMI_ROOT_LIST(SMI_ENTRY) 2892 SMI_ROOT_LIST(SMI_ENTRY)
2890 #undef SMI_ENTRY 2893 #undef SMI_ENTRY
2891 // String table 2894 // String table
2892 case kStringTableRootIndex: 2895 case kStringTableRootIndex:
2893 return true; 2896 return true;
2894 2897
2895 default: 2898 default:
2896 return false; 2899 return false;
(...skipping 3579 matching lines...) Expand 10 before | Expand all | Expand 10 after
6476 } 6479 }
6477 6480
6478 6481
6479 // static 6482 // static
6480 int Heap::GetStaticVisitorIdForMap(Map* map) { 6483 int Heap::GetStaticVisitorIdForMap(Map* map) {
6481 return StaticVisitorBase::GetVisitorId(map); 6484 return StaticVisitorBase::GetVisitorId(map);
6482 } 6485 }
6483 6486
6484 } // namespace internal 6487 } // namespace internal
6485 } // namespace v8 6488 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/heap.h ('k') | src/isolate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698