| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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/debugger.h" | 5 #include "vm/debugger.h" |
| 6 #include "vm/disassembler.h" | 6 #include "vm/disassembler.h" |
| 7 #include "vm/object.h" | 7 #include "vm/object.h" |
| 8 #include "vm/object_store.h" | 8 #include "vm/object_store.h" |
| 9 #include "vm/stub_code.h" | 9 #include "vm/stub_code.h" |
| 10 #include "vm/symbols.h" | 10 #include "vm/symbols.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { | 77 void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 78 Isolate* isolate = Isolate::Current(); | 78 Isolate* isolate = Isolate::Current(); |
| 79 JSONObject jsobj(stream); | 79 JSONObject jsobj(stream); |
| 80 if ((raw() == Class::null()) || (id() == kFreeListElement)) { | 80 if ((raw() == Class::null()) || (id() == kFreeListElement)) { |
| 81 // TODO(turnidge): This is weird and needs to be changed. | 81 // TODO(turnidge): This is weird and needs to be changed. |
| 82 jsobj.AddProperty("type", "null"); | 82 jsobj.AddProperty("type", "null"); |
| 83 return; | 83 return; |
| 84 } | 84 } |
| 85 AddCommonObjectProperties(&jsobj, "Class", ref); | 85 AddCommonObjectProperties(&jsobj, "Class", ref); |
| 86 jsobj.AddFixedServiceId("classes/%" Pd "", id()); | 86 jsobj.AddFixedServiceId("classes/%" Pd "", id()); |
| 87 const String& user_name = String::Handle(PrettyName()); | 87 const String& scrubbed_name = String::Handle(ScrubbedName()); |
| 88 const String& vm_name = String::Handle(Name()); | 88 const String& vm_name = String::Handle(Name()); |
| 89 AddNameProperties(&jsobj, user_name, vm_name); | 89 AddNameProperties(&jsobj, scrubbed_name, vm_name); |
| 90 if (ref) { | 90 if (ref) { |
| 91 return; | 91 return; |
| 92 } | 92 } |
| 93 | 93 |
| 94 const Error& err = Error::Handle(EnsureIsFinalized(Thread::Current())); | 94 const Error& err = Error::Handle(EnsureIsFinalized(Thread::Current())); |
| 95 if (!err.IsNull()) { | 95 if (!err.IsNull()) { |
| 96 jsobj.AddProperty("error", err); | 96 jsobj.AddProperty("error", err); |
| 97 } | 97 } |
| 98 jsobj.AddProperty("abstract", is_abstract()); | 98 jsobj.AddProperty("abstract", is_abstract()); |
| 99 jsobj.AddProperty("const", is_const()); | 99 jsobj.AddProperty("const", is_const()); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 JSONObject jsobj(stream); | 177 JSONObject jsobj(stream); |
| 178 // The index in the canonical_type_arguments table cannot be used as part of | 178 // The index in the canonical_type_arguments table cannot be used as part of |
| 179 // the object id (as in typearguments/id), because the indices are not | 179 // the object id (as in typearguments/id), because the indices are not |
| 180 // preserved when the table grows and the entries get rehashed. Use the ring. | 180 // preserved when the table grows and the entries get rehashed. Use the ring. |
| 181 Isolate* isolate = Isolate::Current(); | 181 Isolate* isolate = Isolate::Current(); |
| 182 ObjectStore* object_store = isolate->object_store(); | 182 ObjectStore* object_store = isolate->object_store(); |
| 183 const Array& table = Array::Handle(object_store->canonical_type_arguments()); | 183 const Array& table = Array::Handle(object_store->canonical_type_arguments()); |
| 184 ASSERT(table.Length() > 0); | 184 ASSERT(table.Length() > 0); |
| 185 AddCommonObjectProperties(&jsobj, "TypeArguments", ref); | 185 AddCommonObjectProperties(&jsobj, "TypeArguments", ref); |
| 186 jsobj.AddServiceId(*this); | 186 jsobj.AddServiceId(*this); |
| 187 const String& user_name = String::Handle(PrettyName()); | 187 const String& user_name = String::Handle(UserVisibleName()); |
| 188 const String& vm_name = String::Handle(Name()); | 188 const String& vm_name = String::Handle(Name()); |
| 189 AddNameProperties(&jsobj, user_name, vm_name); | 189 AddNameProperties(&jsobj, user_name, vm_name); |
| 190 if (ref) { | 190 if (ref) { |
| 191 return; | 191 return; |
| 192 } | 192 } |
| 193 { | 193 { |
| 194 JSONArray jsarr(&jsobj, "types"); | 194 JSONArray jsarr(&jsobj, "types"); |
| 195 AbstractType& type_arg = AbstractType::Handle(); | 195 AbstractType& type_arg = AbstractType::Handle(); |
| 196 for (intptr_t i = 0; i < Length(); i++) { | 196 for (intptr_t i = 0; i < Length(); i++) { |
| 197 type_arg = TypeAt(i); | 197 type_arg = TypeAt(i); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 | 263 |
| 264 void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { | 264 void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 265 Class& cls = Class::Handle(Owner()); | 265 Class& cls = Class::Handle(Owner()); |
| 266 ASSERT(!cls.IsNull()); | 266 ASSERT(!cls.IsNull()); |
| 267 Error& err = Error::Handle(); | 267 Error& err = Error::Handle(); |
| 268 err ^= cls.EnsureIsFinalized(Thread::Current()); | 268 err ^= cls.EnsureIsFinalized(Thread::Current()); |
| 269 ASSERT(err.IsNull()); | 269 ASSERT(err.IsNull()); |
| 270 JSONObject jsobj(stream); | 270 JSONObject jsobj(stream); |
| 271 AddCommonObjectProperties(&jsobj, "Function", ref); | 271 AddCommonObjectProperties(&jsobj, "Function", ref); |
| 272 AddFunctionServiceId(jsobj, *this, cls); | 272 AddFunctionServiceId(jsobj, *this, cls); |
| 273 const String& user_name = String::Handle(PrettyName()); | 273 const String& user_name = String::Handle(UserVisibleName()); |
| 274 const String& vm_name = String::Handle(name()); | 274 const String& vm_name = String::Handle(name()); |
| 275 AddNameProperties(&jsobj, user_name, vm_name); | 275 AddNameProperties(&jsobj, user_name, vm_name); |
| 276 const Function& parent = Function::Handle(parent_function()); | 276 const Function& parent = Function::Handle(parent_function()); |
| 277 if (!parent.IsNull()) { | 277 if (!parent.IsNull()) { |
| 278 jsobj.AddProperty("owner", parent); | 278 jsobj.AddProperty("owner", parent); |
| 279 } else if (cls.IsTopLevel()) { | 279 } else if (cls.IsTopLevel()) { |
| 280 const Library& library = Library::Handle(cls.library()); | 280 const Library& library = Library::Handle(cls.library()); |
| 281 jsobj.AddProperty("owner", library); | 281 jsobj.AddProperty("owner", library); |
| 282 } else { | 282 } else { |
| 283 jsobj.AddProperty("owner", cls); | 283 jsobj.AddProperty("owner", cls); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 | 334 |
| 335 void Field::PrintJSONImpl(JSONStream* stream, bool ref) const { | 335 void Field::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 336 JSONObject jsobj(stream); | 336 JSONObject jsobj(stream); |
| 337 Class& cls = Class::Handle(owner()); | 337 Class& cls = Class::Handle(owner()); |
| 338 String& field_name = String::Handle(name()); | 338 String& field_name = String::Handle(name()); |
| 339 field_name = String::EncodeIRI(field_name); | 339 field_name = String::EncodeIRI(field_name); |
| 340 AddCommonObjectProperties(&jsobj, "Field", ref); | 340 AddCommonObjectProperties(&jsobj, "Field", ref); |
| 341 jsobj.AddFixedServiceId("classes/%" Pd "/fields/%s", | 341 jsobj.AddFixedServiceId("classes/%" Pd "/fields/%s", |
| 342 cls.id(), field_name.ToCString()); | 342 cls.id(), field_name.ToCString()); |
| 343 | 343 |
| 344 const String& user_name = String::Handle(PrettyName()); | 344 const String& user_name = String::Handle(UserVisibleName()); |
| 345 const String& vm_name = String::Handle(name()); | 345 const String& vm_name = String::Handle(name()); |
| 346 AddNameProperties(&jsobj, user_name, vm_name); | 346 AddNameProperties(&jsobj, user_name, vm_name); |
| 347 if (cls.IsTopLevel()) { | 347 if (cls.IsTopLevel()) { |
| 348 const Library& library = Library::Handle(cls.library()); | 348 const Library& library = Library::Handle(cls.library()); |
| 349 jsobj.AddProperty("owner", library); | 349 jsobj.AddProperty("owner", library); |
| 350 } else { | 350 } else { |
| 351 jsobj.AddProperty("owner", cls); | 351 jsobj.AddProperty("owner", cls); |
| 352 } | 352 } |
| 353 | 353 |
| 354 AbstractType& declared_type = AbstractType::Handle(type()); | 354 AbstractType& declared_type = AbstractType::Handle(type()); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 } | 474 } |
| 475 | 475 |
| 476 | 476 |
| 477 void Library::PrintJSONImpl(JSONStream* stream, bool ref) const { | 477 void Library::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 478 intptr_t id = index(); | 478 intptr_t id = index(); |
| 479 ASSERT(id >= 0); | 479 ASSERT(id >= 0); |
| 480 JSONObject jsobj(stream); | 480 JSONObject jsobj(stream); |
| 481 AddCommonObjectProperties(&jsobj, "Library", ref); | 481 AddCommonObjectProperties(&jsobj, "Library", ref); |
| 482 jsobj.AddFixedServiceId("libraries/%" Pd "", id); | 482 jsobj.AddFixedServiceId("libraries/%" Pd "", id); |
| 483 const String& vm_name = String::Handle(name()); | 483 const String& vm_name = String::Handle(name()); |
| 484 const String& user_name = | 484 const String& scrubbed_name = String::Handle(String::ScrubName(vm_name)); |
| 485 String::Handle(String::IdentifierPrettyName(vm_name)); | 485 AddNameProperties(&jsobj, scrubbed_name, vm_name); |
| 486 AddNameProperties(&jsobj, user_name, vm_name); | |
| 487 const String& library_url = String::Handle(url()); | 486 const String& library_url = String::Handle(url()); |
| 488 jsobj.AddPropertyStr("uri", library_url); | 487 jsobj.AddPropertyStr("uri", library_url); |
| 489 if (ref) { | 488 if (ref) { |
| 490 return; | 489 return; |
| 491 } | 490 } |
| 492 jsobj.AddProperty("debuggable", IsDebuggable()); | 491 jsobj.AddProperty("debuggable", IsDebuggable()); |
| 493 { | 492 { |
| 494 JSONArray jsarr(&jsobj, "classes"); | 493 JSONArray jsarr(&jsobj, "classes"); |
| 495 ClassDictionaryIterator class_iter(*this); | 494 ClassDictionaryIterator class_iter(*this); |
| 496 Class& klass = Class::Handle(); | 495 Class& klass = Class::Handle(); |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 } | 811 } |
| 813 } | 812 } |
| 814 | 813 |
| 815 | 814 |
| 816 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { | 815 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 817 JSONObject jsobj(stream); | 816 JSONObject jsobj(stream); |
| 818 AddCommonObjectProperties(&jsobj, "Code", ref); | 817 AddCommonObjectProperties(&jsobj, "Code", ref); |
| 819 jsobj.AddFixedServiceId("code/%" Px64"-%" Px "", | 818 jsobj.AddFixedServiceId("code/%" Px64"-%" Px "", |
| 820 compile_timestamp(), | 819 compile_timestamp(), |
| 821 EntryPoint()); | 820 EntryPoint()); |
| 822 const String& user_name = String::Handle(PrettyName()); | 821 const String& qualified_name = String::Handle(QualifiedName()); |
| 823 const String& vm_name = String::Handle(Name()); | 822 const String& vm_name = String::Handle(Name()); |
| 824 AddNameProperties(&jsobj, user_name, vm_name); | 823 AddNameProperties(&jsobj, qualified_name, vm_name); |
| 825 const bool is_stub = IsStubCode() || IsAllocationStubCode(); | 824 const bool is_stub = IsStubCode() || IsAllocationStubCode(); |
| 826 if (is_stub) { | 825 if (is_stub) { |
| 827 jsobj.AddProperty("kind", "Stub"); | 826 jsobj.AddProperty("kind", "Stub"); |
| 828 } else { | 827 } else { |
| 829 jsobj.AddProperty("kind", "Dart"); | 828 jsobj.AddProperty("kind", "Dart"); |
| 830 } | 829 } |
| 831 jsobj.AddProperty("_optimized", is_optimized()); | 830 jsobj.AddProperty("_optimized", is_optimized()); |
| 832 const Object& obj = Object::Handle(owner()); | 831 const Object& obj = Object::Handle(owner()); |
| 833 if (obj.IsFunction()) { | 832 if (obj.IsFunction()) { |
| 834 const Function& func = Function::Cast(obj); | 833 const Function& func = Function::Cast(obj); |
| 835 jsobj.AddProperty("_intrinsic", func.is_intrinsic()); | 834 jsobj.AddProperty("_intrinsic", func.is_intrinsic()); |
| 836 jsobj.AddProperty("_native", func.is_native()); | 835 jsobj.AddProperty("_native", func.is_native()); |
| 837 } else { | 836 } else { |
| 838 jsobj.AddProperty("_intrinsic", false); | 837 jsobj.AddProperty("_intrinsic", false); |
| 839 jsobj.AddProperty("_native", false); | 838 jsobj.AddProperty("_native", false); |
| 840 } | 839 } |
| 841 if (ref) { | 840 if (ref) { |
| 842 return; | 841 return; |
| 843 } | 842 } |
| 844 if (obj.IsFunction()) { | 843 if (obj.IsFunction()) { |
| 845 jsobj.AddProperty("function", obj); | 844 jsobj.AddProperty("function", obj); |
| 846 } else { | 845 } else { |
| 847 // Generate a fake function reference. | 846 // Generate a fake function reference. |
| 848 JSONObject func(&jsobj, "function"); | 847 JSONObject func(&jsobj, "function"); |
| 849 func.AddProperty("type", "@Function"); | 848 func.AddProperty("type", "@Function"); |
| 850 func.AddProperty("_kind", "Stub"); | 849 func.AddProperty("_kind", "Stub"); |
| 851 func.AddProperty("name", user_name.ToCString()); | 850 ASSERT(qualified_name.Equals(vm_name)); |
| 852 AddNameProperties(&func, user_name, vm_name); | 851 func.AddProperty("name", vm_name.ToCString()); |
| 852 AddNameProperties(&func, vm_name, vm_name); |
| 853 } | 853 } |
| 854 jsobj.AddPropertyF("_startAddress", "%" Px "", EntryPoint()); | 854 jsobj.AddPropertyF("_startAddress", "%" Px "", EntryPoint()); |
| 855 jsobj.AddPropertyF("_endAddress", "%" Px "", EntryPoint() + Size()); | 855 jsobj.AddPropertyF("_endAddress", "%" Px "", EntryPoint() + Size()); |
| 856 jsobj.AddProperty("_alive", is_alive()); | 856 jsobj.AddProperty("_alive", is_alive()); |
| 857 const ObjectPool& object_pool = ObjectPool::Handle(GetObjectPool()); | 857 const ObjectPool& object_pool = ObjectPool::Handle(GetObjectPool()); |
| 858 jsobj.AddProperty("_objectPool", object_pool); | 858 jsobj.AddProperty("_objectPool", object_pool); |
| 859 { | 859 { |
| 860 JSONArray jsarr(&jsobj, "_disassembly"); | 860 JSONArray jsarr(&jsobj, "_disassembly"); |
| 861 if (is_alive()) { | 861 if (is_alive()) { |
| 862 // Only disassemble alive code objects. | 862 // Only disassemble alive code objects. |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1115 if (IsCanonical()) { | 1115 if (IsCanonical()) { |
| 1116 const Class& type_cls = Class::Handle(type_class()); | 1116 const Class& type_cls = Class::Handle(type_class()); |
| 1117 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); | 1117 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); |
| 1118 ASSERT(id >= 0); | 1118 ASSERT(id >= 0); |
| 1119 intptr_t cid = type_cls.id(); | 1119 intptr_t cid = type_cls.id(); |
| 1120 jsobj.AddFixedServiceId("classes/%" Pd "/types/%" Pd "", cid, id); | 1120 jsobj.AddFixedServiceId("classes/%" Pd "/types/%" Pd "", cid, id); |
| 1121 jsobj.AddProperty("typeClass", type_cls); | 1121 jsobj.AddProperty("typeClass", type_cls); |
| 1122 } else { | 1122 } else { |
| 1123 jsobj.AddServiceId(*this); | 1123 jsobj.AddServiceId(*this); |
| 1124 } | 1124 } |
| 1125 const String& user_name = String::Handle(PrettyName()); | 1125 const String& user_name = String::Handle(UserVisibleName()); |
| 1126 const String& vm_name = String::Handle(Name()); | 1126 const String& vm_name = String::Handle(Name()); |
| 1127 AddNameProperties(&jsobj, user_name, vm_name); | 1127 AddNameProperties(&jsobj, user_name, vm_name); |
| 1128 if (ref) { | 1128 if (ref) { |
| 1129 return; | 1129 return; |
| 1130 } | 1130 } |
| 1131 const TypeArguments& typeArgs = TypeArguments::Handle(arguments()); | 1131 const TypeArguments& typeArgs = TypeArguments::Handle(arguments()); |
| 1132 if (!typeArgs.IsNull()) { | 1132 if (!typeArgs.IsNull()) { |
| 1133 jsobj.AddProperty("typeArguments", typeArgs); | 1133 jsobj.AddProperty("typeArguments", typeArgs); |
| 1134 } | 1134 } |
| 1135 } | 1135 } |
| 1136 | 1136 |
| 1137 | 1137 |
| 1138 void FunctionType::PrintJSONImpl(JSONStream* stream, bool ref) const { | 1138 void FunctionType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 1139 JSONObject jsobj(stream); | 1139 JSONObject jsobj(stream); |
| 1140 PrintSharedInstanceJSON(&jsobj, ref); | 1140 PrintSharedInstanceJSON(&jsobj, ref); |
| 1141 jsobj.AddProperty("kind", "FunctionType"); | 1141 jsobj.AddProperty("kind", "FunctionType"); |
| 1142 if (IsCanonical()) { | 1142 if (IsCanonical()) { |
| 1143 const Class& scope_cls = Class::Handle(scope_class()); | 1143 const Class& scope_cls = Class::Handle(scope_class()); |
| 1144 intptr_t id = scope_cls.FindCanonicalTypeIndex(*this); | 1144 intptr_t id = scope_cls.FindCanonicalTypeIndex(*this); |
| 1145 ASSERT(id >= 0); | 1145 ASSERT(id >= 0); |
| 1146 intptr_t cid = scope_cls.id(); | 1146 intptr_t cid = scope_cls.id(); |
| 1147 jsobj.AddFixedServiceId("classes/%" Pd "/types/%" Pd "", cid, id); | 1147 jsobj.AddFixedServiceId("classes/%" Pd "/types/%" Pd "", cid, id); |
| 1148 jsobj.AddProperty("scopeClass", scope_cls); | 1148 jsobj.AddProperty("scopeClass", scope_cls); |
| 1149 } else { | 1149 } else { |
| 1150 jsobj.AddServiceId(*this); | 1150 jsobj.AddServiceId(*this); |
| 1151 } | 1151 } |
| 1152 const String& user_name = String::Handle(PrettyName()); | 1152 const String& user_name = String::Handle(UserVisibleName()); |
| 1153 const String& vm_name = String::Handle(Name()); | 1153 const String& vm_name = String::Handle(Name()); |
| 1154 AddNameProperties(&jsobj, user_name, vm_name); | 1154 AddNameProperties(&jsobj, user_name, vm_name); |
| 1155 if (ref) { | 1155 if (ref) { |
| 1156 return; | 1156 return; |
| 1157 } | 1157 } |
| 1158 const TypeArguments& typeArgs = TypeArguments::Handle(arguments()); | 1158 const TypeArguments& typeArgs = TypeArguments::Handle(arguments()); |
| 1159 if (!typeArgs.IsNull()) { | 1159 if (!typeArgs.IsNull()) { |
| 1160 jsobj.AddProperty("typeArguments", typeArgs); | 1160 jsobj.AddProperty("typeArguments", typeArgs); |
| 1161 } | 1161 } |
| 1162 } | 1162 } |
| 1163 | 1163 |
| 1164 | 1164 |
| 1165 void TypeRef::PrintJSONImpl(JSONStream* stream, bool ref) const { | 1165 void TypeRef::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 1166 JSONObject jsobj(stream); | 1166 JSONObject jsobj(stream); |
| 1167 PrintSharedInstanceJSON(&jsobj, ref); | 1167 PrintSharedInstanceJSON(&jsobj, ref); |
| 1168 jsobj.AddProperty("kind", "TypeRef"); | 1168 jsobj.AddProperty("kind", "TypeRef"); |
| 1169 jsobj.AddServiceId(*this); | 1169 jsobj.AddServiceId(*this); |
| 1170 const String& user_name = String::Handle(PrettyName()); | 1170 const String& user_name = String::Handle(UserVisibleName()); |
| 1171 const String& vm_name = String::Handle(Name()); | 1171 const String& vm_name = String::Handle(Name()); |
| 1172 AddNameProperties(&jsobj, user_name, vm_name); | 1172 AddNameProperties(&jsobj, user_name, vm_name); |
| 1173 if (ref) { | 1173 if (ref) { |
| 1174 return; | 1174 return; |
| 1175 } | 1175 } |
| 1176 jsobj.AddProperty("targetType", AbstractType::Handle(type())); | 1176 jsobj.AddProperty("targetType", AbstractType::Handle(type())); |
| 1177 } | 1177 } |
| 1178 | 1178 |
| 1179 | 1179 |
| 1180 void TypeParameter::PrintJSONImpl(JSONStream* stream, bool ref) const { | 1180 void TypeParameter::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 1181 JSONObject jsobj(stream); | 1181 JSONObject jsobj(stream); |
| 1182 PrintSharedInstanceJSON(&jsobj, ref); | 1182 PrintSharedInstanceJSON(&jsobj, ref); |
| 1183 jsobj.AddProperty("kind", "TypeParameter"); | 1183 jsobj.AddProperty("kind", "TypeParameter"); |
| 1184 jsobj.AddServiceId(*this); | 1184 jsobj.AddServiceId(*this); |
| 1185 const String& user_name = String::Handle(PrettyName()); | 1185 const String& user_name = String::Handle(UserVisibleName()); |
| 1186 const String& vm_name = String::Handle(Name()); | 1186 const String& vm_name = String::Handle(Name()); |
| 1187 AddNameProperties(&jsobj, user_name, vm_name); | 1187 AddNameProperties(&jsobj, user_name, vm_name); |
| 1188 const Class& param_cls = Class::Handle(parameterized_class()); | 1188 const Class& param_cls = Class::Handle(parameterized_class()); |
| 1189 jsobj.AddProperty("parameterizedClass", param_cls); | 1189 jsobj.AddProperty("parameterizedClass", param_cls); |
| 1190 if (ref) { | 1190 if (ref) { |
| 1191 return; | 1191 return; |
| 1192 } | 1192 } |
| 1193 jsobj.AddProperty("parameterIndex", index()); | 1193 jsobj.AddProperty("parameterIndex", index()); |
| 1194 const AbstractType& upper_bound = AbstractType::Handle(bound()); | 1194 const AbstractType& upper_bound = AbstractType::Handle(bound()); |
| 1195 jsobj.AddProperty("bound", upper_bound); | 1195 jsobj.AddProperty("bound", upper_bound); |
| 1196 } | 1196 } |
| 1197 | 1197 |
| 1198 | 1198 |
| 1199 void BoundedType::PrintJSONImpl(JSONStream* stream, bool ref) const { | 1199 void BoundedType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 1200 JSONObject jsobj(stream); | 1200 JSONObject jsobj(stream); |
| 1201 PrintSharedInstanceJSON(&jsobj, ref); | 1201 PrintSharedInstanceJSON(&jsobj, ref); |
| 1202 jsobj.AddProperty("kind", "BoundedType"); | 1202 jsobj.AddProperty("kind", "BoundedType"); |
| 1203 jsobj.AddServiceId(*this); | 1203 jsobj.AddServiceId(*this); |
| 1204 const String& user_name = String::Handle(PrettyName()); | 1204 const String& user_name = String::Handle(UserVisibleName()); |
| 1205 const String& vm_name = String::Handle(Name()); | 1205 const String& vm_name = String::Handle(Name()); |
| 1206 AddNameProperties(&jsobj, user_name, vm_name); | 1206 AddNameProperties(&jsobj, user_name, vm_name); |
| 1207 if (ref) { | 1207 if (ref) { |
| 1208 return; | 1208 return; |
| 1209 } | 1209 } |
| 1210 jsobj.AddProperty("targetType", AbstractType::Handle(type())); | 1210 jsobj.AddProperty("targetType", AbstractType::Handle(type())); |
| 1211 jsobj.AddProperty("bound", AbstractType::Handle(bound())); | 1211 jsobj.AddProperty("bound", AbstractType::Handle(bound())); |
| 1212 } | 1212 } |
| 1213 | 1213 |
| 1214 | 1214 |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1593 jsobj.AddProperty("mirrorReferent", referent_handle); | 1593 jsobj.AddProperty("mirrorReferent", referent_handle); |
| 1594 } | 1594 } |
| 1595 | 1595 |
| 1596 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 1596 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 1597 Instance::PrintJSONImpl(stream, ref); | 1597 Instance::PrintJSONImpl(stream, ref); |
| 1598 } | 1598 } |
| 1599 | 1599 |
| 1600 #endif | 1600 #endif |
| 1601 | 1601 |
| 1602 } // namespace dart | 1602 } // namespace dart |
| OLD | NEW |