| Index: runtime/vm/class_finalizer.cc | 
| diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc | 
| index 1a256cd8da20a8af2a8b55b80ca91ba520bc9f94..9497eab2d2e9625a4a653be9878863461c2c4339 100644 | 
| --- a/runtime/vm/class_finalizer.cc | 
| +++ b/runtime/vm/class_finalizer.cc | 
| @@ -2427,7 +2427,12 @@ void ClassFinalizer::FinalizeTypesInClass(const Class& cls) { | 
| // fields because type parameters are parsed before the class body. Since | 
| // 'ResolveAndFinalizeMemberTypes(cls)' has not been called yet, unfinalized | 
| // member types could choke the snapshotter. | 
| -    ASSERT(Array::Handle(cls.functions()).Length() == 0); | 
| +    // Or | 
| +    // if the class is being refinalized because a patch is being applied | 
| +    // after the class has been finalized then it is ok for the class to have | 
| +    // functions. | 
| +    ASSERT((Array::Handle(cls.functions()).Length() == 0) || | 
| +           cls.is_refinalize_after_patch()); | 
| } | 
| } | 
|  | 
|  |