function set( data ) {
	/* eslint-disable no-invalid-this */
	if ( !isArrayLike( data ) ) {
		throw new TypeError( format( 'invalid assignment. `%s` must be array-like. Value: `%s`.', 'data', data ) );
	}
	debug( 'Current value: %s.', JSON.stringify( this._data ) );

	this._data = data;
	debug( 'New Value: %s.', JSON.stringify( this._data ) );

	this.emit( 'change' );
}
Sets the data values.

## Notes

-   We always fire a `change` event when set, even if the provided reference is the same, to allow signaling that data values have changed (e.g., a data array has mutated).

@private
@param {ArrayLike} data - data values
@throws {TypeError} must be array-like