blob: 91a55254283b8d8db5a49f603f70f62b98be3f85 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3var callBound = require('call-bind/callBound');
4
5var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true);
6
7var Type = require('./Type');
8
9// https://262.ecma-international.org/9.0/#sec-thissymbolvalue
10
11module.exports = function thisSymbolValue(value) {
12 if (!$SymbolValueOf) {
13 throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object');
14 }
15 if (Type(value) === 'Symbol') {
16 return value;
17 }
18 return $SymbolValueOf(value);
19};