Projekt

Obecné

Profil

Stáhnout (852 Bajtů) Statistiky
| Větev: | Revize:
1
'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
};
(13-13/26)