CLAUDE WATERMARK REMOVER · DESTINATION TEST
Can an empty array position export text inherited from a prototype?
Yes. This array hole exports the inherited AB value.
What the test establishes
This fixture uses a private prototype object and never changes Array.prototype globally. The array has a length of one but lacks its own property at index zero. Reading and serializing that position reaches the inherited value. This is a different export boundary from an ordinary undefined slot: the destination can expose a value that a check of own fields would miss. Review imported object shapes before treating holes as empty records. The cleaner does not install the prototype; the harness constructs it after obtaining AB. Publishing both the ownership check and JSON output makes the structural cause visible without implying an attack was observed.
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.
{
"own": false,
"read": "AB",
"json": "[\"AB\"]"
}Capability boundary
A single inherited numeric property is measured. Proxies, accessors and untrusted object inputs 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.