Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 2896d725180f662d382c2b980421d174e8c3de20..855ae0f57c0f89014f38f3c05355ebb71607bdc5 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -19377,11 +19377,12 @@ void Array::PrintJSONImpl(JSONStream* stream, bool ref) const { |
} |
{ |
JSONArray jsarr(&jsobj, "elements"); |
+ Object& element = Object::Handle(); |
koda
2015/06/02 16:42:37
Thanks for fixing this.
|
for (intptr_t index = 0; index < Length(); index++) { |
JSONObject jselement(&jsarr); |
jselement.AddProperty("index", index); |
- Object& element = Object::Handle(At(index)); |
+ element = At(index); |
jselement.AddProperty("value", element); |
} |
} |
@@ -19623,11 +19624,12 @@ void GrowableObjectArray::PrintJSONImpl(JSONStream* stream, |
} |
{ |
JSONArray jsarr(&jsobj, "elements"); |
+ Object& element = Object::Handle(); |
for (intptr_t index = 0; index < Length(); index++) { |
JSONObject jselement(&jsarr); |
jselement.AddProperty("index", index); |
- Object& element = Object::Handle(At(index)); |
+ element = At(index); |
jselement.AddProperty("value", element); |
} |
} |
@@ -19720,8 +19722,11 @@ RawLinkedHashMap* LinkedHashMap::NewUninitialized(Heap::Space space) { |
const char* LinkedHashMap::ToCString() const { |
- // TODO(koda): Print key/value pairs. |
- return "_LinkedHashMap"; |
+ const char* format = "_LinkedHashMap len:%" Pd; |
+ intptr_t len = OS::SNPrint(NULL, 0, format, Length()) + 1; |
koda
2015/06/02 16:42:36
Use Thread::Current()->zone()->PrintToString(...)
rmacnak
2015/06/02 17:33:31
Much nicer. Updated Array::ToCString as well.
|
+ char* chars = Isolate::Current()->current_zone()->Alloc<char>(len); |
+ OS::SNPrint(chars, len, format, Length()); |
+ return chars; |
} |
@@ -19730,11 +19735,22 @@ void LinkedHashMap::PrintJSONImpl(JSONStream* stream, bool ref) const { |
PrintSharedInstanceJSON(&jsobj, ref); |
jsobj.AddProperty("kind", "Map"); |
jsobj.AddServiceId(*this); |
- // TODO(koda): Print length. |
+ jsobj.AddProperty("length", Length()); |
if (ref) { |
return; |
} |
- // TODO(koda): Print key/value pairs. |
+ { |
+ JSONArray jsarr(&jsobj, "associations"); |
+ Object& object = Object::Handle(); |
+ LinkedHashMap::Iterator iterator(*this); |
+ while (iterator.MoveNext()) { |
+ JSONObject jsassoc(&jsarr); |
+ object = iterator.CurrentKey(); |
+ jsassoc.AddProperty("key", object); |
+ object = iterator.CurrentValue(); |
+ jsassoc.AddProperty("value", object); |
+ } |
+ } |
} |