Skip to main content
Before filing a bug, reduce the input to the smallest legal JavaScript program that still reproduces it. Small cases make transform and evaluation-order problems much easier to isolate.
1

Reduce the input

Remove application code and external dependencies until only the failing syntax and its observable result remain.
2

Include the complete options

Copy the exact object passed to obfuscate, including the seed and every transform override.
3

Record the environment

Include the webfuscator version, Node.js version, and operating system.
4

Compare observable behavior

Show the original and transformed return values, thrown error classes, mutations, or external calls. An output substring assertion alone does not prove a behavior bug.
5

Attach a runnable harness

Put the input, options, transformation, and comparison in one file when possible.

Reproduction template

reproduce.mjs
Adjust the evaluator to capture the behavior that changed. If the program should throw, compare the error classes and relevant properties.
Replace private source and external dependencies with a synthetic case. Never post credentials, customer data, or proprietary bundles.

Open a GitHub issue

Include the reduced input, full options, environment, expected result, actual result, and runnable harness.
Last modified on August 22, 2026