'use strict'; var callBound = require('../helpers/callBound'); var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); var Type = require('./Type'); // https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue module.exports = function thisSymbolValue(value) { if (!$SymbolValueOf) { throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); } if (Type(value) === 'Symbol') { return value; } return $SymbolValueOf(value); };