18 lines
474 B
JavaScript
18 lines
474 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var validTypes = { object: true, symbol: true };
|
||
|
|
||
|
module.exports = function () {
|
||
|
var symbol;
|
||
|
if (typeof Symbol !== 'function') return false;
|
||
|
symbol = Symbol('test symbol');
|
||
|
try { String(symbol); } catch (e) { return false; }
|
||
|
|
||
|
// Return 'true' also for polyfills
|
||
|
if (!validTypes[typeof Symbol.iterator]) return false;
|
||
|
if (!validTypes[typeof Symbol.toPrimitive]) return false;
|
||
|
if (!validTypes[typeof Symbol.toStringTag]) return false;
|
||
|
|
||
|
return true;
|
||
|
};
|