M+Minify++

Production assessment ยท updated after the HTML and JavaScript conformance audits

Is Minify++ production-ready?

Yes, for its documented role as a conservative final-artifact minifier. That assessment now rests on independent CSS, HTML and JavaScript conformance suites, semantic and parser differentials across the other formats, sanitizer-backed mutation testing, synchronized Nift integration and published cross-platform release artifacts.

Production-ready within the documented contract.Minify++ is suitable when a build needs small, dependency-light native minification without handing the tool responsibility for compilation, bundling or AST-level optimization.

Why the answer is yes

  • The final CSS conformance run passed all 31,155 WPT-derived cases through Chromium's parser and strengthened structured-CSSOM oracle.
  • The final HTML run passed all 9,651 eligible WPT documents through a retained-DOM oracle, after 14 differences drove implementation and harness repairs.
  • The final JavaScript run passed all 39,741 Test262 programs that were executable in the selected Node runtime; 8,270 additional selected cases are explicitly classified as runtime-inapplicable rather than counted as passes.
  • The remaining complete external suites pass 221/221 JSX/TSX programs, 93/93 JSON documents, 535/535 conservative XML documents and 1,176/1,176 structural SVG documents.
  • The external suites finish with zero retained structural, token or transformed-runtime failures inside their published eligibility contracts.
  • The current JavaScript real-bundle gate validates all 12 benchmark artifacts in conservative, structured and aggressive modes (36/36 outputs), with performance-sensitive changes compared against same-run OXC, SWC, esbuild and Terser controls.
  • 15,459 generated JavaScript programs execute before and after minification with equivalent observed behavior.
  • 180 generated JSX/TSX programs pass reference parsing and second-pass checks.
  • 115 generated non-JavaScript documents exercise the supported HTML, CSS, JSON, XML and SVG contracts.
  • 7,000,000 deterministic mutations pass across all seven format modes under ordinary and ASan/UBSan builds.
  • The standalone and Nift-embedded implementations pass an exact 20-file synchronization gate.
  • make distcheck validates a clean committed source archive rather than relying on an already-built working tree.
  • Version 1.1.3 is the current tagged release checkpoint; the repository is now on the 1.1.4 development line. Release archives remain checksum-covered for Linux, macOS and Windows through the rehearsed workflow.

What the CSS conformance work changed

The earlier test wall was strong enough to find many scanner errors, but it still missed a real stylesheet corruption. The response was to add an independent oracle rather than simply add one more fixture. The conformance lab extracts CSS from Web Platform Tests, minifies it in bounded batches, then asks Chromium whether the original and transformed stylesheets produce the same structured rules, selectors, conditions, declarations and descriptors.

In the first strengthened snapshot, 30,579 of 31,137 cases passed the structured comparison. Of 558 diagnostics, 17 exposed real Minify++ defects, two exposed UTF-16 extraction defects in the harness, and 539 reduced to verified lexical-trivia differences. Further adversarial review expanded the oracle to cover descriptor-bearing rules, @import and @charset, exposing an additional escape-whitespace defect.

The corrected full corpus passes 31,155 / 31,155.

At WPT revision a53926ac643a, the repaired implementation and strengthened oracle completed with zero CSSOM differences, minification errors, browser rejections, source rejections or unverified cases.

Read the complete conformance methodology and results.

Evidence is deliberately layered

No single test establishes that a minifier preserves meaning. Minify++ therefore combines several different failure oracles:

  • Execution: generated JavaScript is run before and after transformation.
  • Reference parsers: JSX/TSX and structured formats are checked through independent parsers.
  • Browser semantics: Chromium CSSOM comparisons catch stable but meaning-changing CSS output.
  • Mutation and sanitizers: malformed and adversarial inputs attack crashes, hangs, unbounded growth and unsafe memory behavior.
  • Second-pass acceptance: successful output must remain inside Minify++'s own supported language.
  • Packaging and integration: clean archives, published installers and the Nift synchronization gate exercise the code as users consume it.

Known boundaries

  • Not a compiler or bundler: Minify++ does not compile TypeScript or Sass, resolve module graphs or tree-shake. Structured/aggressive JavaScript modes can perform bounded scope-aware renaming and local optimization, but they are explicitly opt-in and are not a general compiler pipeline.
  • HTML: raw script/style bodies, foreign-content subtrees and embedded template content are preserved rather than recursively transformed. The DOM oracle covers eligible static UTF-8 WPT documents, not server-generated fixtures or every possible browser side effect.
  • JavaScript runtime coverage: the pinned Test262 campaign classifies runtime-inapplicable cases separately rather than counting them as passes; current optimizer checkpoints must retain zero transformed semantic failures.
  • XML/SVG: these are conservative lexical modes, not complete validating XML processors.
  • TypeScript: there is no general TypeScript input mode. TSX-aware JSX boundaries do not amount to TypeScript compilation.
  • Finite evidence: large external corpora and mutation campaigns increase confidence but cannot prove correctness for every future grammar extension.
  • Performance: published measurements are repeatable regression references for their stated hosts and fixtures, not universal throughput promises.
  • Filesystem durability: staged in-place replacement protects against ordinary write failures but does not claim power-loss durability or preservation of every filesystem metadata field.

What would change this assessment?

A supported input changing meaning, a crash, hang or unbounded-growth case, an unexplained corpus regression, drift between the standalone and Nift-embedded copies, unsafe file replacement, a failed clean-package gate, or public claims expanding beyond tested behavior would all require the assessment to be revisited.

The candid conclusion

Minify++ is production-ready because its scope is narrow, its transformations are conservative and its evidence uses independent semantic oracles where simple output checks are insufficient. The CSS, HTML and JavaScript audits found real faults, strengthened their harnesses, converted repaired families into durable tests and returned the applicable corpora to zero transformed differences. A finite corpus is still evidence rather than a universal proof.

Install Minify++ Inspect conformance evidence