anchor.diff:            sbPatch.write(
                 "  static Type get instanceRuntimeType => ${classNameImpl};\n");
           }
  -        if (isPrivate) {
  +        if (isPrivateUserDefinedClass) {
             sb.write("""
   class ${escapePrivateClassPrefix}${className} implements $className {}
   """);
  
positive.code:     var isFunction = typeMirror.isSubtypeOf(functionMirror);
      var isJSObject = typeMirror.isSubtypeOf(jsObjectMirror);
      var className = mirrors.MirrorSystem.getName(typeMirror.simpleName);
      var isPrivate = className.startsWith('_');
      if (isPrivate) className = '${escapePrivateClassPrefix}${className}';
      var fullName = '${prefixName}.${className}';
      (isArray ? implementsArray : implements).add(fullName);
      if (!isArray && !isFunction && !isJSObject) {
  
negative.code:       if (isDom || isJsInterop) {
          // TODO(jacobr): verify class implements JavaScriptObject.
          var className = mirrors.MirrorSystem.getName(clazz.simpleName);
          bool isPrivateUserDefinedClass =
              className.startsWith('_') && !dartLibrary;
          var classNameImpl = '${className}Impl';
          var sbPatch = new StringBuffer();
          if (isJsInterop) {
  