CLAUDE WATERMARK REMOVER · DESTINATION TEST
Does Object.entries produce code-point entries for cleaned text?
No. The measured string entries use UTF-16 positions, so an astral emoji occupies two entries after its adjacent marker is removed.
What the test establishes
The cleaned string still holds one emoji code point. Object.entries boxes the string and enumerates its indexed units. The resulting keys zero and one represent surrogate halves, not two complete characters. A destination index built this way needs explicit unit semantics before it can be used for highlighting.
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.
{
"cleaned": "😀",
"entries": [
[
"0",
"\ud83d"
],
[
"1",
"\ude00"
]
],
"codepoints": [
"😀"
]
}Capability boundary
This measures enumeration rather than splitting or truncation. It does not model grapheme clusters, DOM text nodes or a database character collation.
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.