Babel Closure Elimination
This is a Babel plugin that eliminates unnecessary closures from your JavaScript in the name of performance.
Note: Now requires Babel 6.
What?
Turns code like this:
function demo (input) {
return input.map(item => item + 1).map(item => item + 2);
}
Into code like this:
function _ref(item) {
return item + 1;
}
function _ref2(item) {
return item + 2;
}
function demo(input) {
return input.map(_ref).map(_ref2);
}
Why?
Because it's faster and more memory efficient in most JavaScript engines, and means you can safely use arrow functions without a performance penalty in most cases.
Installation
First, install via npm.
npm install --save-dev babel-plugin-closure-elimination
Then, in your babel configuration (usually in your .babelrc
file), add "closure-elimination"
to your list of plugins:
{
"plugins": ["closure-elimination"]
}
License
Published by codemix under a permissive MIT License, see LICENSE.md.