anchor.diff:    /// The auth response.
     external AuthResponse getAuthResponse(bool includeAuthorizationData);
   
  +  /// Returns true if the user granted the specified scopes.
  +  ///
  +  /// The [scopes] is a space-delemited list of scopes.
  +  external bool hasGrantedScopes(String scopes);
  +
  +  /// Request additional scopes to the user.
  +  ///
  +  /// **Example**
  +  /// ```dart
  +  /// GoogleUser currentUser = getAuthInstance()?.currentUser?.get();
  +  ///
  +  /// final extraScope = 'https://www.googleapis.com/auth/webmasters.readonly';
  +  ///
  +  /// if (!currentUser.hasGrantedScopes(extraScope)) {
  +  ///   // We don't have the extract scope, so let's ask for it
  +  ///   currentUser = await promiseAsFuture(currentUser.grant(GrantOptions(
  +  ///     scope: extraScope,
  +  ///   )));
  +  /// }
  +  /// ```
  +  external Promise<GoogleUser> grant(GrantOptions options);
  +
     /// The basic profile info.
     external BasicProfile getBasicProfile();
   }
  
positive.code: @JS('gapi.auth2')
  library google_auth_js;
  
  import 'package:js/js.dart';
  
  /// Initializes the GoogleAuth object. You must call this method before calling
  /// gapi.auth2.GoogleAuth's methods.
  
negative.code:   /// The e-mail address of the user.
    external String getEmail();
  }
  
  @JS()
  @anonymous
  abstract class GrantOptions {
    external String get scope;
  
    external factory GrantOptions({
      String scope,
    });
  }
  