lib/compile.js
function appendExpression(prefix, token, suffix, isString) {
		if (state === 'very-first') {
			if (!isString) {
				builder.add('""+')
			}
		} else if (state === 'first') {
			builder.add('__o+=')
		} else {
			builder.add('+')
		}

		if (options.compileDebug && token) {
			builder.add(`(${getDebugMarker(token)},`)
		}
		if (prefix) {
			builder.add(prefix)
		}
		if (token) {
			if (token.type === 'source-builder') {
				builder.addBuilder(token.sourceBuilder)
			} else {
				builder.addToken(token)
			}
		}
		if (suffix) {
			builder.add(suffix)
		}
		if (options.compileDebug && token) {
			builder.add(')')
		}

		state = 'rest'
	}
function appendExpression(prefix, token, suffix, isString) {
		if (state === 'very-first') {
			if (!isString) {
				builder.add('""+')
			}
		} else if (state === 'first') {
			builder.add('__o+=')
		} else {
			builder.add('+')
		}

		if (options.compileDebug && token) {
			builder.add(`(${getDebugMarker(token)},`)
		}
		if (prefix) {
			builder.add(prefix)
		}
		if (token) {
			if (token.type === 'source-builder') {
				builder.addBuilder(token.sourceBuilder)
			} else {
				builder.addToken(token)
			}
		}
		if (suffix) {
			builder.add(suffix)
		}
		if (options.compileDebug && token) {
			builder.add(')')
		}

		state = 'rest'
	}
function appendExpression ( prefix , token , suffix , isString ) { if ( state === 'very-first' ) { if ( ! isString ) { builder . add ( '""+' ) } } else if ( state === 'first' ) { builder . add ( '__o+=' ) } else { builder . add ( '+' ) } if ( options . compileDebug && token ) { builder . add ( ` ${ getDebugMarker ( token ) } ` ) } if ( prefix ) { builder . add ( prefix ) } if ( token ) { if ( token . type === 'source-builder' ) { builder . addBuilder ( token . sourceBuilder ) } else { builder . addToken ( token ) } } if ( suffix ) { builder . add ( suffix ) } if ( options . compileDebug && token ) { builder . add ( ')' ) } state = 'rest' }
Append an expression that contributes directly to the output
@param {?string} prefix
@param {?Token|SourceBuilder} token
@param {?string} suffix
@param {boolean} isString - whether this expression certainly evaluates to a string
Append an expression that contributes directly to the output