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 <queue> | 9 #include <queue> |
9 #include <set> | 10 #include <set> |
10 | 11 |
11 #include "include/v8-debug.h" | 12 #include "include/v8-debug.h" |
12 #include "src/allocation.h" | 13 #include "src/allocation.h" |
13 #include "src/assert-scope.h" | 14 #include "src/assert-scope.h" |
14 #include "src/base/accounting-allocator.h" | 15 #include "src/base/accounting-allocator.h" |
15 #include "src/base/atomicops.h" | 16 #include "src/base/atomicops.h" |
16 #include "src/base/hashmap.h" | 17 #include "src/base/hashmap.h" |
17 #include "src/builtins.h" | 18 #include "src/builtins.h" |
(...skipping 17 matching lines...) Loading... |
35 | 36 |
36 namespace base { | 37 namespace base { |
37 class RandomNumberGenerator; | 38 class RandomNumberGenerator; |
38 } | 39 } |
39 | 40 |
40 namespace internal { | 41 namespace internal { |
41 | 42 |
42 class BasicBlockProfiler; | 43 class BasicBlockProfiler; |
43 class Bootstrapper; | 44 class Bootstrapper; |
44 class CallInterfaceDescriptorData; | 45 class CallInterfaceDescriptorData; |
| 46 class CodeAgingHelper; |
| 47 class CodeEventDispatcher; |
45 class CodeGenerator; | 48 class CodeGenerator; |
46 class CodeRange; | 49 class CodeRange; |
47 class CodeStubDescriptor; | 50 class CodeStubDescriptor; |
48 class CodeTracer; | 51 class CodeTracer; |
49 class CompilationCache; | 52 class CompilationCache; |
50 class CompilationStatistics; | 53 class CompilationStatistics; |
51 class ContextSlotCache; | 54 class ContextSlotCache; |
52 class Counters; | 55 class Counters; |
53 class CpuFeatures; | 56 class CpuFeatures; |
54 class CpuProfiler; | 57 class CpuProfiler; |
55 class DeoptimizerData; | 58 class DeoptimizerData; |
56 class Deserializer; | 59 class Deserializer; |
57 class EmptyStatement; | 60 class EmptyStatement; |
58 class ExternalCallbackScope; | 61 class ExternalCallbackScope; |
59 class ExternalReferenceTable; | 62 class ExternalReferenceTable; |
60 class Factory; | 63 class Factory; |
61 class HandleScopeImplementer; | 64 class HandleScopeImplementer; |
62 class HeapProfiler; | 65 class HeapProfiler; |
63 class HStatistics; | 66 class HStatistics; |
64 class HTracer; | 67 class HTracer; |
65 class InlineRuntimeFunctionsTable; | 68 class InlineRuntimeFunctionsTable; |
66 class InnerPointerToCodeCache; | 69 class InnerPointerToCodeCache; |
67 class Logger; | 70 class Logger; |
68 class MaterializedObjectStore; | 71 class MaterializedObjectStore; |
69 class CodeAgingHelper; | 72 class PositionsRecorder; |
70 class RegExpStack; | 73 class RegExpStack; |
71 class SaveContext; | 74 class SaveContext; |
72 class StatsTable; | 75 class StatsTable; |
73 class StringTracker; | 76 class StringTracker; |
74 class StubCache; | 77 class StubCache; |
75 class SweeperThread; | 78 class SweeperThread; |
76 class ThreadManager; | 79 class ThreadManager; |
77 class ThreadState; | 80 class ThreadState; |
78 class ThreadVisitor; // Defined in v8threads.h | 81 class ThreadVisitor; // Defined in v8threads.h |
79 class UnicodeCache; | 82 class UnicodeCache; |
(...skipping 832 matching lines...) Loading... |
912 RegExpStack* regexp_stack() { return regexp_stack_; } | 915 RegExpStack* regexp_stack() { return regexp_stack_; } |
913 | 916 |
914 unibrow::Mapping<unibrow::Ecma262Canonicalize>* | 917 unibrow::Mapping<unibrow::Ecma262Canonicalize>* |
915 interp_canonicalize_mapping() { | 918 interp_canonicalize_mapping() { |
916 return ®exp_macro_assembler_canonicalize_; | 919 return ®exp_macro_assembler_canonicalize_; |
917 } | 920 } |
918 | 921 |
919 Debug* debug() { return debug_; } | 922 Debug* debug() { return debug_; } |
920 | 923 |
921 bool* is_profiling_address() { return &is_profiling_; } | 924 bool* is_profiling_address() { return &is_profiling_; } |
| 925 CodeEventDispatcher* code_event_dispatcher() const { |
| 926 return code_event_dispatcher_.get(); |
| 927 } |
922 CpuProfiler* cpu_profiler() const { return cpu_profiler_; } | 928 CpuProfiler* cpu_profiler() const { return cpu_profiler_; } |
923 HeapProfiler* heap_profiler() const { return heap_profiler_; } | 929 HeapProfiler* heap_profiler() const { return heap_profiler_; } |
924 | 930 |
925 #ifdef DEBUG | 931 #ifdef DEBUG |
926 HistogramInfo* heap_histograms() { return heap_histograms_; } | 932 HistogramInfo* heap_histograms() { return heap_histograms_; } |
927 | 933 |
928 JSObject::SpillInformation* js_spill_information() { | 934 JSObject::SpillInformation* js_spill_information() { |
929 return &js_spill_information_; | 935 return &js_spill_information_; |
930 } | 936 } |
931 #endif | 937 #endif |
(...skipping 399 matching lines...) Loading... |
1331 | 1337 |
1332 #ifdef DEBUG | 1338 #ifdef DEBUG |
1333 // A static array of histogram info for each type. | 1339 // A static array of histogram info for each type. |
1334 HistogramInfo heap_histograms_[LAST_TYPE + 1]; | 1340 HistogramInfo heap_histograms_[LAST_TYPE + 1]; |
1335 JSObject::SpillInformation js_spill_information_; | 1341 JSObject::SpillInformation js_spill_information_; |
1336 #endif | 1342 #endif |
1337 | 1343 |
1338 Debug* debug_; | 1344 Debug* debug_; |
1339 CpuProfiler* cpu_profiler_; | 1345 CpuProfiler* cpu_profiler_; |
1340 HeapProfiler* heap_profiler_; | 1346 HeapProfiler* heap_profiler_; |
| 1347 std::unique_ptr<CodeEventDispatcher> code_event_dispatcher_; |
1341 FunctionEntryHook function_entry_hook_; | 1348 FunctionEntryHook function_entry_hook_; |
1342 | 1349 |
1343 interpreter::Interpreter* interpreter_; | 1350 interpreter::Interpreter* interpreter_; |
1344 | 1351 |
1345 typedef std::pair<InterruptCallback, void*> InterruptEntry; | 1352 typedef std::pair<InterruptCallback, void*> InterruptEntry; |
1346 std::queue<InterruptEntry> api_interrupts_queue_; | 1353 std::queue<InterruptEntry> api_interrupts_queue_; |
1347 | 1354 |
1348 #define GLOBAL_BACKING_STORE(type, name, initialvalue) \ | 1355 #define GLOBAL_BACKING_STORE(type, name, initialvalue) \ |
1349 type name##_; | 1356 type name##_; |
1350 ISOLATE_INIT_LIST(GLOBAL_BACKING_STORE) | 1357 ISOLATE_INIT_LIST(GLOBAL_BACKING_STORE) |
(...skipping 289 matching lines...) Loading... |
1640 | 1647 |
1641 EmbeddedVector<char, 128> filename_; | 1648 EmbeddedVector<char, 128> filename_; |
1642 FILE* file_; | 1649 FILE* file_; |
1643 int scope_depth_; | 1650 int scope_depth_; |
1644 }; | 1651 }; |
1645 | 1652 |
1646 } // namespace internal | 1653 } // namespace internal |
1647 } // namespace v8 | 1654 } // namespace v8 |
1648 | 1655 |
1649 #endif // V8_ISOLATE_H_ | 1656 #endif // V8_ISOLATE_H_ |
OLD | NEW |