anchor.diff:  
     for (var typeMirror in jsInterfaceTypes) {
       mirrors.LibraryMirror libraryMirror = typeMirror.owner;
  +    var location = libraryMirror.location;
  +    var dartLibrary = location != null && location.sourceUri.scheme == 'dart';
  +
       var prefixName;
       if (libraryPrefixes.containsKey(libraryMirror)) {
         prefixName = libraryPrefixes[libraryMirror];
  
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) {
  