CLAUDE WATERMARK REMOVER · DESTINATION TEST
Is split with an empty separator safe for emoji?
No. The measured emoji survives cleaning, but split("") separates its surrogate halves. Spread iteration retains that emoji as one code point.
What the test establishes
The input intentionally combines a removable marker and an astral emoji. Cleanup removes the marker without changing the emoji. Empty-separator splitting then exposes two UTF-16 units for that symbol. If an integration uses this array for character editing, it can damage a symbol that the cleaner preserved.
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": "A😀",
"split": [
"A",
"\ud83d",
"\ude00"
],
"spread": [
"A",
"😀"
]
}Capability boundary
Spread iteration handles code points, not every user-perceived grapheme. This page tests split output structure; the separate character-count and emoji guides address display counts and preservation.
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.