-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCSessionDescriptionCallback Mozilla RTCSessionDescriptionCallback documentation> 
newRTCSessionDescriptionCallback ::
                                 (MonadIO m) =>
                                   (Maybe RTCSessionDescription -> IO ()) ->
                                     m RTCSessionDescriptionCallback
newRTCSessionDescriptionCallback callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ThrowWouldBlock
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
newRTCSessionDescriptionCallback ::
                                 (MonadIO m) =>
                                   (Maybe RTCSessionDescription -> IO ()) ->
                                     m RTCSessionDescriptionCallback
newRTCSessionDescriptionCallback callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ThrowWouldBlock
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))
newRTCSessionDescriptionCallback callback
  = liftIO
      (RTCSessionDescriptionCallback <$>
         syncCallback1 ThrowWouldBlock
           (\ sdp -> fromJSValUnchecked sdp >>= \ sdp' -> callback sdp'))