Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Why does my cleaned text display AB but fail a strict equality check?

A new String object is unequal to the primitive AB; its valueOf result is equal.

Tested 7 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

The visible text is identical, but one destination value is an object wrapper and the other is a primitive. Strict equality compares these values according to their types, not according to a rendered preview. If a receiving schema promises a primitive string, validate that contract before matching or storing the value. Unboxing can be appropriate when the wrapper is known and trusted; this experiment does not prescribe coercing arbitrary objects. The callback result itself is still a primitive. The harness introduces the wrapper afterwards, allowing the mismatch to be attributed to destination construction rather than to invisible residual characters.

Reproduce the observation

Save tested-app.js and reproduce.cjs together, then run node reproduce.cjs. Compare its output with the recorded observation. The harness executes the actual homepage callback in a minimal DOM and records its resulting field values and method calls. Destination operations run in Node.js; the homepage DOM is a controlled substitute. Runtime: v24.22.1. No submitted text or genuine Claude output is used.

{
  "primitive": "AB",
  "boxedType": "object",
  "strict": false,
  "unboxed": true
}

Capability boundary

One native String wrapper is measured. Custom conversion methods, loose equality and JSON export are excluded.

This Claude watermark remover edits a small selected character set. These callback observations do not establish authorship, detector scores, statistical-watermark removal or end-to-end browser behavior. For real work, keep the original and compare the exact result at its destination.

Primary material and next step

The tested first-party source snapshot and complete harness are the primary material for this page. For broader scope, read invisible Unicode versus AI watermarks, or return to the cleaner.