function set( v ) {
	/* eslint-disable no-invalid-this */
	var isStr = isString( v );
	var i;
	if ( !isStr && !isStringArray( v ) ) {
		throw new TypeError( format( 'invalid assignment. `%s` must be a string or an array of strings. Value: `%s`.', 'symbols', v ) );
	}
	if ( isStr ) {
		v = [ v ];
	} else {
		v = v.slice();
	}
	for ( i = 0; i < v.length; i++ ) {
		if ( indexOf( SYMBOLS, v[i] ) === -1 ) {
			throw new Error( format( 'invalid assignment. Unrecognized/unsupported symbol. Value: `[%s]`.', v.join(',') ) );
		}
	}
	debug( 'Current value: %s.', JSON.stringify( this._symbols ) );

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

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

@private
@param {(string|StringArray)} v - data symbols
@throws {TypeError} must be a string or string array
@throws {Error} must be a supported symbol
@returns {void}