* formatting * fix `typeof Symbol.prototype` Babel uses a helper function to return the correct value for `typeof obj` when obj is a Symbol and support for Symbol has been polyfilled. This function assumes that `obj.constructor === Symbol` implies `typeof obj === 'symbol'`. This isn't true when obj is `Symbol.prototype`. In that case (REPL from node 6, the same holds in Firefox): ``` > Symbol.prototype.constructor === Symbol true > typeof Symbol.prototype 'object' > ``` AFAICS, that's the only case where the assumption doesn't hold. The test added by this patch fails only on node 0.10, as 0.12 already has a native implementation of Symbol and the polyfill code doesn't run. This caused a problem in core-js when it's compiled with babel (the issue was isolated by @skozin here: https://github.com/zloirock/core-js/issues/189#issuecomment-209864582).
babel-plugin-transform-es2015-typeof-symbol
Installation
$ npm install babel-plugin-transform-es2015-typeof-symbol
Usage
Via .babelrc (Recommended)
.babelrc
{
"plugins": ["transform-es2015-typeof-symbol"]
}
Via CLI
$ babel --plugins transform-es2015-typeof-symbol script.js
Via Node API
require("babel-core").transform("code", {
plugins: ["transform-es2015-typeof-symbol"]
});