| | |
| | | var global = require('../internals/global'); |
| | | var call = require('../internals/function-call'); |
| | | var isObject = require('../internals/is-object'); |
| | | var isSymbol = require('../internals/is-symbol'); |
| | | var getMethod = require('../internals/get-method'); |
| | | var ordinaryToPrimitive = require('../internals/ordinary-to-primitive'); |
| | | var wellKnownSymbol = require('../internals/well-known-symbol'); |
| | | |
| | | var TypeError = global.TypeError; |
| | | var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); |
| | | |
| | | // `ToPrimitive` abstract operation |
| | |
| | | var result; |
| | | if (exoticToPrim) { |
| | | if (pref === undefined) pref = 'default'; |
| | | result = exoticToPrim.call(input, pref); |
| | | result = call(exoticToPrim, input, pref); |
| | | if (!isObject(result) || isSymbol(result)) return result; |
| | | throw TypeError("Can't convert object to primitive value"); |
| | | } |