esmangle icon indicating copy to clipboard operation
esmangle copied to clipboard

Make it possible to disable specific optimizations at will

Open mathiasbynens opened this issue 12 years ago • 3 comments

It would be cool if there was an boolean option that we could pass to esmangle for each of these optimizations: https://github.com/Constellation/esmangle/blob/c9393254197119a73f92055ee6d1887535cbf47d/lib/esmangle.js#L254-L288

All the options would be true by default, but that way people could disable optimizations they don’t need/want, e.g.:

esmangle.optimize(ast, {
  'pass/hoist-variable-to-arguments': false
});

mathiasbynens avatar Apr 01 '13 11:04 mathiasbynens

The pipeline is the optional second parameter in optimize. mangle just does name mangling. See this example esmangle usage: https://github.com/Constellation/esmangle/blob/c9393254197119a73f92055ee6d1887535cbf47d/bin/esmangle.js#L66-L69

michaelficarra avatar Apr 01 '13 12:04 michaelficarra

Thanks, @michaelficarra; I’ve edited my code example.

So far, I’ve only seen (and used) examples where null is passed as the second argument (= pipeline) to esmangle.optimize. What should pipeline look like if you only want to remove/avoid one or two optimizations?

mathiasbynens avatar Apr 01 '13 13:04 mathiasbynens

Yeah, unfortunately, it's a "replacement" API where, if you provide a value, it is used as an alternative to the default. If you want to disable just one transformation, you will have to explicitly specify all transformations except the one you'd like to omit. We could probably use an "except" style API.

michaelficarra avatar Apr 01 '13 13:04 michaelficarra