1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-12 20:27:30 +08:00
otto/value_primitive.go
Robert Krimen 918abeb8d8 The zero value of Value is now defined to be undefined
Previously, it was a publically accessible but invalid value (valueEmpty).

* Deprecate internal use of UndefinedValue(), NullValue(), FalseValue(), TrueValue()
* Guard against Empty, Result, Reference values from escaping the package
2014-05-28 21:23:32 -07:00

24 lines
582 B
Go

package otto
func toStringPrimitive(value Value) Value {
return _toPrimitive(value, defaultValueHintString)
}
func toNumberPrimitive(value Value) Value {
return _toPrimitive(value, defaultValueHintNumber)
}
func toPrimitive(value Value) Value {
return _toPrimitive(value, defaultValueNoHint)
}
func _toPrimitive(value Value, hint _defaultValueHint) Value {
switch value.kind {
case valueNull, valueUndefined, valueNumber, valueString, valueBoolean:
return value
case valueObject:
return value._object().DefaultValue(hint)
}
panic(hereBeDragons(value.kind, value))
}