]> gerrit.simantics Code Review - simantics/district.git/blob - is-implemented.js
93629d2f84768ab0872276f99fefbaff7c23723a
[simantics/district.git] / is-implemented.js
1 'use strict';
2
3 var validTypes = { object: true, symbol: true };
4
5 module.exports = function () {
6         var symbol;
7         if (typeof Symbol !== 'function') return false;
8         symbol = Symbol('test symbol');
9         try { String(symbol); } catch (e) { return false; }
10
11         // Return 'true' also for polyfills
12         if (!validTypes[typeof Symbol.iterator]) return false;
13         if (!validTypes[typeof Symbol.toPrimitive]) return false;
14         if (!validTypes[typeof Symbol.toStringTag]) return false;
15
16         return true;
17 };