Skip to main content
Option: transforms.constLetToVar

What it changes

Converts eligible let and const declarations to var, renaming bindings when needed to avoid hoisting conflicts. Loop bindings stay unchanged when conversion would alter iteration behavior.

Before and after

Configuration

Run this transform by setting transforms.constLetToVar 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