Skip to main content
Option: transforms.arrowToFunction

What it changes

Converts eligible arrow functions to function expressions while preserving their lexical captures. Arrows that use super or whose values escape stay unchanged.

Before and after

Configuration

Run this transform by setting transforms.arrowToFunction to true:
obfuscate.mjs

View the implementation

Open the TypeScript implementation on GitHub.

Read the behavior tests

Review behavior checks and cases this transform leaves alone.
Last modified on August 26, 2026