function set( engine ) {
	/* eslint-disable no-invalid-this */
	if ( !contains( ENGINES, engine ) ) {
		throw new TypeError( format( 'invalid assignment. `%s` must be one of the following: "%s". Value: `%s`.', 'engine', ENGINES.join( '", "' ), engine ) );
	}
	if ( engine !== this._engine ) {
		debug( 'Current value: %s.', this._engine );

		this._engine = engine;
		debug( 'New value: %s.', this._engine );

		this.emit( 'change' );
	}
}
Sets the engine.

@private
@param {string} engine - engine
@throws {TypeError} must be a recognized engine