Находит добавленные и переопределённые свойства на navigator, сверяясь с «чистым» iframe и прототипом.
| Свойство | Статус | Экземпляр (descriptor) | База (iframe / прототип) | Заметки |
|---|---|---|---|---|
| Сканирование… | ||||
navigator, но его нет среди own у «чистого» iframe (или он должен жить только на прототипе). Частый след ручного defineProperty/navigator.foo = ….Reflect.ownKeys() (и строки, и символы, и не-enumerable), затем вытягиваем дескрипторы пачкой через Object.getOwnPropertyDescriptors(). :contentReference[oaicite:2]{index=2}navigator из iframe srcdoc, как делают анти-спуфинг-инструменты (идея «prototype/instance lies» из CreepJS). :contentReference[oaicite:3]{index=3}