| Index: runtime/vm/object.cc
|
| ===================================================================
|
| --- runtime/vm/object.cc (revision 27342)
|
| +++ runtime/vm/object.cc (working copy)
|
| @@ -64,6 +64,7 @@
|
| DECLARE_FLAG(bool, trace_deoptimization);
|
| DECLARE_FLAG(bool, trace_deoptimization_verbose);
|
| DECLARE_FLAG(bool, verbose_stacktrace);
|
| +DECLARE_FLAG(bool, print_coverage);
|
|
|
| static const char* kGetterPrefix = "get:";
|
| static const intptr_t kGetterPrefixLength = strlen(kGetterPrefix);
|
| @@ -2918,20 +2919,13 @@
|
| const char* class_name = String::Handle(UserVisibleName()).ToCString();
|
| ObjectIdRing* ring = Isolate::Current()->object_id_ring();
|
| intptr_t id = ring->GetIdForObject(raw());
|
| - if (ref) {
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "@Class");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintProperty("name", class_name);
|
| - stream->CloseObject();
|
| - return;
|
| + JSONObject jsobj(stream);
|
| + jsobj.AddProperty("type", JSONType(ref));
|
| + jsobj.AddProperty("id", id);
|
| + jsobj.AddProperty("name", class_name);
|
| + if (!ref) {
|
| + jsobj.AddProperty("library", Object::Handle(library()));
|
| }
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "Class");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintProperty("name", class_name);
|
| - stream->PrintProperty("library", Object::Handle(library()));
|
| - stream->CloseObject();
|
| }
|
|
|
|
|
| @@ -3015,8 +3009,7 @@
|
|
|
|
|
| void UnresolvedClass::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -3239,8 +3232,7 @@
|
|
|
| void AbstractTypeArguments::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -3580,8 +3572,7 @@
|
|
|
|
|
| void TypeArguments::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -3669,8 +3660,7 @@
|
|
|
| void InstantiatedTypeArguments::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -3686,8 +3676,7 @@
|
|
|
|
|
| void PatchClass::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -4134,6 +4123,9 @@
|
|
|
|
|
| bool Function::is_optimizable() const {
|
| + if (FLAG_print_coverage) {
|
| + return false;
|
| + }
|
| if (OptimizableBit::decode(raw_ptr()->kind_tag_) &&
|
| (script() != Script::null()) &&
|
| ((end_token_pos() - token_pos()) < FLAG_huge_method_cutoff_in_tokens)) {
|
| @@ -5092,22 +5084,15 @@
|
| String::Handle(QualifiedUserVisibleName()).ToCString();
|
| ObjectIdRing* ring = Isolate::Current()->object_id_ring();
|
| intptr_t id = ring->GetIdForObject(raw());
|
| - if (ref) {
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "@Function");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintProperty("name", function_name);
|
| - stream->CloseObject();
|
| - return;
|
| - }
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "Function");
|
| - stream->PrintProperty("name", function_name);
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintPropertyBool("is_static", is_static());
|
| - stream->PrintPropertyBool("is_const", is_const());
|
| - stream->PrintPropertyBool("is_optimizable", is_optimizable());
|
| - stream->PrintPropertyBool("is_inlinable", IsInlineable());
|
| + JSONObject jsobj(stream);
|
| + jsobj.AddProperty("type", JSONType(ref));
|
| + jsobj.AddProperty("id", id);
|
| + jsobj.AddProperty("name", function_name);
|
| + if (ref) return;
|
| + jsobj.AddProperty("is_static", is_static());
|
| + jsobj.AddProperty("is_const", is_const());
|
| + jsobj.AddProperty("is_optimizable", is_optimizable());
|
| + jsobj.AddProperty("is_inlinable", IsInlineable());
|
| const char* kind_string = NULL;
|
| switch (kind()) {
|
| case RawFunction::kRegularFunction:
|
| @@ -5143,15 +5128,13 @@
|
| default:
|
| UNREACHABLE();
|
| }
|
| - stream->PrintProperty("kind", kind_string);
|
| - stream->PrintProperty("unoptimized_code", Object::Handle(unoptimized_code()));
|
| - stream->PrintProperty("usage_counter", usage_counter());
|
| - stream->PrintProperty("optimized_call_site_count",
|
| - optimized_call_site_count());
|
| - stream->PrintProperty("code", Object::Handle(CurrentCode()));
|
| - stream->PrintProperty("deoptimizations",
|
| - static_cast<intptr_t>(deoptimization_counter()));
|
| - stream->CloseObject();
|
| + jsobj.AddProperty("kind", kind_string);
|
| + jsobj.AddProperty("unoptimized_code", Object::Handle(unoptimized_code()));
|
| + jsobj.AddProperty("usage_counter", usage_counter());
|
| + jsobj.AddProperty("optimized_call_site_count", optimized_call_site_count());
|
| + jsobj.AddProperty("code", Object::Handle(CurrentCode()));
|
| + jsobj.AddProperty("deoptimizations",
|
| + static_cast<intptr_t>(deoptimization_counter()));
|
| }
|
|
|
|
|
| @@ -5199,8 +5182,7 @@
|
|
|
|
|
| void ClosureData::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -5235,8 +5217,7 @@
|
|
|
|
|
| void RedirectionData::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -5420,8 +5401,7 @@
|
|
|
|
|
| void Field::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -5643,8 +5623,7 @@
|
|
|
|
|
| void LiteralToken::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -6059,8 +6038,7 @@
|
|
|
|
|
| void TokenStream::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -6411,8 +6389,7 @@
|
|
|
|
|
| void Script::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -7448,36 +7425,29 @@
|
| const char* library_url = String::Handle(url()).ToCString();
|
| ObjectIdRing* ring = Isolate::Current()->object_id_ring();
|
| intptr_t id = ring->GetIdForObject(raw());
|
| - if (ref) {
|
| - // Print a reference
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "@Library");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintProperty("name", library_name);
|
| - stream->CloseObject();
|
| - return;
|
| + JSONObject jsobj(stream);
|
| + jsobj.AddProperty("type", JSONType(ref));
|
| + jsobj.AddProperty("id", id);
|
| + jsobj.AddProperty("name", library_name);
|
| + if (ref) return;
|
| + jsobj.AddProperty("url", library_url);
|
| + {
|
| + JSONArray jsarr(jsobj, "classes");
|
| + ClassDictionaryIterator class_iter(*this);
|
| + Class& klass = Class::Handle();
|
| + while (class_iter.HasNext()) {
|
| + klass = class_iter.GetNextClass();
|
| + jsarr.AddValue(klass);
|
| + }
|
| }
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "Library");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintProperty("name", library_name);
|
| - stream->PrintProperty("url", library_url);
|
| - ClassDictionaryIterator class_iter(*this);
|
| - stream->OpenArray("classes");
|
| - Class& klass = Class::Handle();
|
| - while (class_iter.HasNext()) {
|
| - klass = class_iter.GetNextClass();
|
| - stream->PrintValue(klass);
|
| + {
|
| + JSONArray jsarr(jsobj, "libraries");
|
| + Library& lib = Library::Handle();
|
| + for (intptr_t i = 0; i < num_imports(); i++) {
|
| + lib = ImportLibraryAt(i);
|
| + jsarr.AddValue(lib);
|
| + }
|
| }
|
| - stream->CloseArray();
|
| - stream->OpenArray("libraries");
|
| - Library& lib = Library::Handle();
|
| - for (intptr_t i = 0; i < num_imports(); i++) {
|
| - lib = ImportLibraryAt(i);
|
| - stream->PrintValue(lib);
|
| - }
|
| - stream->CloseArray();
|
| - stream->CloseObject();
|
| }
|
|
|
|
|
| @@ -7622,8 +7592,7 @@
|
|
|
|
|
| void LibraryPrefix::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -7638,8 +7607,7 @@
|
|
|
|
|
| void Namespace::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -7903,8 +7871,7 @@
|
|
|
|
|
| void Instructions::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8058,8 +8025,7 @@
|
|
|
|
|
| void PcDescriptors::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8214,8 +8180,7 @@
|
|
|
|
|
| void Stackmap::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8285,8 +8250,7 @@
|
|
|
| void LocalVarDescriptors::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8470,8 +8434,7 @@
|
|
|
| void ExceptionHandlers::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8569,8 +8532,7 @@
|
|
|
|
|
| void DeoptInfo::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -8965,27 +8927,23 @@
|
| void Code::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| ObjectIdRing* ring = Isolate::Current()->object_id_ring();
|
| intptr_t id = ring->GetIdForObject(raw());
|
| + JSONObject jsobj(stream);
|
| if (ref) {
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "@Code");
|
| - stream->PrintProperty("id", id);
|
| - stream->CloseObject();
|
| + jsobj.AddProperty("type", "@Code");
|
| + jsobj.AddProperty("id", id);
|
| return;
|
| }
|
| - stream->OpenObject();
|
| - stream->PrintProperty("type", "Code");
|
| - stream->PrintProperty("id", id);
|
| - stream->PrintPropertyBool("is_optimized", is_optimized());
|
| - stream->PrintPropertyBool("is_alive", is_alive());
|
| - stream->PrintProperty("function", Object::Handle(function()));
|
| - stream->OpenArray("disassembly");
|
| - DisassembleToJSONStream formatter(stream);
|
| + jsobj.AddProperty("type", "Code");
|
| + jsobj.AddProperty("id", id);
|
| + jsobj.AddProperty("is_optimized", is_optimized());
|
| + jsobj.AddProperty("is_alive", is_alive());
|
| + jsobj.AddProperty("function", Object::Handle(function()));
|
| + JSONArray jsarr(jsobj, "disassembly");
|
| + DisassembleToJSONStream formatter(jsarr);
|
| const Instructions& instr = Instructions::Handle(instructions());
|
| uword start = instr.EntryPoint();
|
| Disassembler::Disassemble(start, start + instr.size(), &formatter,
|
| comments());
|
| - stream->CloseArray();
|
| - stream->CloseObject();
|
| }
|
|
|
|
|
| @@ -9116,8 +9074,7 @@
|
|
|
|
|
| void Context::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9236,8 +9193,7 @@
|
|
|
|
|
| void ContextScope::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9709,8 +9665,7 @@
|
|
|
|
|
| void ICData::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9826,8 +9781,7 @@
|
|
|
|
|
| void MegamorphicCache::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9903,8 +9857,7 @@
|
|
|
|
|
| void SubtypeTestCache::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9922,8 +9875,7 @@
|
|
|
|
|
| void Error::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -9968,8 +9920,7 @@
|
|
|
|
|
| void ApiError::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -10014,8 +9965,7 @@
|
|
|
|
|
| void LanguageError::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -10089,8 +10039,7 @@
|
|
|
| void UnhandledException::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -10126,8 +10075,7 @@
|
|
|
|
|
| void UnwindError::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -10481,8 +10429,7 @@
|
|
|
|
|
| void Instance::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -10840,8 +10787,7 @@
|
|
|
|
|
| void AbstractType::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11288,8 +11234,7 @@
|
|
|
|
|
| void Type::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11476,8 +11421,7 @@
|
|
|
|
|
| void TypeParameter::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11645,8 +11589,7 @@
|
|
|
|
|
| void BoundedType::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11661,8 +11604,7 @@
|
|
|
|
|
| void MixinAppType::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11705,8 +11647,7 @@
|
|
|
|
|
| void Number::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -11718,8 +11659,7 @@
|
|
|
|
|
| void Integer::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -12137,8 +12077,7 @@
|
|
|
|
|
| void Smi::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -12257,8 +12196,7 @@
|
|
|
|
|
| void Mint::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -12364,8 +12302,7 @@
|
|
|
|
|
| void Double::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -12536,8 +12473,7 @@
|
|
|
|
|
| void Bigint::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -13140,8 +13076,7 @@
|
|
|
|
|
| void String::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -13862,8 +13797,7 @@
|
|
|
|
|
| void Bool::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -13946,8 +13880,7 @@
|
|
|
|
|
| void Array::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14158,8 +14091,7 @@
|
|
|
| void GrowableObjectArray::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14264,8 +14196,7 @@
|
|
|
|
|
| void Float32x4::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14370,8 +14301,7 @@
|
|
|
|
|
| void Uint32x4::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14420,8 +14350,7 @@
|
|
|
|
|
| void TypedData::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14457,8 +14386,7 @@
|
|
|
| void ExternalTypedData::PrintToJSONStream(JSONStream* stream,
|
| bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14645,8 +14573,7 @@
|
|
|
|
|
| void Stacktrace::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14843,8 +14770,7 @@
|
|
|
|
|
| void JSRegExp::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
| @@ -14864,8 +14790,7 @@
|
|
|
|
|
| void WeakProperty::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
| RawAbstractType* MirrorReference::GetAbstractTypeReferent() const {
|
| @@ -14927,8 +14852,7 @@
|
|
|
|
|
| void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const {
|
| - stream->OpenObject();
|
| - stream->CloseObject();
|
| + JSONObject jsobj(stream);
|
| }
|
|
|
|
|
|
|