value_primitive.go 582 B

123456789101112131415161718192021222324
  1. package otto
  2. func toStringPrimitive(value Value) Value {
  3. return _toPrimitive(value, defaultValueHintString)
  4. }
  5. func toNumberPrimitive(value Value) Value {
  6. return _toPrimitive(value, defaultValueHintNumber)
  7. }
  8. func toPrimitive(value Value) Value {
  9. return _toPrimitive(value, defaultValueNoHint)
  10. }
  11. func _toPrimitive(value Value, hint _defaultValueHint) Value {
  12. switch value.kind {
  13. case valueNull, valueUndefined, valueNumber, valueString, valueBoolean:
  14. return value
  15. case valueObject:
  16. return value._object().DefaultValue(hint)
  17. }
  18. panic(hereBeDragons(value.kind, value))
  19. }