anchor.diff:  
   _getJsMemberName(mirrors.DeclarationMirror mirror) {
     var name = _getJsName(mirror);
  -  return name == null || name.isEmpty ? _getDeclarationName(mirror) : name;
  +  return name == null || name.isEmpty ? _stripReservedNamePrefix(_getDeclarationName(mirror)) : name;
   }
   
   // TODO(jacobr): handle setters correctyl.
  
positive.code:           if (isDom) {
              sbPatch.write("  static Type get instanceRuntimeType => ${classNameImpl};\n");
            }
            if (sbPatch.isNotEmpty) {
              var typeVariablesClause = '';
              if (!clazz.typeVariables.isEmpty) {
  
negative.code: final bool CHECK_JS_INVOCATIONS = true;
  
  final String _DART_RESERVED_NAME_PREFIX = r'JS$';
  // If a private class is defined to use @JS we need to inject a non-private
  // class with a name that will not cause collisions in the library so we can
  // make JSObject implement that interface even though it is in a different
  // library.
  final String escapePrivateClassPrefix = r'$JSImplClass23402893498';
  
  String _stripReservedNamePrefix(String name) =>
      name.startsWith(_DART_RESERVED_NAME_PREFIX)
  