function compileValue(value) {
		if (value.subtype === 'array') {
			return compileArray(value)
		} else if (value.subtype === 'object') {
			return compileObject(value)
		} else if (value.subtype === 'mixin') {
			return compileMixin(value)
		} else if (value.subtype === 'js') {
			return compileJS(value)
		} else if (value.subtype === 'function') {
			return compileFunction(value)
		}
		throw new Error('Invalid subtype: ' + value.subtype)
	}
function compileValue(value) {
		if (value.subtype === 'array') {
			return compileArray(value)
		} else if (value.subtype === 'object') {
			return compileObject(value)
		} else if (value.subtype === 'mixin') {
			return compileMixin(value)
		} else if (value.subtype === 'js') {
			return compileJS(value)
		} else if (value.subtype === 'function') {
			return compileFunction(value)
		}
		throw new Error('Invalid subtype: ' + value.subtype)
	}
function compileValue ( value ) { if ( value . subtype === 'array' ) { return compileArray ( value ) } else if ( value . subtype === 'object' ) { return compileObject ( value ) } else if ( value . subtype === 'mixin' ) { return compileMixin ( value ) } else if ( value . subtype === 'js' ) { return compileJS ( value ) } else if ( value . subtype === 'function' ) { return compileFunction ( value ) } throw new Error ( 'Invalid subtype: ' + value . subtype ) }
Compile a value and append to generated code
@param {Value} value
@returns {string} - the resulting variable name
@private
Compile a value and append to generated code