esbuild icon indicating copy to clipboard operation
esbuild copied to clipboard

feat: drop unused local variables

Open sapphi-red opened this issue 2 years ago • 0 comments

This PR partially implements dropping unused local variables. Multi-level dropping (for example: a is unused and b depends on a) is not implemented.

This is useful for some cases like minifying IIFE wrapped output.

Example

Input

(function () {
  'use strict';

  const const1 = 0;
  let let1 = 0;
  var var1 = 0;

  const const2 = 0;
  let let2 = 0;
  var var2 = 0;
  console.log(const2, let2, var2);

})();

Current Output

(function() {
  "use strict";
  let let1 = 0;
  var var1 = 0;
  const const2 = 0;
  let let2 = 0;
  var var2 = 0;
  console.log(const2, let2, var2);
})();

New Output

(function() {
  "use strict";
  const const2 = 0;
  let let2 = 0;
  var var2 = 0;
  console.log(const2, let2, var2);
})();

sapphi-red avatar Jun 30 '22 11:06 sapphi-red