Show More
Commit Description:
utf8mb4
Commit Description:
utf8mb4
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/helpers/getSymbolDescription.js
| 30 lines
| 852 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var callBound = require('./callBound'); | ||||
var $SyntaxError = GetIntrinsic('%SyntaxError%'); | ||||
var symToStr = callBound('Symbol.prototype.toString', true); | ||||
var getInferredName = require('./getInferredName'); | ||||
module.exports = function getSymbolDescription(symbol) { | ||||
if (!symToStr) { | ||||
throw new $SyntaxError('Symbols are not supported in this environment'); | ||||
} | ||||
var str = symToStr(symbol); // will throw if not a symbol | ||||
if (getInferredName) { | ||||
var name = getInferredName(symbol); | ||||
if (name === '') { return; } | ||||
// eslint-disable-next-line consistent-return | ||||
return name.slice(1, -1); // name.slice('['.length, -']'.length); | ||||
} | ||||
var desc = str.slice(7, -1); // str.slice('Symbol('.length, -')'.length); | ||||
if (desc) { | ||||
// eslint-disable-next-line consistent-return | ||||
return desc; | ||||
} | ||||
}; | ||||