Chromium Code Reviews| 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 1538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1549 | 1549 |
| 1550 cls = Class::New<UserTag>(); | 1550 cls = Class::New<UserTag>(); |
| 1551 } | 1551 } |
| 1552 | 1552 |
| 1553 | 1553 |
| 1554 void Object::Print() const { | 1554 void Object::Print() const { |
| 1555 OS::Print("%s\n", ToCString()); | 1555 OS::Print("%s\n", ToCString()); |
| 1556 } | 1556 } |
| 1557 | 1557 |
| 1558 | 1558 |
| 1559 static void AddNameProperties(JSONObject* jsobj, | |
| 1560 const String& name, | |
| 1561 const String& vm_name) { | |
| 1562 jsobj->AddProperty("name", name.ToCString()); | |
| 1563 if (!name.Equals(vm_name)) { | |
| 1564 jsobj->AddProperty("_vmName", vm_name.ToCString()); | |
| 1565 } | |
| 1566 } | |
| 1567 | |
| 1568 | |
| 1569 static void AddTypeProperties(JSONObject* jsobj, | |
| 1570 const char* user_type, | |
| 1571 const char* vm_type, | |
| 1572 bool ref) { | |
| 1573 bool same_type = (strcmp(user_type, vm_type) == 0); | |
| 1574 if (ref) { | |
| 1575 jsobj->AddPropertyF("type", "@%s", user_type); | |
| 1576 if (!same_type) { | |
| 1577 jsobj->AddPropertyF("_vmType", "@%s", vm_type); | |
| 1578 } | |
| 1579 } else { | |
| 1580 jsobj->AddProperty("type", user_type); | |
| 1581 if (!same_type) { | |
| 1582 jsobj->AddProperty("_vmType", vm_type); | |
| 1583 } | |
| 1584 } | |
| 1585 } | |
| 1586 | |
| 1587 | |
| 1559 void Object::PrintJSON(JSONStream* stream, bool ref) const { | 1588 void Object::PrintJSON(JSONStream* stream, bool ref) const { |
| 1560 if (IsNull()) { | 1589 if (IsNull()) { |
| 1561 JSONObject jsobj(stream); | 1590 JSONObject jsobj(stream); |
| 1562 jsobj.AddProperty("type", ref ? "@Null" : "Null"); | 1591 AddTypeProperties(&jsobj, "null", JSONType(), ref); |
| 1563 jsobj.AddProperty("id", "objects/null"); | 1592 jsobj.AddProperty("id", "objects/null"); |
| 1564 jsobj.AddProperty("valueAsString", "null"); | 1593 jsobj.AddProperty("valueAsString", "null"); |
| 1565 if (!ref) { | 1594 if (!ref) { |
| 1566 const Class& cls = Class::Handle(this->clazz()); | 1595 const Class& cls = Class::Handle(this->clazz()); |
| 1567 jsobj.AddProperty("class", cls); | 1596 jsobj.AddProperty("class", cls); |
| 1568 jsobj.AddProperty("size", raw()->Size()); | 1597 jsobj.AddProperty("size", raw()->Size()); |
| 1569 } | 1598 } |
| 1570 } else { | 1599 } else { |
| 1571 PrintJSONImpl(stream, ref); | 1600 PrintJSONImpl(stream, ref); |
| 1572 } | 1601 } |
| 1573 } | 1602 } |
| 1574 | 1603 |
| 1575 | 1604 |
| 1605 void Object::PrintJSONImpl(JSONStream* stream, bool ref) const { | |
| 1606 JSONObject jsobj(stream); | |
| 1607 AddTypeProperties(&jsobj, "Object", JSONType(), ref); | |
| 1608 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | |
| 1609 const intptr_t id = ring->GetIdForObject(raw()); | |
| 1610 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | |
| 1611 } | |
| 1612 | |
| 1613 | |
| 1576 RawString* Object::DictionaryName() const { | 1614 RawString* Object::DictionaryName() const { |
| 1577 return String::null(); | 1615 return String::null(); |
| 1578 } | 1616 } |
| 1579 | 1617 |
| 1580 | 1618 |
| 1581 void Object::InitializeObject(uword address, intptr_t class_id, intptr_t size) { | 1619 void Object::InitializeObject(uword address, intptr_t class_id, intptr_t size) { |
| 1582 // TODO(iposva): Get a proper halt instruction from the assembler which | 1620 // TODO(iposva): Get a proper halt instruction from the assembler which |
| 1583 // would be needed here for code objects. | 1621 // would be needed here for code objects. |
| 1584 uword initial_value = reinterpret_cast<uword>(null_); | 1622 uword initial_value = reinterpret_cast<uword>(null_); |
| 1585 uword cur = address; | 1623 uword cur = address; |
| (...skipping 2510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4096 const Library& lib = Library::Handle(library()); | 4134 const Library& lib = Library::Handle(library()); |
| 4097 const char* library_name = lib.IsNull() ? "" : lib.ToCString(); | 4135 const char* library_name = lib.IsNull() ? "" : lib.ToCString(); |
| 4098 const char* class_name = String::Handle(Name()).ToCString(); | 4136 const char* class_name = String::Handle(Name()).ToCString(); |
| 4099 intptr_t len = OS::SNPrint(NULL, 0, format, library_name, class_name) + 1; | 4137 intptr_t len = OS::SNPrint(NULL, 0, format, library_name, class_name) + 1; |
| 4100 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 4138 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 4101 OS::SNPrint(chars, len, format, library_name, class_name); | 4139 OS::SNPrint(chars, len, format, library_name, class_name); |
| 4102 return chars; | 4140 return chars; |
| 4103 } | 4141 } |
| 4104 | 4142 |
| 4105 | 4143 |
| 4106 static void AddNameProperties(JSONObject* jsobj, | |
| 4107 const String& name, | |
| 4108 const String& vm_name) { | |
| 4109 jsobj->AddProperty("name", name.ToCString()); | |
| 4110 if (!name.Equals(vm_name)) { | |
| 4111 jsobj->AddProperty("vmName", vm_name.ToCString()); | |
| 4112 } | |
| 4113 } | |
| 4114 | |
| 4115 | |
| 4116 void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { | 4144 void Class::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 4117 JSONObject jsobj(stream); | 4145 JSONObject jsobj(stream); |
| 4118 if ((raw() == Class::null()) || (id() == kFreeListElement)) { | 4146 if ((raw() == Class::null()) || (id() == kFreeListElement)) { |
| 4119 jsobj.AddProperty("type", "Null"); | 4147 jsobj.AddProperty("type", "Null"); |
| 4120 return; | 4148 return; |
| 4121 } | 4149 } |
| 4122 jsobj.AddProperty("type", JSONType(ref)); | 4150 AddTypeProperties(&jsobj, "Class", JSONType(), ref); |
| 4123 jsobj.AddPropertyF("id", "classes/%" Pd "", id()); | 4151 jsobj.AddPropertyF("id", "classes/%" Pd "", id()); |
| 4124 const String& user_name = String::Handle(PrettyName()); | 4152 const String& user_name = String::Handle(PrettyName()); |
| 4125 const String& vm_name = String::Handle(Name()); | 4153 const String& vm_name = String::Handle(Name()); |
| 4126 AddNameProperties(&jsobj, user_name, vm_name); | 4154 AddNameProperties(&jsobj, user_name, vm_name); |
| 4127 if (ref) { | 4155 if (ref) { |
| 4128 return; | 4156 return; |
| 4129 } | 4157 } |
| 4130 | 4158 |
| 4131 const Error& err = Error::Handle(EnsureIsFinalized(Isolate::Current())); | 4159 const Error& err = Error::Handle(EnsureIsFinalized(Isolate::Current())); |
| 4132 if (!err.IsNull()) { | 4160 if (!err.IsNull()) { |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4450 JSONObject jsobj(stream); | 4478 JSONObject jsobj(stream); |
| 4451 // The index in the canonical_type_arguments table cannot be used as part of | 4479 // The index in the canonical_type_arguments table cannot be used as part of |
| 4452 // the object id (as in typearguments/id), because the indices are not | 4480 // the object id (as in typearguments/id), because the indices are not |
| 4453 // preserved when the table grows and the entries get rehashed. Use the ring. | 4481 // preserved when the table grows and the entries get rehashed. Use the ring. |
| 4454 Isolate* isolate = Isolate::Current(); | 4482 Isolate* isolate = Isolate::Current(); |
| 4455 ObjectStore* object_store = isolate->object_store(); | 4483 ObjectStore* object_store = isolate->object_store(); |
| 4456 const Array& table = Array::Handle(object_store->canonical_type_arguments()); | 4484 const Array& table = Array::Handle(object_store->canonical_type_arguments()); |
| 4457 ASSERT(table.Length() > 0); | 4485 ASSERT(table.Length() > 0); |
| 4458 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 4486 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 4459 const intptr_t id = ring->GetIdForObject(raw()); | 4487 const intptr_t id = ring->GetIdForObject(raw()); |
| 4460 jsobj.AddProperty("type", JSONType(ref)); | 4488 AddTypeProperties(&jsobj, "TypeArguments", JSONType(), ref); |
| 4461 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 4489 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 4462 const String& user_name = String::Handle(PrettyName()); | 4490 const String& user_name = String::Handle(PrettyName()); |
| 4463 const String& vm_name = String::Handle(Name()); | 4491 const String& vm_name = String::Handle(Name()); |
| 4464 AddNameProperties(&jsobj, user_name, vm_name); | 4492 AddNameProperties(&jsobj, user_name, vm_name); |
| 4465 jsobj.AddProperty("length", Length()); | 4493 jsobj.AddProperty("length", Length()); |
| 4466 jsobj.AddProperty("numInstantiations", NumInstantiations()); | 4494 jsobj.AddProperty("numInstantiations", NumInstantiations()); |
| 4467 if (ref) { | 4495 if (ref) { |
| 4468 return; | 4496 return; |
| 4469 } | 4497 } |
| 4470 { | 4498 { |
| (...skipping 2329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6800 } | 6828 } |
| 6801 | 6829 |
| 6802 | 6830 |
| 6803 void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { | 6831 void Function::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 6804 Class& cls = Class::Handle(Owner()); | 6832 Class& cls = Class::Handle(Owner()); |
| 6805 ASSERT(!cls.IsNull()); | 6833 ASSERT(!cls.IsNull()); |
| 6806 Error& err = Error::Handle(); | 6834 Error& err = Error::Handle(); |
| 6807 err ^= cls.EnsureIsFinalized(Isolate::Current()); | 6835 err ^= cls.EnsureIsFinalized(Isolate::Current()); |
| 6808 ASSERT(err.IsNull()); | 6836 ASSERT(err.IsNull()); |
| 6809 JSONObject jsobj(stream); | 6837 JSONObject jsobj(stream); |
| 6810 jsobj.AddProperty("type", JSONType(ref)); | 6838 AddTypeProperties(&jsobj, "Function", JSONType(), ref); |
|
koda
2014/09/05 21:29:29
Might it not be useful to move the name string int
turnidge
2014/09/08 16:20:19
We will only use the function in this one location
| |
| 6811 jsobj.AddProperty("id", GetFunctionServiceId(*this, cls)); | 6839 jsobj.AddProperty("id", GetFunctionServiceId(*this, cls)); |
| 6812 const String& user_name = String::Handle(PrettyName()); | 6840 const String& user_name = String::Handle(PrettyName()); |
| 6813 const String& vm_name = String::Handle(name()); | 6841 const String& vm_name = String::Handle(name()); |
| 6814 AddNameProperties(&jsobj, user_name, vm_name); | 6842 AddNameProperties(&jsobj, user_name, vm_name); |
| 6815 if (cls.IsTopLevel()) { | 6843 if (cls.IsTopLevel()) { |
| 6816 const Library& library = Library::Handle(cls.library()); | 6844 const Library& library = Library::Handle(cls.library()); |
| 6817 jsobj.AddProperty("owningLibrary", library); | 6845 jsobj.AddProperty("owningLibrary", library); |
| 6818 } else { | 6846 } else { |
| 6819 jsobj.AddProperty("owningClass", cls); | 6847 jsobj.AddProperty("owningClass", cls); |
| 6820 } | 6848 } |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7146 OS::SNPrint(chars, len, kFormat, cls_name, field_name, kF0, kF1, kF2); | 7174 OS::SNPrint(chars, len, kFormat, cls_name, field_name, kF0, kF1, kF2); |
| 7147 return chars; | 7175 return chars; |
| 7148 } | 7176 } |
| 7149 | 7177 |
| 7150 void Field::PrintJSONImpl(JSONStream* stream, bool ref) const { | 7178 void Field::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 7151 JSONObject jsobj(stream); | 7179 JSONObject jsobj(stream); |
| 7152 Class& cls = Class::Handle(owner()); | 7180 Class& cls = Class::Handle(owner()); |
| 7153 intptr_t id = cls.FindFieldIndex(*this); | 7181 intptr_t id = cls.FindFieldIndex(*this); |
| 7154 ASSERT(id >= 0); | 7182 ASSERT(id >= 0); |
| 7155 intptr_t cid = cls.id(); | 7183 intptr_t cid = cls.id(); |
| 7156 jsobj.AddProperty("type", JSONType(ref)); | 7184 AddTypeProperties(&jsobj, "Field", JSONType(), ref); |
| 7157 jsobj.AddPropertyF("id", "classes/%" Pd "/fields/%" Pd "", cid, id); | 7185 jsobj.AddPropertyF("id", "classes/%" Pd "/fields/%" Pd "", cid, id); |
| 7158 const String& user_name = String::Handle(PrettyName()); | 7186 const String& user_name = String::Handle(PrettyName()); |
| 7159 const String& vm_name = String::Handle(name()); | 7187 const String& vm_name = String::Handle(name()); |
| 7160 AddNameProperties(&jsobj, user_name, vm_name); | 7188 AddNameProperties(&jsobj, user_name, vm_name); |
| 7161 if (is_static()) { | 7189 if (is_static()) { |
| 7162 const Instance& valueObj = Instance::Handle(value()); | 7190 const Instance& valueObj = Instance::Handle(value()); |
| 7163 jsobj.AddProperty("value", valueObj); | 7191 jsobj.AddProperty("value", valueObj); |
| 7164 } | 7192 } |
| 7165 | 7193 |
| 7166 if (cls.IsTopLevel()) { | 7194 if (cls.IsTopLevel()) { |
| (...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8466 } | 8494 } |
| 8467 } | 8495 } |
| 8468 } | 8496 } |
| 8469 return Library::null(); | 8497 return Library::null(); |
| 8470 } | 8498 } |
| 8471 | 8499 |
| 8472 | 8500 |
| 8473 // See also Dart_ScriptGetTokenInfo. | 8501 // See also Dart_ScriptGetTokenInfo. |
| 8474 void Script::PrintJSONImpl(JSONStream* stream, bool ref) const { | 8502 void Script::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 8475 JSONObject jsobj(stream); | 8503 JSONObject jsobj(stream); |
| 8476 jsobj.AddProperty("type", JSONType(ref)); | 8504 AddTypeProperties(&jsobj, "Script", JSONType(), ref); |
| 8477 const String& name = String::Handle(url()); | 8505 const String& name = String::Handle(url()); |
| 8478 ASSERT(!name.IsNull()); | 8506 ASSERT(!name.IsNull()); |
| 8479 const String& encoded_url = String::Handle(String::EncodeIRI(name)); | 8507 const String& encoded_url = String::Handle(String::EncodeIRI(name)); |
| 8480 ASSERT(!encoded_url.IsNull()); | 8508 ASSERT(!encoded_url.IsNull()); |
| 8481 const Library& lib = Library::Handle(FindLibrary()); | 8509 const Library& lib = Library::Handle(FindLibrary()); |
| 8482 intptr_t lib_index = (lib.IsNull()) ? -1 : lib.index(); | 8510 intptr_t lib_index = (lib.IsNull()) ? -1 : lib.index(); |
| 8483 jsobj.AddPropertyF("id", "libraries/%" Pd "/scripts/%s", | 8511 jsobj.AddPropertyF("id", "libraries/%" Pd "/scripts/%s", |
| 8484 lib_index, encoded_url.ToCString()); | 8512 lib_index, encoded_url.ToCString()); |
| 8485 jsobj.AddProperty("name", name.ToCString()); | 8513 jsobj.AddProperty("name", name.ToCString()); |
| 8486 jsobj.AddProperty("kind", GetKindAsCString()); | 8514 jsobj.AddProperty("kind", GetKindAsCString()); |
| (...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 9759 OS::SNPrint(chars, len, kFormat, name.ToCString()); | 9787 OS::SNPrint(chars, len, kFormat, name.ToCString()); |
| 9760 return chars; | 9788 return chars; |
| 9761 } | 9789 } |
| 9762 | 9790 |
| 9763 | 9791 |
| 9764 void Library::PrintJSONImpl(JSONStream* stream, bool ref) const { | 9792 void Library::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 9765 const char* library_name = String::Handle(name()).ToCString(); | 9793 const char* library_name = String::Handle(name()).ToCString(); |
| 9766 intptr_t id = index(); | 9794 intptr_t id = index(); |
| 9767 ASSERT(id >= 0); | 9795 ASSERT(id >= 0); |
| 9768 JSONObject jsobj(stream); | 9796 JSONObject jsobj(stream); |
| 9769 jsobj.AddProperty("type", JSONType(ref)); | 9797 AddTypeProperties(&jsobj, "Library", JSONType(), ref); |
| 9770 jsobj.AddPropertyF("id", "libraries/%" Pd "", id); | 9798 jsobj.AddPropertyF("id", "libraries/%" Pd "", id); |
| 9771 jsobj.AddProperty("name", library_name); | 9799 jsobj.AddProperty("name", library_name); |
| 9772 const char* library_url = String::Handle(url()).ToCString(); | 9800 const char* library_url = String::Handle(url()).ToCString(); |
| 9773 jsobj.AddProperty("url", library_url); | 9801 jsobj.AddProperty("url", library_url); |
| 9774 if (ref) { | 9802 if (ref) { |
| 9775 return; | 9803 return; |
| 9776 } | 9804 } |
| 9777 { | 9805 { |
| 9778 JSONArray jsarr(&jsobj, "classes"); | 9806 JSONArray jsarr(&jsobj, "classes"); |
| 9779 ClassDictionaryIterator class_iter(*this); | 9807 ClassDictionaryIterator class_iter(*this); |
| (...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 10546 KindAsStr(iter.Kind()), | 10574 KindAsStr(iter.Kind()), |
| 10547 iter.DeoptId(), | 10575 iter.DeoptId(), |
| 10548 iter.TokenPos(), | 10576 iter.TokenPos(), |
| 10549 iter.TryIndex()); | 10577 iter.TryIndex()); |
| 10550 } | 10578 } |
| 10551 return buffer; | 10579 return buffer; |
| 10552 } | 10580 } |
| 10553 | 10581 |
| 10554 | 10582 |
| 10555 void PcDescriptors::PrintToJSONObject(JSONObject* jsobj) const { | 10583 void PcDescriptors::PrintToJSONObject(JSONObject* jsobj) const { |
| 10556 jsobj->AddProperty("type", JSONType(false)); | 10584 AddTypeProperties(jsobj, "Object", JSONType(), false); |
| 10557 // TODO(johnmccutchan): Generate a valid ID. | 10585 // TODO(johnmccutchan): Generate a valid ID. |
| 10558 // PcDescriptors hang off a Code object but do not have a back reference to | 10586 // PcDescriptors hang off a Code object but do not have a back reference to |
| 10559 // generate an ID. Currently we only print PcDescriptors inline with a Code. | 10587 // generate an ID. Currently we only print PcDescriptors inline with a Code. |
| 10560 jsobj->AddProperty("id", ""); | 10588 jsobj->AddProperty("id", ""); |
| 10561 JSONArray members(jsobj, "members"); | 10589 JSONArray members(jsobj, "members"); |
| 10562 Iterator iter(*this, RawPcDescriptors::kAnyKind); | 10590 Iterator iter(*this, RawPcDescriptors::kAnyKind); |
| 10563 while (iter.MoveNext()) { | 10591 while (iter.MoveNext()) { |
| 10564 JSONObject descriptor(&members); | 10592 JSONObject descriptor(&members); |
| 10565 descriptor.AddPropertyF("pc", "%" Px "", iter.Pc()); | 10593 descriptor.AddPropertyF("pc", "%" Px "", iter.Pc()); |
| 10566 descriptor.AddProperty("kind", KindAsStr(iter.Kind())); | 10594 descriptor.AddProperty("kind", KindAsStr(iter.Kind())); |
| (...skipping 1707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12274 } else { | 12302 } else { |
| 12275 ASSERT(obj.IsFunction()); | 12303 ASSERT(obj.IsFunction()); |
| 12276 // Dart function. | 12304 // Dart function. |
| 12277 return Function::Cast(obj).QualifiedPrettyName(); | 12305 return Function::Cast(obj).QualifiedPrettyName(); |
| 12278 } | 12306 } |
| 12279 } | 12307 } |
| 12280 | 12308 |
| 12281 | 12309 |
| 12282 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { | 12310 void Code::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 12283 JSONObject jsobj(stream); | 12311 JSONObject jsobj(stream); |
| 12284 jsobj.AddProperty("type", JSONType(ref)); | 12312 AddTypeProperties(&jsobj, "Code", JSONType(), ref); |
| 12285 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(), | 12313 jsobj.AddPropertyF("id", "code/%" Px64"-%" Px "", compile_timestamp(), |
| 12286 EntryPoint()); | 12314 EntryPoint()); |
| 12287 jsobj.AddPropertyF("start", "%" Px "", EntryPoint()); | 12315 jsobj.AddPropertyF("start", "%" Px "", EntryPoint()); |
| 12288 jsobj.AddPropertyF("end", "%" Px "", EntryPoint() + Size()); | 12316 jsobj.AddPropertyF("end", "%" Px "", EntryPoint() + Size()); |
| 12289 jsobj.AddProperty("optimized", is_optimized()); | 12317 jsobj.AddProperty("optimized", is_optimized()); |
| 12290 jsobj.AddProperty("alive", is_alive()); | 12318 jsobj.AddProperty("alive", is_alive()); |
| 12291 jsobj.AddProperty("kind", "Dart"); | 12319 jsobj.AddProperty("kind", "Dart"); |
| 12292 const String& user_name = String::Handle(PrettyName()); | 12320 const String& user_name = String::Handle(PrettyName()); |
| 12293 const String& vm_name = String::Handle(Name()); | 12321 const String& vm_name = String::Handle(Name()); |
| 12294 AddNameProperties(&jsobj, user_name, vm_name); | 12322 AddNameProperties(&jsobj, user_name, vm_name); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12437 if (!parent_ctx.IsNull()) { | 12465 if (!parent_ctx.IsNull()) { |
| 12438 parent_ctx.Dump(indent + 2); | 12466 parent_ctx.Dump(indent + 2); |
| 12439 } | 12467 } |
| 12440 IndentN(indent); | 12468 IndentN(indent); |
| 12441 OS::PrintErr("}\n"); | 12469 OS::PrintErr("}\n"); |
| 12442 } | 12470 } |
| 12443 | 12471 |
| 12444 | 12472 |
| 12445 void Context::PrintJSONImpl(JSONStream* stream, bool ref) const { | 12473 void Context::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 12446 JSONObject jsobj(stream); | 12474 JSONObject jsobj(stream); |
| 12447 jsobj.AddProperty("type", JSONType(ref)); | 12475 // TODO(turnidge): Should the user level type for Context be Context |
| 12476 // or Object? | |
| 12477 AddTypeProperties(&jsobj, "Context", JSONType(), ref); | |
| 12448 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 12478 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 12449 const intptr_t id = ring->GetIdForObject(raw()); | 12479 const intptr_t id = ring->GetIdForObject(raw()); |
| 12450 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 12480 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 12451 | 12481 |
| 12452 jsobj.AddProperty("length", num_variables()); | 12482 jsobj.AddProperty("length", num_variables()); |
| 12453 | 12483 |
| 12454 if (ref) { | 12484 if (ref) { |
| 12455 return; | 12485 return; |
| 12456 } | 12486 } |
| 12457 | 12487 |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12837 } | 12867 } |
| 12838 | 12868 |
| 12839 | 12869 |
| 12840 const char* ApiError::ToCString() const { | 12870 const char* ApiError::ToCString() const { |
| 12841 return "ApiError"; | 12871 return "ApiError"; |
| 12842 } | 12872 } |
| 12843 | 12873 |
| 12844 | 12874 |
| 12845 void ApiError::PrintJSONImpl(JSONStream* stream, bool ref) const { | 12875 void ApiError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 12846 JSONObject jsobj(stream); | 12876 JSONObject jsobj(stream); |
| 12847 jsobj.AddProperty("type", "Error"); | 12877 AddTypeProperties(&jsobj, "Error", JSONType(), ref); |
| 12848 jsobj.AddProperty("id", ""); | 12878 jsobj.AddProperty("id", ""); |
| 12849 jsobj.AddProperty("kind", JSONType(false)); | |
| 12850 jsobj.AddProperty("message", ToErrorCString()); | 12879 jsobj.AddProperty("message", ToErrorCString()); |
| 12851 } | 12880 } |
| 12852 | 12881 |
| 12853 | 12882 |
| 12854 RawLanguageError* LanguageError::New() { | 12883 RawLanguageError* LanguageError::New() { |
| 12855 ASSERT(Object::language_error_class() != Class::null()); | 12884 ASSERT(Object::language_error_class() != Class::null()); |
| 12856 RawObject* raw = Object::Allocate(LanguageError::kClassId, | 12885 RawObject* raw = Object::Allocate(LanguageError::kClassId, |
| 12857 LanguageError::InstanceSize(), | 12886 LanguageError::InstanceSize(), |
| 12858 Heap::kOld); | 12887 Heap::kOld); |
| 12859 return reinterpret_cast<RawLanguageError*>(raw); | 12888 return reinterpret_cast<RawLanguageError*>(raw); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12976 } | 13005 } |
| 12977 | 13006 |
| 12978 | 13007 |
| 12979 const char* LanguageError::ToCString() const { | 13008 const char* LanguageError::ToCString() const { |
| 12980 return "LanguageError"; | 13009 return "LanguageError"; |
| 12981 } | 13010 } |
| 12982 | 13011 |
| 12983 | 13012 |
| 12984 void LanguageError::PrintJSONImpl(JSONStream* stream, bool ref) const { | 13013 void LanguageError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 12985 JSONObject jsobj(stream); | 13014 JSONObject jsobj(stream); |
| 12986 jsobj.AddProperty("type", "Error"); | 13015 AddTypeProperties(&jsobj, "Error", JSONType(), ref); |
| 12987 jsobj.AddProperty("id", ""); | 13016 jsobj.AddProperty("id", ""); |
| 12988 jsobj.AddProperty("kind", JSONType(false)); | |
| 12989 jsobj.AddProperty("message", ToErrorCString()); | 13017 jsobj.AddProperty("message", ToErrorCString()); |
| 12990 } | 13018 } |
| 12991 | 13019 |
| 12992 | 13020 |
| 12993 RawUnhandledException* UnhandledException::New(const Instance& exception, | 13021 RawUnhandledException* UnhandledException::New(const Instance& exception, |
| 12994 const Instance& stacktrace, | 13022 const Instance& stacktrace, |
| 12995 Heap::Space space) { | 13023 Heap::Space space) { |
| 12996 ASSERT(Object::unhandled_exception_class() != Class::null()); | 13024 ASSERT(Object::unhandled_exception_class() != Class::null()); |
| 12997 UnhandledException& result = UnhandledException::Handle(); | 13025 UnhandledException& result = UnhandledException::Handle(); |
| 12998 { | 13026 { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 13071 | 13099 |
| 13072 const char* UnhandledException::ToCString() const { | 13100 const char* UnhandledException::ToCString() const { |
| 13073 return "UnhandledException"; | 13101 return "UnhandledException"; |
| 13074 } | 13102 } |
| 13075 | 13103 |
| 13076 | 13104 |
| 13077 | 13105 |
| 13078 void UnhandledException::PrintJSONImpl(JSONStream* stream, | 13106 void UnhandledException::PrintJSONImpl(JSONStream* stream, |
| 13079 bool ref) const { | 13107 bool ref) const { |
| 13080 JSONObject jsobj(stream); | 13108 JSONObject jsobj(stream); |
| 13081 jsobj.AddProperty("type", "Error"); | 13109 AddTypeProperties(&jsobj, "Error", JSONType(), ref); |
| 13082 jsobj.AddProperty("id", ""); | 13110 jsobj.AddProperty("id", ""); |
| 13083 jsobj.AddProperty("kind", JSONType(false)); | |
| 13084 jsobj.AddProperty("message", ToErrorCString()); | 13111 jsobj.AddProperty("message", ToErrorCString()); |
| 13085 | 13112 |
| 13086 Instance& instance = Instance::Handle(); | 13113 Instance& instance = Instance::Handle(); |
| 13087 instance = exception(); | 13114 instance = exception(); |
| 13088 jsobj.AddProperty("exception", instance); | 13115 jsobj.AddProperty("exception", instance); |
| 13089 instance = stacktrace(); | 13116 instance = stacktrace(); |
| 13090 jsobj.AddProperty("stacktrace", instance); | 13117 jsobj.AddProperty("stacktrace", instance); |
| 13091 } | 13118 } |
| 13092 | 13119 |
| 13093 | 13120 |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 13117 } | 13144 } |
| 13118 | 13145 |
| 13119 | 13146 |
| 13120 const char* UnwindError::ToCString() const { | 13147 const char* UnwindError::ToCString() const { |
| 13121 return "UnwindError"; | 13148 return "UnwindError"; |
| 13122 } | 13149 } |
| 13123 | 13150 |
| 13124 | 13151 |
| 13125 void UnwindError::PrintJSONImpl(JSONStream* stream, bool ref) const { | 13152 void UnwindError::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 13126 JSONObject jsobj(stream); | 13153 JSONObject jsobj(stream); |
| 13127 jsobj.AddProperty("type", "Error"); | 13154 AddTypeProperties(&jsobj, "Error", JSONType(), ref); |
| 13128 jsobj.AddProperty("id", ""); | 13155 jsobj.AddProperty("id", ""); |
| 13129 jsobj.AddProperty("kind", JSONType(false)); | |
| 13130 jsobj.AddProperty("message", ToErrorCString()); | 13156 jsobj.AddProperty("message", ToErrorCString()); |
| 13131 } | 13157 } |
| 13132 | 13158 |
| 13133 | 13159 |
| 13134 RawObject* Instance::Evaluate(const String& expr, | 13160 RawObject* Instance::Evaluate(const String& expr, |
| 13135 const Array& param_names, | 13161 const Array& param_names, |
| 13136 const Array& param_values) const { | 13162 const Array& param_values) const { |
| 13137 const Class& cls = Class::Handle(clazz()); | 13163 const Class& cls = Class::Handle(clazz()); |
| 13138 const Function& eval_func = | 13164 const Function& eval_func = |
| 13139 Function::Handle(EvaluateHelper(cls, expr, param_names, false)); | 13165 Function::Handle(EvaluateHelper(cls, expr, param_names, false)); |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 13562 const String& type_name = String::Handle(type.UserVisibleName()); | 13588 const String& type_name = String::Handle(type.UserVisibleName()); |
| 13563 // Calculate the size of the string. | 13589 // Calculate the size of the string. |
| 13564 intptr_t len = OS::SNPrint(NULL, 0, kFormat, type_name.ToCString()) + 1; | 13590 intptr_t len = OS::SNPrint(NULL, 0, kFormat, type_name.ToCString()) + 1; |
| 13565 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 13591 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 13566 OS::SNPrint(chars, len, kFormat, type_name.ToCString()); | 13592 OS::SNPrint(chars, len, kFormat, type_name.ToCString()); |
| 13567 return chars; | 13593 return chars; |
| 13568 } | 13594 } |
| 13569 } | 13595 } |
| 13570 | 13596 |
| 13571 | 13597 |
| 13572 void Instance::PrintSharedInstanceJSON(JSONObject* jsobj, bool ref) const { | 13598 void Instance::PrintSharedInstanceJSON(JSONObject* jsobj, |
| 13573 jsobj->AddProperty("type", JSONType(ref)); | 13599 bool ref) const { |
| 13574 Class& cls = Class::Handle(this->clazz()); | 13600 Class& cls = Class::Handle(this->clazz()); |
| 13575 jsobj->AddProperty("class", cls); | 13601 jsobj->AddProperty("class", cls); |
| 13576 // TODO(turnidge): Provide the type arguments here too. | 13602 // TODO(turnidge): Provide the type arguments here too. |
| 13577 if (ref) { | 13603 if (ref) { |
| 13578 return; | 13604 return; |
| 13579 } | 13605 } |
| 13580 | 13606 |
| 13581 if (raw()->IsHeapObject()) { | 13607 if (raw()->IsHeapObject()) { |
| 13582 jsobj->AddProperty("size", raw()->Size()); | 13608 jsobj->AddProperty("size", raw()->Size()); |
| 13583 } | 13609 } |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 13609 for (intptr_t i = 0; i < NumNativeFields(); i++) { | 13635 for (intptr_t i = 0; i < NumNativeFields(); i++) { |
| 13610 intptr_t value = GetNativeField(i); | 13636 intptr_t value = GetNativeField(i); |
| 13611 JSONObject jsfield(&jsarr); | 13637 JSONObject jsfield(&jsarr); |
| 13612 jsfield.AddProperty("index", i); | 13638 jsfield.AddProperty("index", i); |
| 13613 jsfield.AddProperty("value", value); | 13639 jsfield.AddProperty("value", value); |
| 13614 } | 13640 } |
| 13615 } | 13641 } |
| 13616 } | 13642 } |
| 13617 | 13643 |
| 13618 | 13644 |
| 13619 void Object::PrintJSONImpl(JSONStream* stream, bool ref) const { | |
| 13620 JSONObject jsobj(stream); | |
| 13621 jsobj.AddProperty("type", JSONType(ref)); | |
| 13622 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | |
| 13623 const intptr_t id = ring->GetIdForObject(raw()); | |
| 13624 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | |
| 13625 } | |
| 13626 | |
| 13627 | |
| 13628 void Instance::PrintJSONImpl(JSONStream* stream, bool ref) const { | 13645 void Instance::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 13629 JSONObject jsobj(stream); | 13646 JSONObject jsobj(stream); |
| 13630 | 13647 |
| 13631 // Handle certain special instance values. | 13648 // Handle certain special instance values. |
| 13632 if (raw() == Object::sentinel().raw()) { | 13649 if (raw() == Object::sentinel().raw()) { |
| 13633 jsobj.AddProperty("type", "Sentinel"); | 13650 jsobj.AddProperty("type", "Sentinel"); |
| 13634 jsobj.AddProperty("id", "objects/not-initialized"); | 13651 jsobj.AddProperty("id", "objects/not-initialized"); |
| 13635 jsobj.AddProperty("valueAsString", "<not initialized>"); | 13652 jsobj.AddProperty("valueAsString", "<not initialized>"); |
| 13636 return; | 13653 return; |
| 13637 } else if (raw() == Object::transition_sentinel().raw()) { | 13654 } else if (raw() == Object::transition_sentinel().raw()) { |
| 13638 jsobj.AddProperty("type", "Sentinel"); | 13655 jsobj.AddProperty("type", "Sentinel"); |
| 13639 jsobj.AddProperty("id", "objects/being-initialized"); | 13656 jsobj.AddProperty("id", "objects/being-initialized"); |
| 13640 jsobj.AddProperty("valueAsString", "<being initialized>"); | 13657 jsobj.AddProperty("valueAsString", "<being initialized>"); |
| 13641 return; | 13658 return; |
| 13642 } | 13659 } |
| 13643 | 13660 |
| 13661 AddTypeProperties(&jsobj, "Instance", JSONType(), ref); | |
| 13644 PrintSharedInstanceJSON(&jsobj, ref); | 13662 PrintSharedInstanceJSON(&jsobj, ref); |
| 13645 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 13663 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 13646 const intptr_t id = ring->GetIdForObject(raw()); | 13664 const intptr_t id = ring->GetIdForObject(raw()); |
| 13647 if (IsClosure()) { | 13665 if (IsClosure()) { |
| 13648 const Function& closureFunc = Function::Handle(Closure::function(*this)); | 13666 const Function& closureFunc = Function::Handle(Closure::function(*this)); |
| 13649 jsobj.AddProperty("closureFunc", closureFunc); | 13667 jsobj.AddProperty("closureFunc", closureFunc); |
| 13650 const Context& closureCtxt = Context::Handle(Closure::context(*this)); | 13668 const Context& closureCtxt = Context::Handle(Closure::context(*this)); |
| 13651 jsobj.AddProperty("closureCtxt", closureCtxt); | 13669 jsobj.AddProperty("closureCtxt", closureCtxt); |
| 13652 } | 13670 } |
| 13653 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 13671 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 14701 return chars; | 14719 return chars; |
| 14702 } | 14720 } |
| 14703 } else { | 14721 } else { |
| 14704 return "Unresolved Type"; | 14722 return "Unresolved Type"; |
| 14705 } | 14723 } |
| 14706 } | 14724 } |
| 14707 | 14725 |
| 14708 | 14726 |
| 14709 void Type::PrintJSONImpl(JSONStream* stream, bool ref) const { | 14727 void Type::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 14710 JSONObject jsobj(stream); | 14728 JSONObject jsobj(stream); |
| 14729 AddTypeProperties(&jsobj, "Type", JSONType(), ref); | |
| 14711 PrintSharedInstanceJSON(&jsobj, ref); | 14730 PrintSharedInstanceJSON(&jsobj, ref); |
| 14712 if (IsCanonical()) { | 14731 if (IsCanonical()) { |
| 14713 const Class& type_cls = Class::Handle(type_class()); | 14732 const Class& type_cls = Class::Handle(type_class()); |
| 14714 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); | 14733 intptr_t id = type_cls.FindCanonicalTypeIndex(*this); |
| 14715 ASSERT(id >= 0); | 14734 ASSERT(id >= 0); |
| 14716 intptr_t cid = type_cls.id(); | 14735 intptr_t cid = type_cls.id(); |
| 14717 jsobj.AddPropertyF("id", "classes/%" Pd "/types/%" Pd "", cid, id); | 14736 jsobj.AddPropertyF("id", "classes/%" Pd "/types/%" Pd "", cid, id); |
| 14718 jsobj.AddProperty("typeClass", type_cls); | 14737 jsobj.AddProperty("typeClass", type_cls); |
| 14719 } else { | 14738 } else { |
| 14720 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14739 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 14873 const intptr_t len = OS::SNPrint(NULL, 0, format, type_cstr) + 1; | 14892 const intptr_t len = OS::SNPrint(NULL, 0, format, type_cstr) + 1; |
| 14874 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 14893 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 14875 OS::SNPrint(chars, len, format, type_cstr); | 14894 OS::SNPrint(chars, len, format, type_cstr); |
| 14876 return chars; | 14895 return chars; |
| 14877 } | 14896 } |
| 14878 } | 14897 } |
| 14879 | 14898 |
| 14880 | 14899 |
| 14881 void TypeRef::PrintJSONImpl(JSONStream* stream, bool ref) const { | 14900 void TypeRef::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 14882 JSONObject jsobj(stream); | 14901 JSONObject jsobj(stream); |
| 14902 AddTypeProperties(&jsobj, "TypeRef", JSONType(), ref); | |
| 14883 PrintSharedInstanceJSON(&jsobj, ref); | 14903 PrintSharedInstanceJSON(&jsobj, ref); |
| 14884 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 14904 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 14885 const intptr_t id = ring->GetIdForObject(raw()); | 14905 const intptr_t id = ring->GetIdForObject(raw()); |
| 14886 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 14906 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 14887 const String& user_name = String::Handle(PrettyName()); | 14907 const String& user_name = String::Handle(PrettyName()); |
| 14888 const String& vm_name = String::Handle(Name()); | 14908 const String& vm_name = String::Handle(Name()); |
| 14889 AddNameProperties(&jsobj, user_name, vm_name); | 14909 AddNameProperties(&jsobj, user_name, vm_name); |
| 14890 if (ref) { | 14910 if (ref) { |
| 14891 return; | 14911 return; |
| 14892 } | 14912 } |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15089 intptr_t len = OS::SNPrint( | 15109 intptr_t len = OS::SNPrint( |
| 15090 NULL, 0, format, name_cstr, index(), cls_cstr, bound_cstr) + 1; | 15110 NULL, 0, format, name_cstr, index(), cls_cstr, bound_cstr) + 1; |
| 15091 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15111 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 15092 OS::SNPrint(chars, len, format, name_cstr, index(), cls_cstr, bound_cstr); | 15112 OS::SNPrint(chars, len, format, name_cstr, index(), cls_cstr, bound_cstr); |
| 15093 return chars; | 15113 return chars; |
| 15094 } | 15114 } |
| 15095 | 15115 |
| 15096 | 15116 |
| 15097 void TypeParameter::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15117 void TypeParameter::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15098 JSONObject jsobj(stream); | 15118 JSONObject jsobj(stream); |
| 15119 AddTypeProperties(&jsobj, "TypeParameter", JSONType(), ref); | |
| 15099 PrintSharedInstanceJSON(&jsobj, ref); | 15120 PrintSharedInstanceJSON(&jsobj, ref); |
| 15100 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 15121 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 15101 const intptr_t id = ring->GetIdForObject(raw()); | 15122 const intptr_t id = ring->GetIdForObject(raw()); |
| 15102 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 15123 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 15103 const String& user_name = String::Handle(PrettyName()); | 15124 const String& user_name = String::Handle(PrettyName()); |
| 15104 const String& vm_name = String::Handle(Name()); | 15125 const String& vm_name = String::Handle(Name()); |
| 15105 AddNameProperties(&jsobj, user_name, vm_name); | 15126 AddNameProperties(&jsobj, user_name, vm_name); |
| 15106 const Class& param_cls = Class::Handle(parameterized_class()); | 15127 const Class& param_cls = Class::Handle(parameterized_class()); |
| 15107 jsobj.AddProperty("parameterizedClass", param_cls); | 15128 jsobj.AddProperty("parameterizedClass", param_cls); |
| 15108 if (ref) { | 15129 if (ref) { |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15292 NULL, 0, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr) + 1; | 15313 NULL, 0, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr) + 1; |
| 15293 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15314 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 15294 OS::SNPrint( | 15315 OS::SNPrint( |
| 15295 chars, len, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr); | 15316 chars, len, format, type_cstr, bound_cstr, type_param_cstr, cls_cstr); |
| 15296 return chars; | 15317 return chars; |
| 15297 } | 15318 } |
| 15298 | 15319 |
| 15299 | 15320 |
| 15300 void BoundedType::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15321 void BoundedType::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15301 JSONObject jsobj(stream); | 15322 JSONObject jsobj(stream); |
| 15323 AddTypeProperties(&jsobj, "BoundedType", JSONType(), ref); | |
| 15302 PrintSharedInstanceJSON(&jsobj, ref); | 15324 PrintSharedInstanceJSON(&jsobj, ref); |
| 15303 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 15325 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 15304 const intptr_t id = ring->GetIdForObject(raw()); | 15326 const intptr_t id = ring->GetIdForObject(raw()); |
| 15305 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 15327 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 15306 const String& user_name = String::Handle(PrettyName()); | 15328 const String& user_name = String::Handle(PrettyName()); |
| 15307 const String& vm_name = String::Handle(Name()); | 15329 const String& vm_name = String::Handle(Name()); |
| 15308 AddNameProperties(&jsobj, user_name, vm_name); | 15330 AddNameProperties(&jsobj, user_name, vm_name); |
| 15309 if (ref) { | 15331 if (ref) { |
| 15310 return; | 15332 return; |
| 15311 } | 15333 } |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15385 | 15407 |
| 15386 | 15408 |
| 15387 const char* Number::ToCString() const { | 15409 const char* Number::ToCString() const { |
| 15388 // Number is an interface. No instances of Number should exist. | 15410 // Number is an interface. No instances of Number should exist. |
| 15389 UNREACHABLE(); | 15411 UNREACHABLE(); |
| 15390 return "Number"; | 15412 return "Number"; |
| 15391 } | 15413 } |
| 15392 | 15414 |
| 15393 | 15415 |
| 15394 void Number::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15416 void Number::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15395 JSONObject jsobj(stream); | 15417 UNREACHABLE(); |
| 15396 PrintSharedInstanceJSON(&jsobj, ref); | |
| 15397 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | |
| 15398 const intptr_t id = ring->GetIdForObject(raw()); | |
| 15399 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | |
| 15400 jsobj.AddProperty("valueAsString", ToCString()); | |
| 15401 } | 15418 } |
| 15402 | 15419 |
| 15403 | 15420 |
| 15404 const char* Integer::ToCString() const { | 15421 const char* Integer::ToCString() const { |
| 15405 // Integer is an interface. No instances of Integer should exist. | 15422 // Integer is an interface. No instances of Integer should exist. |
| 15406 UNREACHABLE(); | 15423 UNREACHABLE(); |
| 15407 return "Integer"; | 15424 return "Integer"; |
| 15408 } | 15425 } |
| 15409 | 15426 |
| 15410 | 15427 |
| 15411 void Integer::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15428 void Integer::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15412 Number::PrintJSONImpl(stream, ref); | 15429 JSONObject jsobj(stream); |
| 15430 AddTypeProperties(&jsobj, "int", JSONType(), ref); | |
| 15431 PrintSharedInstanceJSON(&jsobj, ref); | |
| 15432 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | |
| 15433 const intptr_t id = ring->GetIdForObject(raw()); | |
| 15434 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | |
| 15435 jsobj.AddProperty("valueAsString", ToCString()); | |
| 15413 } | 15436 } |
| 15414 | 15437 |
| 15415 | 15438 |
| 15416 // Throw JavascriptIntegerOverflow exception. | 15439 // Throw JavascriptIntegerOverflow exception. |
| 15417 static void ThrowJavascriptIntegerOverflow(const Integer& i) { | 15440 static void ThrowJavascriptIntegerOverflow(const Integer& i) { |
| 15418 const Array& exc_args = Array::Handle(Array::New(1)); | 15441 const Array& exc_args = Array::Handle(Array::New(1)); |
| 15419 const String& i_str = String::Handle(String::New(i.ToCString())); | 15442 const String& i_str = String::Handle(String::New(i.ToCString())); |
| 15420 exc_args.SetAt(0, i_str); | 15443 exc_args.SetAt(0, i_str); |
| 15421 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError, | 15444 Exceptions::ThrowByType(Exceptions::kJavascriptIntegerOverflowError, |
| 15422 exc_args); | 15445 exc_args); |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15835 // Calculate the size of the string. | 15858 // Calculate the size of the string. |
| 15836 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1; | 15859 intptr_t len = OS::SNPrint(NULL, 0, kFormat, Value()) + 1; |
| 15837 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15860 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 15838 OS::SNPrint(chars, len, kFormat, Value()); | 15861 OS::SNPrint(chars, len, kFormat, Value()); |
| 15839 return chars; | 15862 return chars; |
| 15840 } | 15863 } |
| 15841 | 15864 |
| 15842 | 15865 |
| 15843 void Smi::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15866 void Smi::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15844 JSONObject jsobj(stream); | 15867 JSONObject jsobj(stream); |
| 15868 AddTypeProperties(&jsobj, "int", JSONType(), ref); | |
| 15845 PrintSharedInstanceJSON(&jsobj, ref); | 15869 PrintSharedInstanceJSON(&jsobj, ref); |
| 15846 jsobj.AddPropertyF("id", "objects/int-%" Pd "", Value()); | 15870 jsobj.AddPropertyF("id", "objects/int-%" Pd "", Value()); |
| 15847 jsobj.AddPropertyF("valueAsString", "%" Pd "", Value()); | 15871 jsobj.AddPropertyF("valueAsString", "%" Pd "", Value()); |
| 15848 } | 15872 } |
| 15849 | 15873 |
| 15850 | 15874 |
| 15851 RawClass* Smi::Class() { | 15875 RawClass* Smi::Class() { |
| 15852 return Isolate::Current()->object_store()->smi_class(); | 15876 return Isolate::Current()->object_store()->smi_class(); |
| 15853 } | 15877 } |
| 15854 | 15878 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 15961 const char* kFormat = "%lld"; | 15985 const char* kFormat = "%lld"; |
| 15962 // Calculate the size of the string. | 15986 // Calculate the size of the string. |
| 15963 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1; | 15987 intptr_t len = OS::SNPrint(NULL, 0, kFormat, value()) + 1; |
| 15964 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 15988 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 15965 OS::SNPrint(chars, len, kFormat, value()); | 15989 OS::SNPrint(chars, len, kFormat, value()); |
| 15966 return chars; | 15990 return chars; |
| 15967 } | 15991 } |
| 15968 | 15992 |
| 15969 | 15993 |
| 15970 void Mint::PrintJSONImpl(JSONStream* stream, bool ref) const { | 15994 void Mint::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 15971 Number::PrintJSONImpl(stream, ref); | 15995 Integer::PrintJSONImpl(stream, ref); |
| 15972 } | 15996 } |
| 15973 | 15997 |
| 15974 | 15998 |
| 15975 void Double::set_value(double value) const { | 15999 void Double::set_value(double value) const { |
| 15976 raw_ptr()->value_ = value; | 16000 raw_ptr()->value_ = value; |
| 15977 } | 16001 } |
| 15978 | 16002 |
| 15979 | 16003 |
| 15980 bool Double::BitwiseEqualsToDouble(double value) const { | 16004 bool Double::BitwiseEqualsToDouble(double value) const { |
| 15981 intptr_t value_offset = Double::value_offset(); | 16005 intptr_t value_offset = Double::value_offset(); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 16093 } | 16117 } |
| 16094 const int kBufferSize = 128; | 16118 const int kBufferSize = 128; |
| 16095 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize); | 16119 char* buffer = Isolate::Current()->current_zone()->Alloc<char>(kBufferSize); |
| 16096 buffer[kBufferSize - 1] = '\0'; | 16120 buffer[kBufferSize - 1] = '\0'; |
| 16097 DoubleToCString(value(), buffer, kBufferSize); | 16121 DoubleToCString(value(), buffer, kBufferSize); |
| 16098 return buffer; | 16122 return buffer; |
| 16099 } | 16123 } |
| 16100 | 16124 |
| 16101 | 16125 |
| 16102 void Double::PrintJSONImpl(JSONStream* stream, bool ref) const { | 16126 void Double::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 16103 Number::PrintJSONImpl(stream, ref); | 16127 JSONObject jsobj(stream); |
| 16128 // Suppress the fact that the internal vm name for this type is | |
| 16129 // "Double". Return "double" instead. | |
| 16130 AddTypeProperties(&jsobj, "double", "double", ref); | |
| 16131 PrintSharedInstanceJSON(&jsobj, ref); | |
| 16132 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | |
| 16133 const intptr_t id = ring->GetIdForObject(raw()); | |
| 16134 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | |
| 16135 jsobj.AddProperty("valueAsString", ToCString()); | |
| 16104 } | 16136 } |
| 16105 | 16137 |
| 16106 | 16138 |
| 16107 RawBigint* Integer::AsBigint() const { | 16139 RawBigint* Integer::AsBigint() const { |
| 16108 ASSERT(!IsNull()); | 16140 ASSERT(!IsNull()); |
| 16109 if (IsSmi()) { | 16141 if (IsSmi()) { |
| 16110 Smi& smi = Smi::Handle(); | 16142 Smi& smi = Smi::Handle(); |
| 16111 smi ^= raw(); | 16143 smi ^= raw(); |
| 16112 return BigintOperations::NewFromSmi(smi); | 16144 return BigintOperations::NewFromSmi(smi); |
| 16113 } else if (IsMint()) { | 16145 } else if (IsMint()) { |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 16269 return zone->AllocUnsafe(size); | 16301 return zone->AllocUnsafe(size); |
| 16270 } | 16302 } |
| 16271 | 16303 |
| 16272 | 16304 |
| 16273 const char* Bigint::ToCString() const { | 16305 const char* Bigint::ToCString() const { |
| 16274 return BigintOperations::ToDecimalCString(*this, &BigintAllocator); | 16306 return BigintOperations::ToDecimalCString(*this, &BigintAllocator); |
| 16275 } | 16307 } |
| 16276 | 16308 |
| 16277 | 16309 |
| 16278 void Bigint::PrintJSONImpl(JSONStream* stream, bool ref) const { | 16310 void Bigint::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 16279 Number::PrintJSONImpl(stream, ref); | 16311 Integer::PrintJSONImpl(stream, ref); |
| 16280 } | 16312 } |
| 16281 | 16313 |
| 16282 | 16314 |
| 16283 // Synchronize with implementation in compiler (intrinsifier). | 16315 // Synchronize with implementation in compiler (intrinsifier). |
| 16284 class StringHasher : ValueObject { | 16316 class StringHasher : ValueObject { |
| 16285 public: | 16317 public: |
| 16286 StringHasher() : hash_(0) {} | 16318 StringHasher() : hash_(0) {} |
| 16287 void Add(int32_t ch) { | 16319 void Add(int32_t ch) { |
| 16288 hash_ = CombineHashes(hash_, ch); | 16320 hash_ = CombineHashes(hash_, ch); |
| 16289 } | 16321 } |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 17184 JSONObject jsobj(stream); | 17216 JSONObject jsobj(stream); |
| 17185 if (raw() == Symbols::OptimizedOut().raw()) { | 17217 if (raw() == Symbols::OptimizedOut().raw()) { |
| 17186 // TODO(turnidge): This is a hack. The user could have this | 17218 // TODO(turnidge): This is a hack. The user could have this |
| 17187 // special string in their program. Fixing this involves updating | 17219 // special string in their program. Fixing this involves updating |
| 17188 // the debugging api a bit. | 17220 // the debugging api a bit. |
| 17189 jsobj.AddProperty("type", "Sentinel"); | 17221 jsobj.AddProperty("type", "Sentinel"); |
| 17190 jsobj.AddProperty("id", "objects/optimized-out"); | 17222 jsobj.AddProperty("id", "objects/optimized-out"); |
| 17191 jsobj.AddProperty("valueAsString", "<optimized out>"); | 17223 jsobj.AddProperty("valueAsString", "<optimized out>"); |
| 17192 return; | 17224 return; |
| 17193 } | 17225 } |
| 17226 AddTypeProperties(&jsobj, "String", JSONType(), ref); | |
| 17194 PrintSharedInstanceJSON(&jsobj, ref); | 17227 PrintSharedInstanceJSON(&jsobj, ref); |
| 17195 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 17228 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 17196 const intptr_t id = ring->GetIdForObject(raw()); | 17229 const intptr_t id = ring->GetIdForObject(raw()); |
| 17197 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 17230 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 17198 jsobj.AddProperty("valueAsString", ToUserCString(1024)); | 17231 jsobj.AddProperty("valueAsString", ToUserCString(1024)); |
| 17199 } | 17232 } |
| 17200 | 17233 |
| 17201 | 17234 |
| 17202 void String::ToUTF8(uint8_t* utf8_array, intptr_t array_len) const { | 17235 void String::ToUTF8(uint8_t* utf8_array, intptr_t array_len) const { |
| 17203 ASSERT(array_len >= Utf8::Length(*this)); | 17236 ASSERT(array_len >= Utf8::Length(*this)); |
| (...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 18053 | 18086 |
| 18054 | 18087 |
| 18055 const char* Bool::ToCString() const { | 18088 const char* Bool::ToCString() const { |
| 18056 return value() ? "true" : "false"; | 18089 return value() ? "true" : "false"; |
| 18057 } | 18090 } |
| 18058 | 18091 |
| 18059 | 18092 |
| 18060 void Bool::PrintJSONImpl(JSONStream* stream, bool ref) const { | 18093 void Bool::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 18061 const char* str = ToCString(); | 18094 const char* str = ToCString(); |
| 18062 JSONObject jsobj(stream); | 18095 JSONObject jsobj(stream); |
| 18063 jsobj.AddProperty("type", JSONType(ref)); | 18096 // Suppress the fact that the internal vm name for this type is |
| 18097 // "Bool". Return "bool" instead. | |
| 18098 AddTypeProperties(&jsobj, "bool", "bool", ref); | |
| 18099 PrintSharedInstanceJSON(&jsobj, ref); | |
| 18064 jsobj.AddPropertyF("id", "objects/bool-%s", str); | 18100 jsobj.AddPropertyF("id", "objects/bool-%s", str); |
| 18065 const Class& cls = Class::Handle(this->clazz()); | |
| 18066 jsobj.AddProperty("class", cls); | |
| 18067 jsobj.AddPropertyF("valueAsString", "%s", str); | 18101 jsobj.AddPropertyF("valueAsString", "%s", str); |
| 18068 } | 18102 } |
| 18069 | 18103 |
| 18070 | 18104 |
| 18071 bool Array::CanonicalizeEquals(const Instance& other) const { | 18105 bool Array::CanonicalizeEquals(const Instance& other) const { |
| 18072 if (this->raw() == other.raw()) { | 18106 if (this->raw() == other.raw()) { |
| 18073 // Both handles point to the same raw instance. | 18107 // Both handles point to the same raw instance. |
| 18074 return true; | 18108 return true; |
| 18075 } | 18109 } |
| 18076 | 18110 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 18174 "_ImmutableList len:%" Pd : "_List len:%" Pd; | 18208 "_ImmutableList len:%" Pd : "_List len:%" Pd; |
| 18175 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; | 18209 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; |
| 18176 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 18210 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 18177 OS::SNPrint(chars, len, format, Length()); | 18211 OS::SNPrint(chars, len, format, Length()); |
| 18178 return chars; | 18212 return chars; |
| 18179 } | 18213 } |
| 18180 | 18214 |
| 18181 | 18215 |
| 18182 void Array::PrintJSONImpl(JSONStream* stream, bool ref) const { | 18216 void Array::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 18183 JSONObject jsobj(stream); | 18217 JSONObject jsobj(stream); |
| 18218 AddTypeProperties(&jsobj, "List", JSONType(), ref); | |
| 18184 PrintSharedInstanceJSON(&jsobj, ref); | 18219 PrintSharedInstanceJSON(&jsobj, ref); |
| 18185 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 18220 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 18186 const intptr_t id = ring->GetIdForObject(raw()); | 18221 const intptr_t id = ring->GetIdForObject(raw()); |
| 18187 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 18222 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 18188 jsobj.AddProperty("length", Length()); | 18223 jsobj.AddProperty("length", Length()); |
| 18189 if (ref) { | 18224 if (ref) { |
| 18190 return; | 18225 return; |
| 18191 } | 18226 } |
| 18192 { | 18227 { |
| 18193 JSONArray jsarr(&jsobj, "elements"); | 18228 JSONArray jsarr(&jsobj, "elements"); |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 18418 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; | 18453 intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; |
| 18419 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); | 18454 char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
| 18420 OS::SNPrint(chars, len, format, Length()); | 18455 OS::SNPrint(chars, len, format, Length()); |
| 18421 return chars; | 18456 return chars; |
| 18422 } | 18457 } |
| 18423 | 18458 |
| 18424 | 18459 |
| 18425 void GrowableObjectArray::PrintJSONImpl(JSONStream* stream, | 18460 void GrowableObjectArray::PrintJSONImpl(JSONStream* stream, |
| 18426 bool ref) const { | 18461 bool ref) const { |
| 18427 JSONObject jsobj(stream); | 18462 JSONObject jsobj(stream); |
| 18463 AddTypeProperties(&jsobj, "List", JSONType(), ref); | |
| 18428 PrintSharedInstanceJSON(&jsobj, ref); | 18464 PrintSharedInstanceJSON(&jsobj, ref); |
| 18429 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 18465 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 18430 const intptr_t id = ring->GetIdForObject(raw()); | 18466 const intptr_t id = ring->GetIdForObject(raw()); |
| 18431 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 18467 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 18432 jsobj.AddProperty("length", Length()); | 18468 jsobj.AddProperty("length", Length()); |
| 18433 if (ref) { | 18469 if (ref) { |
| 18434 return; | 18470 return; |
| 18435 } | 18471 } |
| 18436 { | 18472 { |
| 18437 JSONArray jsarr(&jsobj, "elements"); | 18473 JSONArray jsarr(&jsobj, "elements"); |
| (...skipping 1039 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 19477 } | 19513 } |
| 19478 | 19514 |
| 19479 | 19515 |
| 19480 const char* WeakProperty::ToCString() const { | 19516 const char* WeakProperty::ToCString() const { |
| 19481 return "_WeakProperty"; | 19517 return "_WeakProperty"; |
| 19482 } | 19518 } |
| 19483 | 19519 |
| 19484 | 19520 |
| 19485 void WeakProperty::PrintJSONImpl(JSONStream* stream, bool ref) const { | 19521 void WeakProperty::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 19486 JSONObject jsobj(stream); | 19522 JSONObject jsobj(stream); |
| 19523 AddTypeProperties(&jsobj, "Instance", JSONType(), ref); | |
| 19487 PrintSharedInstanceJSON(&jsobj, ref); | 19524 PrintSharedInstanceJSON(&jsobj, ref); |
| 19488 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 19525 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 19489 const intptr_t id = ring->GetIdForObject(raw()); | 19526 const intptr_t id = ring->GetIdForObject(raw()); |
| 19490 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 19527 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 19491 | 19528 |
| 19492 if (ref) { | 19529 if (ref) { |
| 19493 return; | 19530 return; |
| 19494 } | 19531 } |
| 19495 | 19532 |
| 19496 const Object& key_handle = Object::Handle(key()); | 19533 const Object& key_handle = Object::Handle(key()); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 19550 } | 19587 } |
| 19551 | 19588 |
| 19552 | 19589 |
| 19553 const char* MirrorReference::ToCString() const { | 19590 const char* MirrorReference::ToCString() const { |
| 19554 return "_MirrorReference"; | 19591 return "_MirrorReference"; |
| 19555 } | 19592 } |
| 19556 | 19593 |
| 19557 | 19594 |
| 19558 void MirrorReference::PrintJSONImpl(JSONStream* stream, bool ref) const { | 19595 void MirrorReference::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 19559 JSONObject jsobj(stream); | 19596 JSONObject jsobj(stream); |
| 19597 AddTypeProperties(&jsobj, "Instance", JSONType(), ref); | |
| 19560 PrintSharedInstanceJSON(&jsobj, ref); | 19598 PrintSharedInstanceJSON(&jsobj, ref); |
| 19561 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); | 19599 ObjectIdRing* ring = Isolate::Current()->object_id_ring(); |
| 19562 const intptr_t id = ring->GetIdForObject(raw()); | 19600 const intptr_t id = ring->GetIdForObject(raw()); |
| 19563 jsobj.AddPropertyF("id", "objects/%" Pd "", id); | 19601 jsobj.AddPropertyF("id", "objects/%" Pd "", id); |
| 19564 | 19602 |
| 19565 if (ref) { | 19603 if (ref) { |
| 19566 return; | 19604 return; |
| 19567 } | 19605 } |
| 19568 | 19606 |
| 19569 const Object& referent_handle = Object::Handle(referent()); | 19607 const Object& referent_handle = Object::Handle(referent()); |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 19699 return tag_label.ToCString(); | 19737 return tag_label.ToCString(); |
| 19700 } | 19738 } |
| 19701 | 19739 |
| 19702 | 19740 |
| 19703 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { | 19741 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { |
| 19704 Instance::PrintJSONImpl(stream, ref); | 19742 Instance::PrintJSONImpl(stream, ref); |
| 19705 } | 19743 } |
| 19706 | 19744 |
| 19707 | 19745 |
| 19708 } // namespace dart | 19746 } // namespace dart |
| OLD | NEW |