#1701·terser

fix: _default_options never awaits async infer_options calls, always returns empty object

Author: kumburovicbranko682-boopCreated Jun 27, 2026Updated Jun 27, 2026

Description

infer_options is an async function that returns a Promise, but _default_options calls it without await in two places: (1) Object.keys(infer_options({ 0: 0 })) receives a Promise object, not the resolved value — Object.keys() on a Promise yields [], so the forEach body never executes and the function always returns {}. (2) Inside the forEach, the result of infer_options({...}) is checked with if (options), but since a Promise is truthy, it would store the raw Promise rather than the resolved defs. The entire function is a no-op that always returns an empty object, meaning any consumer relying on _default_options() gets no option definitions.

Severity: high File: main.js

Expected Behavior

The code should handle this case properly to avoid unexpected errors or degraded quality.