"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/es5-ext/node_modules/es6-symbol/README.md" (11 Apr 2017, 2129 Bytes) of package /windows/misc/atom-windows.zip:

As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.


ECMAScript 6 Symbol polyfill

For more information about symbols see following links - Symbols in ECMAScript 6 by Axel Rauschmayer - MDN Documentation - Specification


Underneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.


It’s safest to use es6-symbol as a ponyfill – a polyfill which doesn’t touch global objects:

var Symbol = require('es6-symbol');

If you want to make sure your environment implements Symbol globally, do:


If you strictly want to use polyfill even if native Symbol exists (hard to find a good reason for that), do:

var Symbol = require('es6-symbol/polyfill');


Best is to refer to specification. Still if you want quick look, follow examples:

var Symbol = require('es6-symbol');

var symbol = Symbol('My custom symbol');
var x = {};

x[symbol] = 'foo';
console.log(x[symbol]); 'foo'

// Detect iterable:
var iterator, result;
if (possiblyIterable[Symbol.iterator]) {
  iterator = possiblyIterable[Symbol.iterator]();
  result = iterator.next();
  while(!result.done) {
    result = iterator.next();



In your project path:

$ npm install es6-symbol

To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: Browserify, Webmake or Webpack

Tests Build Status

$ npm test