anchor.diff:        {DartType type,
         bool isStatic: false,
         bool useExtension,
  -      bool useDisplayName: false,
         bool alwaysSymbolizeNative: false,
         Element element}) {
       // Static members skip the rename steps and may require JS interop renames.
  
positive.code:   ///
    /// Unlike call sites, we always have an element available, so we can use it
    /// directly rather than computing the relevant options for [_emitMemberName].
    JS.Expression _declareMemberName(ExecutableElement e,
        {bool useExtension, useDisplayName = false}) {
      var name = (e is PropertyAccessorElement) ? e.variable.name : e.name;
      return _emitMemberName(name,
          isStatic: e.isStatic,
          useExtension:
              useExtension ?? _extensionTypes.isNativeClass(e.enclosingElement),
          useDisplayName: useDisplayName);
    }
  
    /// This handles member renaming for private names and operators.
  
negative.code: 
      // When generating synthetic names, we use _ as the prefix, since Dart names
      // won't have this (eliminated above), nor will static names reach here.
      switch (name) {
        case '[]':
          name = '_get';
          break;
        case '[]=':
          name = '_set';
          break;
        case 'unary-':
          name = '_negate';
          break;
        case 'constructor':
        case 'prototype':
          name = '_$name';
          break;
      }
  
      var result = _propertyName(name);
  