Corporate + Enterprise Beta

Compile selected JavaScript functions into per-build VM bytecode.

Mark security-critical functions with @virtualize. The hosted pipeline replaces supported function bodies with bytecode and a generated JavaScript interpreter, while the rest of the bundle continues through Maximum mode. Eligibility requires Corporate or Enterprise plus explicit beta enrollment.

What Changes

The selected function body no longer ships as source-level JavaScript.

Supported marked functions become instructions for a generated interpreter. Unmarked or unsupported functions remain protected by standard Maximum-mode transforms and are reported honestly in build warnings.

Selected functionsUse virtualization where its runtime cost is justified.
Per-build outputThe bytecode and interpreter shape are regenerated for each build.
Explicit fallbackSkipped constructs and sidecar limits produce warnings, not silent VM claims.

Read eligibility, marker, and compatibility details →

VM Beta at a Glance

Know the boundary before you enroll

VM protection is a selective hosted build option, not a switch in the free playground and not a promise that every JavaScript construct can be virtualized.

Eligibility

Corporate or Enterprise plan plus the per-account UseVMProtection beta flag.

Selection

Place @virtualize immediately above supported synchronous function declarations.

Output contract

A VM-enabled multi-file request returns one bundled JavaScript output with the interpreter inlined.

A backdrop of green binary code streaming downward, the visual language of protected code that no longer reveals strings, names, or branch structure to a static reader
Selective VM protection Marked supported functions become per-build bytecode; the remaining bundle stays in Maximum mode and keeps its normal compatibility workflow.
Protection Fit

Use Maximum mode when simple obfuscation is not enough

Maximum mode is for code that is valuable enough to justify stronger protection: licensing checks, paid-feature gates, proprietary algorithms, fraud logic, and browser code that competitors should not be able to copy easily.

Buyer Question JavaScript Obfuscator Maximum Mode Heavier Advanced Tools
Output is unreadable to a casual reviewer Yes
Readable names are removed and important strings are hidden.
Yes
Usually stronger on selected functions, with more runtime cost.
Original logic is harder to follow Yes
Structured code is transformed so the protected file no longer reads like the original.
Yes
Heavier tools can obscure selected functions even further.
Automated analysis has less reusable structure Yes
Maximum mode changes protected output across releases and removes easy anchors such as names and strings.
Yes
Advanced tools may add still heavier protection for a small number of functions.
Suitable for broader use across a bundle Strong
Designed as the stronger default for valuable public JavaScript.
Variable
Heavier protection is usually best limited to selected code paths.
Predictable cost without a sales call Strong
Published monthly plans, free tier, online and desktop entry points.
Sales-led
Most VM-bytecode vendors gate full features behind a quote process.
Extra protection for selected sensitive functions Yes · Corporate+
Advanced options are available for the most sensitive parts of a project. See the option docs or review the proof pack.
Yes
The defining feature of this category.
What Maximum Mode Emits

The protected output looks nothing like the original source

The example below is intentionally abbreviated, but it shows the practical outcome: the browser can run it, while a person reading the file loses the original names, strings, and structure.

Maximum mode output, abbreviated
var Target;(function(){
  var sigil='', shift=271-260;
  function decode(n){
    var s=1369013, a=n.length, l=[];
    for(var q=0;q<a;q++) l[q]=n.charAt(q);
    for(var q=0;q<a;q++){
      var e=s*(q+196)+(s%15607);
      var m=s*(q+719)+(s%44348);
      var i=e%a, v=m%a, z=l[i];
      l[i]=l[v]; l[v]=z; s=(e+m)%6906197;
    }
    return l.join('');
  }
  var key=decode('knimtxncjyruzgcotsqrpolbfrsdoatuvwech').substr(0,shift);
  var payload='4f...<encoded constant pool, 1.5KB>...3a';
  var ctor=decode[key], ev=ctor(sigil, decode(payload));
  ev(8288); return 5275;
})()

This is the practical goal of Maximum mode: shipped JavaScript remains executable, but the readable source story is gone.

Automated Analysis Resistance

Why changing output across releases matters

Automated tools are strongest when protected output follows a predictable pattern. Maximum mode changes the protected shape across releases, removes readable names, hides strings, and makes the original flow harder to identify.

Changes every release

Two releases of the same source do not need to expose the same protected shape, making repeated analysis less reusable.

Fewer readable anchors

Original identifiers, plain strings, and obvious business terms are removed or hidden so the file gives fewer clues at a glance.

Scrambled structure

The protected output no longer follows the same easy-to-read branch and loop structure as the original source.

Hidden values

Important strings, labels, and values are harder to inspect directly from the protected file.

Less predictable naming

Generated names are designed to be meaningless and less useful for pattern matching.

Higher effort to copy

Even partial understanding takes more work, and that work is less likely to transfer cleanly to the next protected release.

The result is not magic and not a replacement for server-side authority. It is a stronger practical barrier for code that must ship publicly.

Strongest Profile

Configure once, ship everywhere

The Maximum preset on the online tool and the desktop app's strongest profile are intended for the same use case: valuable JavaScript that needs stronger release protection.

1. Preserve contracts

Keep names stable when outside code, pages, or integrations still need to call them.

2. Scramble structure

Use stronger settings so the protected file no longer reads like the source you wrote.

3. Hide important values

Make visible text, labels, and sensitive client-side values harder to inspect directly.

4. Lock and ship

Add distribution constraints where useful, test the protected output, then publish only the protected files.

When Heavier Protection Is Needed

Use it only where the extra cost is worth it.

If your threat model includes professional reverse engineers spending serious time on a specific high-value secret, a heavier protection layer can be worth reviewing. Corporate and Enterprise customers can use advanced protection for selected sensitive functions without applying the highest-cost option to the whole project. Advanced protection docs · proof pack for reviewers.

For most commercial JavaScript, Maximum mode is the right strong baseline: easier to use broadly, easier to test, and still much harder to read than standard obfuscation.

Release checklist
1. Build JavaScript normally
2. Add public names to Variable Exclusion
3. Apply the Maximum profile (deep + flat + encrypted)
4. Protect generated JavaScript output
5. Run protected-build smoke tests
6. Deploy only protected files
Try It Now

Run the same input through Maximum and see for yourself.

Start with a small sample in the online tool. WinUI Local Standard protects basic ES5 .js offline, and paid Local Advanced keeps modern .js/.jsx source on-device after an online entitlement check. VM bytecode, mixed files, and hosted reports use the service.