function string() {
	var value;
	var uffff;
	var hex;
	var i;

	value = '';

	// When parsing for string values, we must look for `'` and `\` characters.
	if ( ch === '\'' || ch === '"' ) {
		while ( goNext() ) {
			if ( ch === '\'' || ch === '"' ) {
				goNext();
				return value;
			}
			if ( ch === '\\' ) {
				goNext();
				if ( ch === 'u' ) {
					uffff = 0;
					for ( i = 0; i < 4; i += 1 ) {
						hex = parseInt( goNext(), 16 );

						// eslint-disable-next-line max-depth
						if ( !isFinite( hex ) ) {
							break;
						}
						uffff = ( uffff * 16 ) + hex;
					}
					value += String.fromCharCode( uffff );
				} else if ( isString( escapee[ch] ) ) {
					value += escapee[ ch ];
				} else {
					break;
				}
			} else {
				value += ch;
			}
		}
	}
	error( 'Bad string' );
}
Parses a string value.

@private
@returns {string} parsed string