whole_func_string: function setPoster(poster) {
  	    var _this2 = this;
  
  	    var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  
  	    // Don't override if call is passive
  	    if (passive && this.poster) {
  	      return Promise.reject(new Error('Poster already set'));
  	    } // Set property synchronously to respect the call order
  
  
  	    this.media.setAttribute('poster', poster); // Wait until ui is ready
  
  	    return ready.call(this) // Load image
  	    .then(function () {
  	      return loadImage(poster);
  	    }).catch(function (err) {
  	      // Hide poster on error unless it's been set by another call
  	      if (poster === _this2.poster) {
  	        ui.togglePoster.call(_this2, false);
  	      } // Rethrow
  
  
  	      throw err;
  	    }).then(function () {
  	      // Prevent race conditions
  	      if (poster !== _this2.poster) {
  	        throw new Error('setPoster cancelled by later call to setPoster');
  	      }
  	    }).then(function () {
  	      Object.assign(_this2.elements.poster.style, {
  	        backgroundImage: "url('".concat(poster, "')"),
  	        // Reset backgroundSize as well (since it can be set to "cover" for padded thumbnails for youtube)
  	        backgroundSize: ''
  	      });
  	      ui.togglePoster.call(_this2, true);
  	      return poster;
  	    });
  	  }
func_code_string: function setPoster(poster) {
  	    var _this2 = this;
  
  	    var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  
  	    // Don't override if call is passive
  	    if (passive && this.poster) {
  	      return Promise.reject(new Error('Poster already set'));
  	    } // Set property synchronously to respect the call order
  
  
  	    this.media.setAttribute('poster', poster); // Wait until ui is ready
  
  	    return ready.call(this) // Load image
  	    .then(function () {
  	      return loadImage(poster);
  	    }).catch(function (err) {
  	      // Hide poster on error unless it's been set by another call
  	      if (poster === _this2.poster) {
  	        ui.togglePoster.call(_this2, false);
  	      } // Rethrow
  
  
  	      throw err;
  	    }).then(function () {
  	      // Prevent race conditions
  	      if (poster !== _this2.poster) {
  	        throw new Error('setPoster cancelled by later call to setPoster');
  	      }
  	    }).then(function () {
  	      Object.assign(_this2.elements.poster.style, {
  	        backgroundImage: "url('".concat(poster, "')"),
  	        // Reset backgroundSize as well (since it can be set to "cover" for padded thumbnails for youtube)
  	        backgroundSize: ''
  	      });
  	      ui.togglePoster.call(_this2, true);
  	      return poster;
  	    });
  	  }
func_documentation_string: Set the poster image (async) Used internally for the poster setter, with the passive option forced to false