OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #include "vm/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 "When possible, partially or fully overlap the type arguments of a type " | 55 "When possible, partially or fully overlap the type arguments of a type " |
56 "with the type arguments of its super type."); | 56 "with the type arguments of its super type."); |
57 DEFINE_FLAG(bool, show_internal_names, false, | 57 DEFINE_FLAG(bool, show_internal_names, false, |
58 "Show names of internal classes (e.g. \"OneByteString\") in error messages " | 58 "Show names of internal classes (e.g. \"OneByteString\") in error messages " |
59 "instead of showing the corresponding interface names (e.g. \"String\")"); | 59 "instead of showing the corresponding interface names (e.g. \"String\")"); |
60 DEFINE_FLAG(bool, trace_disabling_optimized_code, false, | 60 DEFINE_FLAG(bool, trace_disabling_optimized_code, false, |
61 "Trace disabling optimized code."); | 61 "Trace disabling optimized code."); |
62 DEFINE_FLAG(bool, throw_on_javascript_int_overflow, false, | 62 DEFINE_FLAG(bool, throw_on_javascript_int_overflow, false, |
63 "Throw an exception when the result of an integer calculation will not " | 63 "Throw an exception when the result of an integer calculation will not " |
64 "fit into a javascript integer."); | 64 "fit into a javascript integer."); |
| 65 DEFINE_FLAG(bool, use_field_guards, true, "Guard field cids."); |
65 DEFINE_FLAG(bool, use_lib_cache, true, "Use library name cache"); | 66 DEFINE_FLAG(bool, use_lib_cache, true, "Use library name cache"); |
66 | 67 |
67 DECLARE_FLAG(bool, eliminate_type_checks); | 68 DECLARE_FLAG(bool, eliminate_type_checks); |
68 DECLARE_FLAG(bool, enable_type_checks); | 69 DECLARE_FLAG(bool, enable_type_checks); |
69 DECLARE_FLAG(bool, error_on_bad_override); | 70 DECLARE_FLAG(bool, error_on_bad_override); |
70 DECLARE_FLAG(bool, trace_compiler); | 71 DECLARE_FLAG(bool, trace_compiler); |
71 DECLARE_FLAG(bool, trace_deoptimization); | 72 DECLARE_FLAG(bool, trace_deoptimization); |
72 DECLARE_FLAG(bool, trace_deoptimization_verbose); | 73 DECLARE_FLAG(bool, trace_deoptimization_verbose); |
73 DECLARE_FLAG(bool, verbose_stacktrace); | 74 DECLARE_FLAG(bool, verbose_stacktrace); |
74 DECLARE_FLAG(charp, coverage_dir); | 75 DECLARE_FLAG(charp, coverage_dir); |
(...skipping 6700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6775 result.set_value(Object::null_instance()); | 6776 result.set_value(Object::null_instance()); |
6776 } else { | 6777 } else { |
6777 result.SetOffset(0); | 6778 result.SetOffset(0); |
6778 } | 6779 } |
6779 result.set_is_final(is_final); | 6780 result.set_is_final(is_final); |
6780 result.set_is_const(is_const); | 6781 result.set_is_const(is_const); |
6781 result.set_owner(owner); | 6782 result.set_owner(owner); |
6782 result.set_token_pos(token_pos); | 6783 result.set_token_pos(token_pos); |
6783 result.set_has_initializer(false); | 6784 result.set_has_initializer(false); |
6784 result.set_is_unboxing_candidate(true); | 6785 result.set_is_unboxing_candidate(true); |
6785 result.set_guarded_cid(kIllegalCid); | 6786 result.set_guarded_cid(FLAG_use_field_guards ? kIllegalCid : kDynamicCid); |
6786 result.set_is_nullable(false); | 6787 result.set_is_nullable(FLAG_use_field_guards ? false : true); |
6787 // Presently, we only attempt to remember the list length for final fields. | 6788 // Presently, we only attempt to remember the list length for final fields. |
6788 if (is_final) { | 6789 if (is_final && FLAG_use_field_guards) { |
6789 result.set_guarded_list_length(Field::kUnknownFixedLength); | 6790 result.set_guarded_list_length(Field::kUnknownFixedLength); |
6790 } else { | 6791 } else { |
6791 result.set_guarded_list_length(Field::kNoFixedLength); | 6792 result.set_guarded_list_length(Field::kNoFixedLength); |
6792 } | 6793 } |
6793 result.set_dependent_code(Object::null_array()); | 6794 result.set_dependent_code(Object::null_array()); |
6794 return result.raw(); | 6795 return result.raw(); |
6795 } | 6796 } |
6796 | 6797 |
6797 | 6798 |
6798 | 6799 |
(...skipping 12066 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18865 return tag_label.ToCString(); | 18866 return tag_label.ToCString(); |
18866 } | 18867 } |
18867 | 18868 |
18868 | 18869 |
18869 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 18870 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
18870 Instance::PrintJSONImpl(stream, ref); | 18871 Instance::PrintJSONImpl(stream, ref); |
18871 } | 18872 } |
18872 | 18873 |
18873 | 18874 |
18874 } // namespace dart | 18875 } // namespace dart |
OLD | NEW |