diff options
Diffstat (limited to 'src/node_modules/es-abstract/2019/thisSymbolValue.js')
-rw-r--r-- | src/node_modules/es-abstract/2019/thisSymbolValue.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/2019/thisSymbolValue.js b/src/node_modules/es-abstract/2019/thisSymbolValue.js new file mode 100644 index 0000000..3c3b347 --- /dev/null +++ b/src/node_modules/es-abstract/2019/thisSymbolValue.js @@ -0,0 +1,19 @@ +'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); +}; |