Projekt

Obecné

Profil

Stáhnout (852 Bajtů) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
'use strict';
2
3
var GetIntrinsic = require('../GetIntrinsic');
4
5
var callBound = require('./callBound');
6
7
var $SyntaxError = GetIntrinsic('%SyntaxError%');
8
var symToStr = callBound('Symbol.prototype.toString', true);
9
10
var getInferredName = require('./getInferredName');
11
12
module.exports = function getSymbolDescription(symbol) {
13
	if (!symToStr) {
14
		throw new $SyntaxError('Symbols are not supported in this environment');
15
	}
16
	var str = symToStr(symbol); // will throw if not a symbol
17
18
	if (getInferredName) {
19
		var name = getInferredName(symbol);
20
		if (name === '') { return; }
21
		// eslint-disable-next-line consistent-return
22
		return name.slice(1, -1); // name.slice('['.length, -']'.length);
23
	}
24
25
	var desc = str.slice(7, -1); // str.slice('Symbol('.length, -')'.length);
26
	if (desc) {
27
		// eslint-disable-next-line consistent-return
28
		return desc;
29
	}
30
};