anchor.diff:    /// Use `createSyntheticUIEvent` instead.
     external factory SyntheticUIEvent._();
   
  +  /// Details about the event, depending on the event type.
  +  ///
  +  /// See <https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail>
     external num get detail;
  +
  +  /// A `WindowProxy` that contains the view that generated the event.
     external get view;
   }
   
  +/// A [SyntheticEvent] wrapper that is specifically backed by a [SyntheticWheelEvent].
  +///
  +/// See <https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent>
   @JS()
   class SyntheticWheelEvent extends SyntheticEvent {
     /// [SyntheticWheelEvent]s cannot be manually instantiated.
  
positive.code:   /// Use `createSyntheticEvent` instead.
    external factory SyntheticEvent._();
  
    external bool get bubbles;
    external bool get cancelable;
    external get currentTarget;
    external bool get defaultPrevented;
    external num get eventPhase;
    external bool get isTrusted;
    external get nativeEvent;
    external get target;
    external num get timeStamp;
    external String get type;
  
    external void stopPropagation();
    external void preventDefault();
  
    external void persist();
  
    external bool isPersistent();
  }
  
  @JS()
  class SyntheticClipboardEvent extends SyntheticEvent {
    /// [SyntheticClipboardEvent]s cannot be manually instantiated.
  
negative.code:   /// Use `createSyntheticKeyboardEvent` instead.
    external factory SyntheticKeyboardEvent._();
  
    /// Returns `true` if the `Alt` (`Option` or `⌥` on OS X) key was active when the key event was generated.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/altKey>
    external bool get altKey;
  
    /// Returns a [String] representing the character value of the key.
    ///
    /// If the key corresponds to a printable character, this value is a non-empty Unicode string containing that character.
    /// If the key doesn't have a printable representation, this is an empty string.
    external String get char;
  
    /// Returns `true` if the `Ctrl` key was active when the key event was generated.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/ctrlKey>
    external bool get ctrlKey;
  
    /// Returns a [String] representing a locale string indicating the locale the keyboard is configured for.
    ///
    /// This may be the empty string if the browser or device doesn't know the keyboard's locale.
    external String get locale;
  
    /// Returns a [num] representing the location of the key on the keyboard or other input device.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/location>
    external num get location;
  
    /// Returns a [String] representing the key value of the key represented by the event.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key>
    external String get key;
  
    /// Returns `true` if the `Meta` key (on Mac keyboards, the `⌘ Command key`; on Windows keyboards, the Windows key (`⊞`))
    /// was active when the key event was generated.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/metaKey>
    external bool get metaKey;
  
    /// Returns `true` if the key is being held down such that it is automatically repeating.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat>
    external bool get repeat;
  
    /// Returns `true` if the `Shift` key was active when the key event was generated.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/shiftKey>
    external bool get shiftKey;
  
    /// Returns a [num] representing a system and implementation dependent numerical code identifying the unmodified
    /// value of the pressed key.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode>
    external num get keyCode;
  
    /// Returns a [num] representing the Unicode reference number of the key; this attribute is used only by the `keypress` event.
    ///
    /// For keys whose `char` attribute contains multiple characters, this is the Unicode value of the first character in
    /// that attribute. In Firefox 26 this returns codes for printable characters.
    ///
    /// See <https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/charCode>
    external num get charCode;
  }
  
  /// A [SyntheticEvent] wrapper that is specifically backed by a [CompositionEvent].
  ///
  /// See <https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent>
  @JS()
  class SyntheticCompositionEvent extends SyntheticEvent {
    /// [SyntheticCompositionEvent]s cannot be manually instantiated.
  