README

# es6-symbol

## ECMAScript 6 Symbol polyfill

For more information about symbols see following links

- Symbols in ECMAScript 6 by Axel Rauschmayer
- MDN Documentation
- Specification

### Limitations

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

### Usage

If you'd like to use native version when it exists and fallback to ponyfill if it doesn't, use es6-symbol as following:

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

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

require("es6-symbol/implement");

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");

#### API

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) {
console.log(result.value);
result = iterator.next();
}
}

### Installation

#### NPM

In your project path:

    $ npm install es6-symbol

##### Browser

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

    $ npm test

## Security contact information

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

Get professional support for d with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.