whole_func_string: function getUserMedia (constraints) {
    if (props('navigator.mediaDevices.getUserMedia').hadBy(window)) {
      let medias = props('navigator.mediaDevices').from(window)
      return medias.getUserMedia(constraints)
    }
    let userMediaGetter = navigator.getUserMedia ||
                          navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia ||
                          navigator.msGetUserMedia
    if (!userMediaGetter) {
      throw new Error('getUserMedia is not supported by this browser')
    }
    return new Promise((resolve, reject) => {
      userMediaGetter(constraints, resolve, reject)
    })
  }
func_code_string: function getUserMedia (constraints) {
    if (props('navigator.mediaDevices.getUserMedia').hadBy(window)) {
      let medias = props('navigator.mediaDevices').from(window)
      return medias.getUserMedia(constraints)
    }
    let userMediaGetter = navigator.getUserMedia ||
                          navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia ||
                          navigator.msGetUserMedia
    if (!userMediaGetter) {
      throw new Error('getUserMedia is not supported by this browser')
    }
    return new Promise((resolve, reject) => {
      userMediaGetter(constraints, resolve, reject)
    })
  }
func_documentation_string: Shim for MediaDevices#getUserMedia method
  @param {object} constraints - The user media constraints