| Index: runtime/vm/dart_api_impl.cc | 
| =================================================================== | 
| --- runtime/vm/dart_api_impl.cc	(revision 30215) | 
| +++ runtime/vm/dart_api_impl.cc	(working copy) | 
| @@ -2960,6 +2960,21 @@ | 
| } | 
| const Class& cls = Class::Handle(isolate, type_obj.type_class()); | 
|  | 
| +  // Mark all fields as nullable. | 
| +  Class& iterate_cls = Class::Handle(isolate, cls.raw()); | 
| +  Field& field = Field::Handle(isolate); | 
| +  Array& fields = Array::Handle(isolate); | 
| +  while (!iterate_cls.IsNull()) { | 
| +    fields = iterate_cls.fields(); | 
| +    iterate_cls = iterate_cls.SuperClass(); | 
| +    for (int field_num = 0; field_num < fields.Length(); field_num++) { | 
| +      field ^= fields.At(field_num); | 
| +      if (field.is_static()) { | 
| +        continue; | 
| +      } | 
| +      field.UpdateGuardedCidAndLength(Object::null_object()); | 
| +    } | 
| +  } | 
| // Allocate an object for the given class. | 
| return Api::NewHandle(isolate, Instance::New(cls)); | 
| } | 
|  |