babel-plugin-closure-elimination

1.3.2 • Public • Published

Babel Closure Elimination

This is a Babel plugin that eliminates unnecessary closures from your JavaScript in the name of performance.

Build Status

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.

/babel-plugin-closure-elimination/

    Package Sidebar

    Install

    npm i babel-plugin-closure-elimination

    Weekly Downloads

    485

    Version

    1.3.2

    License

    MIT

    Unpacked Size

    9.96 kB

    Total Files

    4

    Last publish

    Collaborators

    • charlespick
    • gvozd