| OLD | NEW |
| 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 #ifndef V8_ISOLATE_H_ | 5 #ifndef V8_ISOLATE_H_ |
| 6 #define V8_ISOLATE_H_ | 6 #define V8_ISOLATE_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <queue> | 9 #include <queue> |
| 10 | 10 |
| (...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1078 Object* FindCodeObject(Address a); | 1078 Object* FindCodeObject(Address a); |
| 1079 | 1079 |
| 1080 int NextOptimizationId() { | 1080 int NextOptimizationId() { |
| 1081 int id = next_optimization_id_++; | 1081 int id = next_optimization_id_++; |
| 1082 if (!Smi::IsValid(next_optimization_id_)) { | 1082 if (!Smi::IsValid(next_optimization_id_)) { |
| 1083 next_optimization_id_ = 0; | 1083 next_optimization_id_ = 0; |
| 1084 } | 1084 } |
| 1085 return id; | 1085 return id; |
| 1086 } | 1086 } |
| 1087 | 1087 |
| 1088 // Get (and lazily initialize) the registry for per-isolate symbols. | |
| 1089 Handle<JSObject> GetSymbolRegistry(); | |
| 1090 | |
| 1091 void AddCallCompletedCallback(CallCompletedCallback callback); | 1088 void AddCallCompletedCallback(CallCompletedCallback callback); |
| 1092 void RemoveCallCompletedCallback(CallCompletedCallback callback); | 1089 void RemoveCallCompletedCallback(CallCompletedCallback callback); |
| 1093 void FireCallCompletedCallback(); | 1090 void FireCallCompletedCallback(); |
| 1094 | 1091 |
| 1095 void AddBeforeCallEnteredCallback(BeforeCallEnteredCallback callback); | 1092 void AddBeforeCallEnteredCallback(BeforeCallEnteredCallback callback); |
| 1096 void RemoveBeforeCallEnteredCallback(BeforeCallEnteredCallback callback); | 1093 void RemoveBeforeCallEnteredCallback(BeforeCallEnteredCallback callback); |
| 1097 inline void FireBeforeCallEnteredCallback(); | 1094 inline void FireBeforeCallEnteredCallback(); |
| 1098 | 1095 |
| 1099 void AddMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); | 1096 void AddMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); |
| 1100 void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); | 1097 void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallback callback); |
| 1101 void FireMicrotasksCompletedCallback(); | 1098 void FireMicrotasksCompletedCallback(); |
| 1102 | 1099 |
| 1103 void SetPromiseRejectCallback(PromiseRejectCallback callback); | 1100 void SetPromiseRejectCallback(PromiseRejectCallback callback); |
| 1104 void ReportPromiseReject(Handle<JSObject> promise, Handle<Object> value, | 1101 void ReportPromiseReject(Handle<JSObject> promise, Handle<Object> value, |
| 1105 v8::PromiseRejectEvent event); | 1102 v8::PromiseRejectEvent event); |
| 1106 | 1103 |
| 1107 void PromiseReactionJob(Handle<PromiseReactionJobInfo> info, | 1104 void PromiseReactionJob(Handle<PromiseReactionJobInfo> info, |
| 1108 MaybeHandle<Object>* result, | 1105 MaybeHandle<Object>* result, |
| 1109 MaybeHandle<Object>* maybe_exception); | 1106 MaybeHandle<Object>* maybe_exception); |
| 1110 void PromiseResolveThenableJob(Handle<PromiseResolveThenableJobInfo> info, | 1107 void PromiseResolveThenableJob(Handle<PromiseResolveThenableJobInfo> info, |
| 1111 MaybeHandle<Object>* result, | 1108 MaybeHandle<Object>* result, |
| 1112 MaybeHandle<Object>* maybe_exception); | 1109 MaybeHandle<Object>* maybe_exception); |
| 1113 void EnqueueMicrotask(Handle<Object> microtask); | 1110 void EnqueueMicrotask(Handle<Object> microtask); |
| 1114 void RunMicrotasks(); | 1111 void RunMicrotasks(); |
| 1115 bool IsRunningMicrotasks() const { return is_running_microtasks_; } | 1112 bool IsRunningMicrotasks() const { return is_running_microtasks_; } |
| 1116 int GetNextDebugMicrotaskId() { return debug_microtask_count_++; } | 1113 int GetNextDebugMicrotaskId() { return debug_microtask_count_++; } |
| 1117 | 1114 |
| 1115 Handle<Symbol> SymbolFor(Heap::RootListIndex dictionary_index, |
| 1116 Handle<String> name, bool private_symbol); |
| 1117 |
| 1118 void SetUseCounterCallback(v8::Isolate::UseCounterCallback callback); | 1118 void SetUseCounterCallback(v8::Isolate::UseCounterCallback callback); |
| 1119 void CountUsage(v8::Isolate::UseCounterFeature feature); | 1119 void CountUsage(v8::Isolate::UseCounterFeature feature); |
| 1120 | 1120 |
| 1121 BasicBlockProfiler* GetOrCreateBasicBlockProfiler(); | 1121 BasicBlockProfiler* GetOrCreateBasicBlockProfiler(); |
| 1122 BasicBlockProfiler* basic_block_profiler() { return basic_block_profiler_; } | 1122 BasicBlockProfiler* basic_block_profiler() { return basic_block_profiler_; } |
| 1123 | 1123 |
| 1124 std::string GetTurboCfgFileName(); | 1124 std::string GetTurboCfgFileName(); |
| 1125 | 1125 |
| 1126 #if TRACE_MAPS | 1126 #if TRACE_MAPS |
| 1127 int GetNextUniqueSharedFunctionInfoId() { return next_unique_sfi_id_++; } | 1127 int GetNextUniqueSharedFunctionInfoId() { return next_unique_sfi_id_++; } |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1178 base::Mutex* simulator_i_cache_mutex() { return &simulator_i_cache_mutex_; } | 1178 base::Mutex* simulator_i_cache_mutex() { return &simulator_i_cache_mutex_; } |
| 1179 #endif | 1179 #endif |
| 1180 | 1180 |
| 1181 protected: | 1181 protected: |
| 1182 explicit Isolate(bool enable_serializer); | 1182 explicit Isolate(bool enable_serializer); |
| 1183 bool IsArrayOrObjectPrototype(Object* object); | 1183 bool IsArrayOrObjectPrototype(Object* object); |
| 1184 | 1184 |
| 1185 private: | 1185 private: |
| 1186 friend struct GlobalState; | 1186 friend struct GlobalState; |
| 1187 friend struct InitializeGlobalState; | 1187 friend struct InitializeGlobalState; |
| 1188 Handle<JSObject> SetUpSubregistry(Handle<JSObject> registry, Handle<Map> map, | |
| 1189 const char* name); | |
| 1190 | 1188 |
| 1191 // These fields are accessed through the API, offsets must be kept in sync | 1189 // These fields are accessed through the API, offsets must be kept in sync |
| 1192 // with v8::internal::Internals (in include/v8.h) constants. This is also | 1190 // with v8::internal::Internals (in include/v8.h) constants. This is also |
| 1193 // verified in Isolate::Init() using runtime checks. | 1191 // verified in Isolate::Init() using runtime checks. |
| 1194 void* embedder_data_[Internals::kNumIsolateDataSlots]; | 1192 void* embedder_data_[Internals::kNumIsolateDataSlots]; |
| 1195 Heap heap_; | 1193 Heap heap_; |
| 1196 | 1194 |
| 1197 // The per-process lock should be acquired before the ThreadDataTable is | 1195 // The per-process lock should be acquired before the ThreadDataTable is |
| 1198 // modified. | 1196 // modified. |
| 1199 class ThreadDataTable { | 1197 class ThreadDataTable { |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1682 | 1680 |
| 1683 EmbeddedVector<char, 128> filename_; | 1681 EmbeddedVector<char, 128> filename_; |
| 1684 FILE* file_; | 1682 FILE* file_; |
| 1685 int scope_depth_; | 1683 int scope_depth_; |
| 1686 }; | 1684 }; |
| 1687 | 1685 |
| 1688 } // namespace internal | 1686 } // namespace internal |
| 1689 } // namespace v8 | 1687 } // namespace v8 |
| 1690 | 1688 |
| 1691 #endif // V8_ISOLATE_H_ | 1689 #endif // V8_ISOLATE_H_ |
| OLD | NEW |