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

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

Issue 2567333002: [promises] port NewPromiseCapability to TF (Closed)
Patch Set: fix cctests and stuff Created 3 years, 12 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
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 2249 matching lines...) Expand 10 before | Expand all | Expand 10 after
2260 ALLOCATE_PRIMITIVE_MAP(ODDBALL_TYPE, Oddball::kSize, boolean, 2260 ALLOCATE_PRIMITIVE_MAP(ODDBALL_TYPE, Oddball::kSize, boolean,
2261 Context::BOOLEAN_FUNCTION_INDEX); 2261 Context::BOOLEAN_FUNCTION_INDEX);
2262 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, uninitialized); 2262 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, uninitialized);
2263 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, arguments_marker); 2263 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, arguments_marker);
2264 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, no_interceptor_result_sentinel); 2264 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, no_interceptor_result_sentinel);
2265 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, exception); 2265 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, exception);
2266 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, termination_exception); 2266 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, termination_exception);
2267 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, optimized_out); 2267 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, optimized_out);
2268 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, stale_register); 2268 ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, stale_register);
2269 2269
2270 ALLOCATE_MAP(JS_PROMISE_CAPABILITY_TYPE, JSPromiseCapability::kSize,
2271 js_promise_capability);
2272
2270 for (unsigned i = 0; i < arraysize(string_type_table); i++) { 2273 for (unsigned i = 0; i < arraysize(string_type_table); i++) {
2271 const StringTypeTable& entry = string_type_table[i]; 2274 const StringTypeTable& entry = string_type_table[i];
2272 { 2275 {
2273 AllocationResult allocation = AllocateMap(entry.type, entry.size); 2276 AllocationResult allocation = AllocateMap(entry.type, entry.size);
2274 if (!allocation.To(&obj)) return false; 2277 if (!allocation.To(&obj)) return false;
2275 } 2278 }
2276 Map* map = Map::cast(obj); 2279 Map* map = Map::cast(obj);
2277 map->SetConstructorFunctionIndex(Context::STRING_FUNCTION_INDEX); 2280 map->SetConstructorFunctionIndex(Context::STRING_FUNCTION_INDEX);
2278 // Mark cons string maps as unstable, because their objects can change 2281 // Mark cons string maps as unstable, because their objects can change
2279 // maps during GC. 2282 // maps during GC.
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
2866 set_noscript_shared_function_infos(Smi::kZero); 2869 set_noscript_shared_function_infos(Smi::kZero);
2867 2870
2868 // Initialize context slot cache. 2871 // Initialize context slot cache.
2869 isolate_->context_slot_cache()->Clear(); 2872 isolate_->context_slot_cache()->Clear();
2870 2873
2871 // Initialize descriptor cache. 2874 // Initialize descriptor cache.
2872 isolate_->descriptor_lookup_cache()->Clear(); 2875 isolate_->descriptor_lookup_cache()->Clear();
2873 2876
2874 // Initialize compilation cache. 2877 // Initialize compilation cache.
2875 isolate_->compilation_cache()->Clear(); 2878 isolate_->compilation_cache()->Clear();
2879
2880 // Finish creating JSPromiseCapabilityMap
2881 {
2882 // TODO(caitp): This initialization can be removed once PromiseCapability
2883 // object is no longer used by builtins implemented in javascript.
2884 Handle<Map> map = factory->js_promise_capability_map();
2885 map->set_inobject_properties_or_constructor_function_index(3);
2886
2887 Map::EnsureDescriptorSlack(map, 3);
2888
2889 PropertyAttributes attrs =
2890 static_cast<PropertyAttributes>(READ_ONLY | DONT_DELETE);
2891 { // promise
2892 DataDescriptor d(factory->promise_string(),
2893 JSPromiseCapability::kPromiseIndex, attrs,
2894 Representation::Tagged());
2895 map->AppendDescriptor(&d);
2896 }
2897
2898 { // resolve
2899 DataDescriptor d(factory->resolve_string(),
2900 JSPromiseCapability::kResolveIndex, attrs,
2901 Representation::Tagged());
2902 map->AppendDescriptor(&d);
2903 }
2904
2905 { // reject
2906 DataDescriptor d(factory->reject_string(),
2907 JSPromiseCapability::kRejectIndex, attrs,
2908 Representation::Tagged());
2909 map->AppendDescriptor(&d);
2910 }
gsathya 2016/12/21 01:02:33 Honestly I feel like we could just use runtime cal
caitp 2016/12/21 21:01:13 To me, it seemed simpler to let it use in-object s
2911
2912 map->set_is_extensible(false);
2913 set_js_promise_capability_map(*map);
2914 }
2876 } 2915 }
2877 2916
2878 bool Heap::RootCanBeWrittenAfterInitialization(Heap::RootListIndex root_index) { 2917 bool Heap::RootCanBeWrittenAfterInitialization(Heap::RootListIndex root_index) {
2879 switch (root_index) { 2918 switch (root_index) {
2880 case kNumberStringCacheRootIndex: 2919 case kNumberStringCacheRootIndex:
2881 case kInstanceofCacheFunctionRootIndex: 2920 case kInstanceofCacheFunctionRootIndex:
2882 case kInstanceofCacheMapRootIndex: 2921 case kInstanceofCacheMapRootIndex:
2883 case kInstanceofCacheAnswerRootIndex: 2922 case kInstanceofCacheAnswerRootIndex:
2884 case kCodeStubsRootIndex: 2923 case kCodeStubsRootIndex:
2885 case kEmptyScriptRootIndex: 2924 case kEmptyScriptRootIndex:
(...skipping 3613 matching lines...) Expand 10 before | Expand all | Expand 10 after
6499 } 6538 }
6500 6539
6501 6540
6502 // static 6541 // static
6503 int Heap::GetStaticVisitorIdForMap(Map* map) { 6542 int Heap::GetStaticVisitorIdForMap(Map* map) {
6504 return StaticVisitorBase::GetVisitorId(map); 6543 return StaticVisitorBase::GetVisitorId(map);
6505 } 6544 }
6506 6545
6507 } // namespace internal 6546 } // namespace internal
6508 } // namespace v8 6547 } // namespace v8
OLDNEW
« src/code-stub-assembler.cc ('K') | « src/heap/heap.h ('k') | src/heap/objects-visiting.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698