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;
	    });
	  }
function setPoster(poster) {
	    var _this2 = this;

	    var passive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

	    
	    if (passive && this.poster) {
	      return Promise.reject(new Error('Poster already set'));
	    } 


	    this.media.setAttribute('poster', poster); 

	    return ready.call(this) 
	    .then(function () {
	      return loadImage(poster);
	    }).catch(function (err) {
	      
	      if (poster === _this2.poster) {
	        ui.togglePoster.call(_this2, false);
	      } 


	      throw err;
	    }).then(function () {
	      
	      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, "')"),
	        
	        backgroundSize: ''
	      });
	      ui.togglePoster.call(_this2, true);
	      return poster;
	    });
	  }
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 ; } ) ; }
Set the poster image (async) Used internally for the poster setter, with the passive option forced to false
Set the poster image ( async ) Used internally for the poster setter with the passive option forced to false