Chromium Code Reviews| 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); |
| + } |
| + } |
| } |