anchor.diff:   */
   class RTCPeerConnection {
     final HTML.RtcPeerConnection _jsPc;
  +  RTCSignalingState _signalingState;
  +  RTCIceGatheringState _iceGatheringState;
  +  RTCIceConnectionState _iceConnectionState;
   
     // public: delegate
     SignalingStateCallback onSignalingState;
  
positive.code:     });
      _jsPc.onSignalingStateChange.listen((_) {
        if (onSignalingState != null) {
          final state = signalingStateForString(_jsPc.signalingState);
          onSignalingState(state);
        }
      });
      JS.JsObject.fromBrowserObject(_jsPc)['ontrack'] =
  
negative.code:     },
      "optional": [],
    };
  
    RTCSignalingState get signalingState => _signalingState;
  
    RTCIceGatheringState get iceGatheringState => _iceGatheringState;
  
    RTCIceConnectionState get iceConnectionState => _iceConnectionState;
  
    RTCPeerConnection(this._jsPc) {
      _jsPc.onAddStream.listen((mediaStreamEvent) {
  