| 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 <queue> | 8 #include <queue> |
| 9 #include "include/v8-debug.h" | 9 #include "include/v8-debug.h" |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 V(int32_t, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \ | 354 V(int32_t, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \ |
| 355 V(int, bad_char_shift_table, kUC16AlphabetSize) \ | 355 V(int, bad_char_shift_table, kUC16AlphabetSize) \ |
| 356 V(int, good_suffix_shift_table, (kBMMaxShift + 1)) \ | 356 V(int, good_suffix_shift_table, (kBMMaxShift + 1)) \ |
| 357 V(int, suffix_table, (kBMMaxShift + 1)) \ | 357 V(int, suffix_table, (kBMMaxShift + 1)) \ |
| 358 V(uint32_t, private_random_seed, 2) \ | 358 V(uint32_t, private_random_seed, 2) \ |
| 359 ISOLATE_INIT_DEBUG_ARRAY_LIST(V) | 359 ISOLATE_INIT_DEBUG_ARRAY_LIST(V) |
| 360 | 360 |
| 361 typedef List<HeapObject*> DebugObjectCache; | 361 typedef List<HeapObject*> DebugObjectCache; |
| 362 | 362 |
| 363 #define ISOLATE_INIT_LIST(V) \ | 363 #define ISOLATE_INIT_LIST(V) \ |
| 364 /* SerializerDeserializer state. */ \ | |
| 365 V(int, serialize_partial_snapshot_cache_length, 0) \ | |
| 366 V(int, serialize_partial_snapshot_cache_capacity, 0) \ | |
| 367 V(Object**, serialize_partial_snapshot_cache, NULL) \ | |
| 368 /* Assembler state. */ \ | 364 /* Assembler state. */ \ |
| 369 V(FatalErrorCallback, exception_behavior, NULL) \ | 365 V(FatalErrorCallback, exception_behavior, NULL) \ |
| 370 V(LogEventCallback, event_logger, NULL) \ | 366 V(LogEventCallback, event_logger, NULL) \ |
| 371 V(AllowCodeGenerationFromStringsCallback, allow_code_gen_callback, NULL) \ | 367 V(AllowCodeGenerationFromStringsCallback, allow_code_gen_callback, NULL) \ |
| 372 /* To distinguish the function templates, so that we can find them in the */ \ | 368 /* To distinguish the function templates, so that we can find them in the */ \ |
| 373 /* function cache of the native context. */ \ | 369 /* function cache of the native context. */ \ |
| 374 V(int, next_serial_number, 0) \ | 370 V(int, next_serial_number, 0) \ |
| 375 V(ExternalReferenceRedirectorPointer*, external_reference_redirector, NULL) \ | 371 V(ExternalReferenceRedirectorPointer*, external_reference_redirector, NULL) \ |
| 376 /* Part of the state of liveedit. */ \ | 372 /* Part of the state of liveedit. */ \ |
| 377 V(FunctionInfoListener*, active_function_info_listener, NULL) \ | 373 V(FunctionInfoListener*, active_function_info_listener, NULL) \ |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 642 thread_local_top_.scheduled_exception_ = heap_.the_hole_value(); | 638 thread_local_top_.scheduled_exception_ = heap_.the_hole_value(); |
| 643 } | 639 } |
| 644 | 640 |
| 645 bool HasExternalTryCatch(); | 641 bool HasExternalTryCatch(); |
| 646 bool IsFinallyOnTop(); | 642 bool IsFinallyOnTop(); |
| 647 | 643 |
| 648 bool is_catchable_by_javascript(Object* exception) { | 644 bool is_catchable_by_javascript(Object* exception) { |
| 649 return exception != heap()->termination_exception(); | 645 return exception != heap()->termination_exception(); |
| 650 } | 646 } |
| 651 | 647 |
| 652 // Serializer. | |
| 653 void PushToPartialSnapshotCache(Object* obj); | |
| 654 | |
| 655 // JS execution stack (see frames.h). | 648 // JS execution stack (see frames.h). |
| 656 static Address c_entry_fp(ThreadLocalTop* thread) { | 649 static Address c_entry_fp(ThreadLocalTop* thread) { |
| 657 return thread->c_entry_fp_; | 650 return thread->c_entry_fp_; |
| 658 } | 651 } |
| 659 static Address handler(ThreadLocalTop* thread) { return thread->handler_; } | 652 static Address handler(ThreadLocalTop* thread) { return thread->handler_; } |
| 660 Address c_function() { return thread_local_top_.c_function_; } | 653 Address c_function() { return thread_local_top_.c_function_; } |
| 661 | 654 |
| 662 inline Address* c_entry_fp_address() { | 655 inline Address* c_entry_fp_address() { |
| 663 return &thread_local_top_.c_entry_fp_; | 656 return &thread_local_top_.c_entry_fp_; |
| 664 } | 657 } |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1132 store_buffer_hash_set_2_address_ = store_buffer_hash_set_2_address; | 1125 store_buffer_hash_set_2_address_ = store_buffer_hash_set_2_address; |
| 1133 } | 1126 } |
| 1134 | 1127 |
| 1135 uintptr_t* store_buffer_hash_set_2_address() { | 1128 uintptr_t* store_buffer_hash_set_2_address() { |
| 1136 return store_buffer_hash_set_2_address_; | 1129 return store_buffer_hash_set_2_address_; |
| 1137 } | 1130 } |
| 1138 | 1131 |
| 1139 void AddDetachedContext(Handle<Context> context); | 1132 void AddDetachedContext(Handle<Context> context); |
| 1140 void CheckDetachedContextsAfterGC(); | 1133 void CheckDetachedContextsAfterGC(); |
| 1141 | 1134 |
| 1135 List<Object*>* partial_snapshot_cache() { return &partial_snapshot_cache_; } |
| 1136 |
| 1142 private: | 1137 private: |
| 1143 explicit Isolate(bool enable_serializer); | 1138 explicit Isolate(bool enable_serializer); |
| 1144 | 1139 |
| 1145 friend struct GlobalState; | 1140 friend struct GlobalState; |
| 1146 friend struct InitializeGlobalState; | 1141 friend struct InitializeGlobalState; |
| 1147 | 1142 |
| 1148 // These fields are accessed through the API, offsets must be kept in sync | 1143 // These fields are accessed through the API, offsets must be kept in sync |
| 1149 // with v8::internal::Internals (in include/v8.h) constants. This is also | 1144 // with v8::internal::Internals (in include/v8.h) constants. This is also |
| 1150 // verified in Isolate::Init() using runtime checks. | 1145 // verified in Isolate::Init() using runtime checks. |
| 1151 void* embedder_data_[Internals::kNumIsolateDataSlots]; | 1146 void* embedder_data_[Internals::kNumIsolateDataSlots]; |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1353 #if TRACE_MAPS | 1348 #if TRACE_MAPS |
| 1354 int next_unique_sfi_id_; | 1349 int next_unique_sfi_id_; |
| 1355 #endif | 1350 #endif |
| 1356 | 1351 |
| 1357 // List of callbacks when a Call completes. | 1352 // List of callbacks when a Call completes. |
| 1358 List<CallCompletedCallback> call_completed_callbacks_; | 1353 List<CallCompletedCallback> call_completed_callbacks_; |
| 1359 | 1354 |
| 1360 v8::Isolate::UseCounterCallback use_counter_callback_; | 1355 v8::Isolate::UseCounterCallback use_counter_callback_; |
| 1361 BasicBlockProfiler* basic_block_profiler_; | 1356 BasicBlockProfiler* basic_block_profiler_; |
| 1362 | 1357 |
| 1358 List<Object*> partial_snapshot_cache_; |
| 1363 | 1359 |
| 1364 friend class ExecutionAccess; | 1360 friend class ExecutionAccess; |
| 1365 friend class HandleScopeImplementer; | 1361 friend class HandleScopeImplementer; |
| 1366 friend class OptimizingCompilerThread; | 1362 friend class OptimizingCompilerThread; |
| 1367 friend class SweeperThread; | 1363 friend class SweeperThread; |
| 1368 friend class ThreadManager; | 1364 friend class ThreadManager; |
| 1369 friend class Simulator; | 1365 friend class Simulator; |
| 1370 friend class StackGuard; | 1366 friend class StackGuard; |
| 1371 friend class ThreadId; | 1367 friend class ThreadId; |
| 1372 friend class TestMemoryAllocatorScope; | 1368 friend class TestMemoryAllocatorScope; |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1581 } | 1577 } |
| 1582 | 1578 |
| 1583 EmbeddedVector<char, 128> filename_; | 1579 EmbeddedVector<char, 128> filename_; |
| 1584 FILE* file_; | 1580 FILE* file_; |
| 1585 int scope_depth_; | 1581 int scope_depth_; |
| 1586 }; | 1582 }; |
| 1587 | 1583 |
| 1588 } } // namespace v8::internal | 1584 } } // namespace v8::internal |
| 1589 | 1585 |
| 1590 #endif // V8_ISOLATE_H_ | 1586 #endif // V8_ISOLATE_H_ |
| OLD | NEW |