OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_ISOLATE_H_ | 5 #ifndef VM_ISOLATE_H_ |
6 #define VM_ISOLATE_H_ | 6 #define VM_ISOLATE_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/base_isolate.h" | 10 #include "vm/base_isolate.h" |
11 #include "vm/class_table.h" | 11 #include "vm/class_table.h" |
12 #include "vm/counters.h" | 12 #include "vm/counters.h" |
13 #include "vm/handles.h" | 13 #include "vm/handles.h" |
14 #include "vm/megamorphic_cache_table.h" | 14 #include "vm/megamorphic_cache_table.h" |
15 #include "vm/metrics.h" | 15 #include "vm/metrics.h" |
16 #include "vm/random.h" | 16 #include "vm/random.h" |
17 #include "vm/store_buffer.h" | 17 #include "vm/store_buffer.h" |
18 #include "vm/tags.h" | 18 #include "vm/tags.h" |
19 #include "vm/os_thread.h" | 19 #include "vm/os_thread.h" |
20 #include "vm/trace_buffer.h" | 20 #include "vm/trace_buffer.h" |
21 #include "vm/timer.h" | 21 #include "vm/timer.h" |
22 | 22 |
23 namespace dart { | 23 namespace dart { |
24 | 24 |
| 25 DECLARE_FLAG(bool, enable_type_checks); |
| 26 DECLARE_FLAG(bool, enable_asserts); |
| 27 DECLARE_FLAG(bool, error_on_bad_type); |
| 28 DECLARE_FLAG(bool, error_on_bad_override); |
| 29 |
25 // Forward declarations. | 30 // Forward declarations. |
26 class AbstractType; | 31 class AbstractType; |
27 class ApiState; | 32 class ApiState; |
28 class Array; | 33 class Array; |
29 class Capability; | 34 class Capability; |
30 class CHA; | 35 class CHA; |
31 class Class; | 36 class Class; |
32 class Code; | 37 class Code; |
33 class CodeIndexTable; | 38 class CodeIndexTable; |
34 class Debugger; | 39 class Debugger; |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 Mutex* mutex() const { return mutex_; } | 355 Mutex* mutex() const { return mutex_; } |
351 | 356 |
352 Debugger* debugger() const { return debugger_; } | 357 Debugger* debugger() const { return debugger_; } |
353 | 358 |
354 void set_single_step(bool value) { single_step_ = value; } | 359 void set_single_step(bool value) { single_step_ = value; } |
355 bool single_step() const { return single_step_; } | 360 bool single_step() const { return single_step_; } |
356 static intptr_t single_step_offset() { | 361 static intptr_t single_step_offset() { |
357 return OFFSET_OF(Isolate, single_step_); | 362 return OFFSET_OF(Isolate, single_step_); |
358 } | 363 } |
359 | 364 |
| 365 void set_has_compiled(bool value) { has_compiled_ = value; } |
| 366 bool has_compiled() const { return has_compiled_; } |
| 367 |
| 368 void set_strict_compilation(bool value) { strict_compilation_ = value; } |
| 369 bool strict_compilation() const { return strict_compilation_; } |
| 370 bool TypeChecksEnabled() { |
| 371 return FLAG_enable_type_checks || strict_compilation_; |
| 372 } |
| 373 bool AssertsEnabled() { |
| 374 return FLAG_enable_asserts || strict_compilation_; |
| 375 } |
| 376 bool ErrorOnBadTypeEnabled() { |
| 377 return FLAG_error_on_bad_type || strict_compilation_; |
| 378 } |
| 379 bool ErrorOnBadOverrideEnabled() { |
| 380 return FLAG_error_on_bad_override || strict_compilation_; |
| 381 } |
| 382 |
360 // Requests that the debugger resume execution. | 383 // Requests that the debugger resume execution. |
361 void Resume() { | 384 void Resume() { |
362 resume_request_ = true; | 385 resume_request_ = true; |
363 } | 386 } |
364 | 387 |
365 // Returns whether the vm service has requested that the debugger | 388 // Returns whether the vm service has requested that the debugger |
366 // resume execution. | 389 // resume execution. |
367 bool GetAndClearResumeRequest() { | 390 bool GetAndClearResumeRequest() { |
368 bool resume_request = resume_request_; | 391 bool resume_request = resume_request_; |
369 resume_request_ = false; | 392 resume_request_ = false; |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
642 ObjectStore* object_store_; | 665 ObjectStore* object_store_; |
643 uword top_exit_frame_info_; | 666 uword top_exit_frame_info_; |
644 void* init_callback_data_; | 667 void* init_callback_data_; |
645 Dart_EnvironmentCallback environment_callback_; | 668 Dart_EnvironmentCallback environment_callback_; |
646 Dart_LibraryTagHandler library_tag_handler_; | 669 Dart_LibraryTagHandler library_tag_handler_; |
647 ApiState* api_state_; | 670 ApiState* api_state_; |
648 StubCode* stub_code_; | 671 StubCode* stub_code_; |
649 Debugger* debugger_; | 672 Debugger* debugger_; |
650 bool single_step_; | 673 bool single_step_; |
651 bool resume_request_; | 674 bool resume_request_; |
| 675 bool has_compiled_; |
| 676 bool strict_compilation_; |
652 Random random_; | 677 Random random_; |
653 Simulator* simulator_; | 678 Simulator* simulator_; |
654 LongJumpScope* long_jump_base_; | 679 LongJumpScope* long_jump_base_; |
655 TimerList timer_list_; | 680 TimerList timer_list_; |
656 intptr_t deopt_id_; | 681 intptr_t deopt_id_; |
657 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_. | 682 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_. |
658 uword stack_limit_; | 683 uword stack_limit_; |
659 uword saved_stack_limit_; | 684 uword saved_stack_limit_; |
660 uword stack_base_; | 685 uword stack_base_; |
661 uword stack_overflow_flags_; | 686 uword stack_overflow_flags_; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 uint8_t* serialized_args_; | 887 uint8_t* serialized_args_; |
863 intptr_t serialized_args_len_; | 888 intptr_t serialized_args_len_; |
864 uint8_t* serialized_message_; | 889 uint8_t* serialized_message_; |
865 intptr_t serialized_message_len_; | 890 intptr_t serialized_message_len_; |
866 bool paused_; | 891 bool paused_; |
867 }; | 892 }; |
868 | 893 |
869 } // namespace dart | 894 } // namespace dart |
870 | 895 |
871 #endif // VM_ISOLATE_H_ | 896 #endif // VM_ISOLATE_H_ |
OLD | NEW |