Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 765748070de34a5561d6d8377753898ef18a8596..7679eb3e328429b0d1ed6ca68069cbc9324fc406 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -2691,6 +2691,12 @@ const char* Class::ToCString() const { |
} |
+void Class::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void Class::InsertCanonicalConstant(intptr_t index, |
const Instance& constant) const { |
// The constant needs to be added to the list. Grow the list if it is full. |
@@ -2770,6 +2776,12 @@ const char* UnresolvedClass::ToCString() const { |
} |
+void UnresolvedClass::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t AbstractTypeArguments::Length() const { |
// AbstractTypeArguments is an abstract class. |
UNREACHABLE(); |
@@ -3002,6 +3014,13 @@ const char* AbstractTypeArguments::ToCString() const { |
} |
+void AbstractTypeArguments::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t TypeArguments::Length() const { |
ASSERT(!IsNull()); |
return Smi::Value(raw_ptr()->length_); |
@@ -3337,6 +3356,12 @@ const char* TypeArguments::ToCString() const { |
} |
+void TypeArguments::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t InstantiatedTypeArguments::Length() const { |
return AbstractTypeArguments::Handle( |
uninstantiated_type_arguments()).Length(); |
@@ -3419,6 +3444,13 @@ const char* InstantiatedTypeArguments::ToCString() const { |
} |
+void InstantiatedTypeArguments::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* PatchClass::ToCString() const { |
const char* kFormat = "PatchClass for %s"; |
const Class& cls = Class::Handle(patched_class()); |
@@ -3430,6 +3462,12 @@ const char* PatchClass::ToCString() const { |
} |
+void PatchClass::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawPatchClass* PatchClass::New(const Class& patched_class, |
const Class& source_class) { |
const PatchClass& result = PatchClass::Handle(PatchClass::New()); |
@@ -4743,6 +4781,12 @@ const char* Function::ToCString() const { |
} |
+void Function::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void ClosureData::set_context_scope(const ContextScope& value) const { |
StorePointer(&raw_ptr()->context_scope_, value.raw()); |
} |
@@ -4786,6 +4830,12 @@ const char* ClosureData::ToCString() const { |
} |
+void ClosureData::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void RedirectionData::set_type(const Type& value) const { |
ASSERT(!value.IsNull()); |
StorePointer(&raw_ptr()->type_, value.raw()); |
@@ -4816,6 +4866,12 @@ const char* RedirectionData::ToCString() const { |
} |
+void RedirectionData::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawString* Field::GetterName(const String& field_name) { |
return String::Concat(Symbols::GetterPrefix(), field_name); |
} |
@@ -4979,6 +5035,12 @@ const char* Field::ToCString() const { |
} |
+void Field::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawArray* Field::dependent_code() const { |
return raw_ptr()->dependent_code_; |
} |
@@ -5154,6 +5216,12 @@ const char* LiteralToken::ToCString() const { |
} |
+void LiteralToken::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawArray* TokenStream::TokenObjects() const { |
return raw_ptr()->token_objects_; |
} |
@@ -5564,6 +5632,12 @@ const char* TokenStream::ToCString() const { |
} |
+void TokenStream::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
TokenStream::Iterator::Iterator(const TokenStream& tokens, intptr_t token_pos) |
: tokens_(TokenStream::Handle(tokens.raw())), |
data_(ExternalTypedData::Handle(tokens.GetStream())), |
@@ -5910,6 +5984,12 @@ const char* Script::ToCString() const { |
} |
+void Script::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
DictionaryIterator::DictionaryIterator(const Library& library) |
: array_(Array::Handle(library.dictionary())), |
// Last element in array is a Smi. |
@@ -6900,6 +6980,12 @@ const char* Library::ToCString() const { |
} |
+void Library::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawLibrary* LibraryPrefix::GetLibrary(int index) const { |
if ((index >= 0) || (index < num_imports())) { |
const Array& imports = Array::Handle(this->imports()); |
@@ -7009,6 +7095,12 @@ const char* LibraryPrefix::ToCString() const { |
} |
+void LibraryPrefix::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* Namespace::ToCString() const { |
const char* kFormat = "Namespace for library '%s'"; |
const Library& lib = Library::Handle(library()); |
@@ -7019,6 +7111,12 @@ const char* Namespace::ToCString() const { |
} |
+void Namespace::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
bool Namespace::HidesName(const String& name) const { |
// Check whether the name is in the list of explicitly hidden names. |
if (hide_names() != Array::null()) { |
@@ -7228,6 +7326,12 @@ const char* Instructions::ToCString() const { |
} |
+void Instructions::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t PcDescriptors::Length() const { |
return Smi::Value(raw_ptr()->length_); |
} |
@@ -7377,6 +7481,12 @@ const char* PcDescriptors::ToCString() const { |
} |
+void PcDescriptors::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
// Verify assumptions (in debug mode only). |
// - No two deopt descriptors have the same deoptimization id. |
// - No two ic-call descriptors have the same deoptimization id (type feedback). |
@@ -7528,6 +7638,12 @@ const char* Stackmap::ToCString() const { |
} |
+void Stackmap::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawString* LocalVarDescriptors::GetName(intptr_t var_index) const { |
ASSERT(var_index < Length()); |
const Array& names = Array::Handle(raw_ptr()->names_); |
@@ -7592,6 +7708,13 @@ const char* LocalVarDescriptors::ToCString() const { |
} |
+void LocalVarDescriptors::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawLocalVarDescriptors* LocalVarDescriptors::New(intptr_t num_variables) { |
ASSERT(Object::var_descriptors_class() != Class::null()); |
if (num_variables < 0 || num_variables > kMaxElements) { |
@@ -7755,6 +7878,13 @@ const char* ExceptionHandlers::ToCString() const { |
} |
+void ExceptionHandlers::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t DeoptInfo::Length() const { |
return Smi::Value(raw_ptr()->length_); |
} |
@@ -7848,6 +7978,12 @@ const char* DeoptInfo::ToCString() const { |
} |
+void DeoptInfo::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawDeoptInfo* DeoptInfo::New(intptr_t num_commands) { |
ASSERT(Object::deopt_info_class() != Class::null()); |
DeoptInfo& result = DeoptInfo::Handle(); |
@@ -8211,6 +8347,12 @@ const char* Code::ToCString() const { |
} |
+void Code::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
uword Code::GetPatchCodePc() const { |
const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors()); |
return descriptors.GetPcForKind(PcDescriptors::kPatchCode); |
@@ -8337,6 +8479,12 @@ const char* Context::ToCString() const { |
} |
+void Context::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawContextScope* ContextScope::New(intptr_t num_variables) { |
ASSERT(Object::context_scope_class() != Class::null()); |
if (num_variables < 0 || num_variables > kMaxElements) { |
@@ -8451,6 +8599,12 @@ const char* ContextScope::ToCString() const { |
} |
+void ContextScope::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* ICData::ToCString() const { |
const char* kFormat = "ICData target:'%s' num-checks: %"Pd""; |
const String& name = String::Handle(target_name()); |
@@ -8864,6 +9018,12 @@ RawICData* ICData::New(const Function& function, |
} |
+void ICData::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawArray* MegamorphicCache::buckets() const { |
return raw_ptr()->buckets_; |
} |
@@ -8975,6 +9135,12 @@ const char* MegamorphicCache::ToCString() const { |
} |
+void MegamorphicCache::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawSubtypeTestCache* SubtypeTestCache::New() { |
ASSERT(Object::subtypetestcache_class() != Class::null()); |
SubtypeTestCache& result = SubtypeTestCache::Handle(); |
@@ -9046,6 +9212,12 @@ const char* SubtypeTestCache::ToCString() const { |
} |
+void SubtypeTestCache::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* Error::ToErrorCString() const { |
UNREACHABLE(); |
return "Internal Error"; |
@@ -9059,6 +9231,12 @@ const char* Error::ToCString() const { |
} |
+void Error::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawApiError* ApiError::New() { |
ASSERT(Object::api_error_class() != Class::null()); |
RawObject* raw = Object::Allocate(ApiError::kClassId, |
@@ -9099,6 +9277,12 @@ const char* ApiError::ToCString() const { |
} |
+void ApiError::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawLanguageError* LanguageError::New() { |
ASSERT(Object::language_error_class() != Class::null()); |
RawObject* raw = Object::Allocate(LanguageError::kClassId, |
@@ -9139,6 +9323,12 @@ const char* LanguageError::ToCString() const { |
} |
+void LanguageError::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawUnhandledException* UnhandledException::New(const Instance& exception, |
const Instance& stacktrace, |
Heap::Space space) { |
@@ -9207,6 +9397,13 @@ const char* UnhandledException::ToCString() const { |
} |
+void UnhandledException::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawUnwindError* UnwindError::New(const String& message, Heap::Space space) { |
ASSERT(Object::unwind_error_class() != Class::null()); |
UnwindError& result = UnwindError::Handle(); |
@@ -9238,6 +9435,12 @@ const char* UnwindError::ToCString() const { |
} |
+void UnwindError::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
bool Instance::Equals(const Instance& other) const { |
if (this->raw() == other.raw()) { |
return true; // "===". |
@@ -9558,6 +9761,12 @@ const char* Instance::ToCString() const { |
} |
+void Instance::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
bool AbstractType::IsResolved() const { |
// AbstractType is an abstract class. |
UNREACHABLE(); |
@@ -9897,6 +10106,12 @@ const char* AbstractType::ToCString() const { |
} |
+void AbstractType::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawType* Type::NullType() { |
return Isolate::Current()->object_store()->null_type(); |
} |
@@ -10288,6 +10503,12 @@ const char* Type::ToCString() const { |
} |
+void Type::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void TypeParameter::set_is_finalized() const { |
ASSERT(!IsFinalized()); |
set_type_state(RawTypeParameter::kFinalizedUninstantiated); |
@@ -10466,6 +10687,12 @@ const char* TypeParameter::ToCString() const { |
} |
+void TypeParameter::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
bool BoundedType::IsMalformed() const { |
return FLAG_enable_type_checks && AbstractType::Handle(bound()).IsMalformed(); |
} |
@@ -10614,6 +10841,11 @@ const char* BoundedType::ToCString() const { |
} |
+void BoundedType::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
RawString* MixinAppType::Name() const { |
return String::New("MixinApplication"); |
@@ -10625,6 +10857,12 @@ const char* MixinAppType::ToCString() const { |
} |
+void MixinAppType::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void MixinAppType::set_super_type(const AbstractType& value) const { |
StorePointer(&raw_ptr()->super_type_, value.raw()); |
} |
@@ -10663,6 +10901,12 @@ const char* Number::ToCString() const { |
} |
+void Number::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* Integer::ToCString() const { |
// Integer is an interface. No instances of Integer should exist. |
UNREACHABLE(); |
@@ -10670,6 +10914,12 @@ const char* Integer::ToCString() const { |
} |
+void Integer::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
// Throw FiftyThreeBitOverflow exception. |
static void ThrowFiftyThreeBitOverflow(const Integer& i) { |
const Array& exc_args = Array::Handle(Array::New(1)); |
@@ -11070,6 +11320,12 @@ const char* Smi::ToCString() const { |
} |
+void Smi::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawClass* Smi::Class() { |
return Isolate::Current()->object_store()->smi_class(); |
} |
@@ -11184,6 +11440,12 @@ const char* Mint::ToCString() const { |
} |
+void Mint::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void Double::set_value(double value) const { |
raw_ptr()->value_ = value; |
} |
@@ -11285,6 +11547,12 @@ const char* Double::ToCString() const { |
} |
+void Double::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawBigint* Integer::AsBigint() const { |
ASSERT(!IsNull()); |
if (IsSmi()) { |
@@ -11451,6 +11719,12 @@ const char* Bigint::ToCString() const { |
} |
+void Bigint::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
// Synchronize with implementation in compiler (intrinsifier). |
class StringHasher : ValueObject { |
public: |
@@ -12049,6 +12323,12 @@ const char* String::ToCString() const { |
} |
+void String::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
void String::ToUTF8(uint8_t* utf8_array, intptr_t array_len) const { |
ASSERT(array_len >= Utf8::Length(*this)); |
Utf8::Encode(*this, reinterpret_cast<char*>(utf8_array), array_len); |
@@ -12729,6 +13009,12 @@ const char* Bool::ToCString() const { |
} |
+void Bool::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
bool Array::Equals(const Instance& other) const { |
if (this->raw() == other.raw()) { |
// Both handles point to the same raw instance. |
@@ -12807,6 +13093,12 @@ const char* Array::ToCString() const { |
} |
+void Array::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawArray* Array::Grow(const Array& source, int new_length, Heap::Space space) { |
const Array& result = Array::Handle(Array::New(new_length, space)); |
intptr_t len = 0; |
@@ -13012,6 +13304,13 @@ const char* GrowableObjectArray::ToCString() const { |
} |
+void GrowableObjectArray::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawFloat32x4* Float32x4::New(float v0, float v1, float v2, float v3, |
Heap::Space space) { |
ASSERT(Isolate::Current()->object_store()->float32x4_class() != |
@@ -13112,6 +13411,12 @@ const char* Float32x4::ToCString() const { |
} |
+void Float32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawUint32x4* Uint32x4::New(uint32_t v0, uint32_t v1, uint32_t v2, uint32_t v3, |
Heap::Space space) { |
ASSERT(Isolate::Current()->object_store()->uint32x4_class() != |
@@ -13212,6 +13517,12 @@ const char* Uint32x4::ToCString() const { |
} |
+void Uint32x4::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const intptr_t TypedData::element_size[] = { |
1, // kTypedDataInt8ArrayCid. |
1, // kTypedDataUint8ArrayCid. |
@@ -13258,6 +13569,12 @@ const char* TypedData::ToCString() const { |
} |
+void TypedData::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
FinalizablePersistentHandle* ExternalTypedData::AddFinalizer( |
void* peer, Dart_WeakPersistentHandleFinalizer callback) const { |
SetPeer(peer); |
@@ -13288,6 +13605,14 @@ const char* ExternalTypedData::ToCString() const { |
} |
+void ExternalTypedData::PrintToJSONStream(JSONStream* stream, |
+ bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
+ |
const char* Closure::ToCString(const Instance& closure) { |
const Function& fun = Function::Handle(Closure::function(closure)); |
const bool is_implicit_closure = fun.IsImplicitClosureFunction(); |
@@ -13327,6 +13652,12 @@ const char* DartFunction::ToCString() const { |
} |
+void DartFunction::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
intptr_t Stacktrace::Length() const { |
const Array& code_array = Array::Handle(raw_ptr()->code_array_); |
return code_array.Length(); |
@@ -13493,6 +13824,12 @@ const char* Stacktrace::ToCString() const { |
} |
+void Stacktrace::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
const char* Stacktrace::ToCStringInternal(intptr_t frame_index) const { |
Isolate* isolate = Isolate::Current(); |
Function& function = Function::Handle(); |
@@ -13659,6 +13996,12 @@ const char* JSRegExp::ToCString() const { |
} |
+void JSRegExp::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
RawWeakProperty* WeakProperty::New(Heap::Space space) { |
ASSERT(Isolate::Current()->object_store()->weak_property_class() |
!= Class::null()); |
@@ -13674,6 +14017,11 @@ const char* WeakProperty::ToCString() const { |
} |
+void WeakProperty::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
RawMirrorReference* MirrorReference::New(Heap::Space space) { |
ASSERT(Isolate::Current()->object_store()->mirror_reference_class() |
!= Class::null()); |
@@ -13689,4 +14037,10 @@ const char* MirrorReference::ToCString() const { |
} |
+void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { |
+ stream->OpenObject(); |
+ stream->CloseObject(); |
+} |
+ |
+ |
} // namespace dart |