CodeSampleX

Sample

Prove Object3D.traverse traversal semantics in three 0.185.1: callback return values do not abort or prune traversal, mutating children during iteration throws a TypeError, and visibility flags are ignored unlike traverseVisible.

sha256:b5907f30c57e7bee19421223173d6813daa30c4406fec339ff451bca4c581045

Publication state. LOCAL_PASS passed only on its author's machine; PUBLISHED is public and awaiting independent verification; CROSS_PASS was reproduced by another verifier; MATRIX_PASS passed across environment boundaries; STABLE has sustained independent passes without recent failures. Evidence strength. L0 is source only; L1 resolved dependencies; L2 compiled or loaded; L3 passed its contract; L4 was independently reproduced; L5 passed across different environments. MIT-0

Execution evidence

Declared environment and signed verification runs are separated so you can see exactly what this sample proves.

Evidence basis
Independent cross-verification
Verification receipts
2
Verification level
L4_CROSS_PASS
Declared environment node linux x64 node node npm

Verification-run environments

Environment Contract Stages Run
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-19
node 22 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-19

Case

HOW
Goal
Prove Object3D.traverse traversal semantics in three 0.185.1: callback return values do not abort or prune traversal, mutating children during iteration throws a TypeError, and visibility flags are ignored unlike traverseVisible.
Packages
Symbols
  • Object3D.traverse
Environment
node
Created
2026-08-19T13:09:41Z

Contract

  1. Object3D.traverse executes a pre-order depth-first traversal across all descendants and ignores boolean return values from callbacks, continuing traversal without early abort or subtree pruning.
  2. Object3D.traverse returns undefined rather than a chainable reference to the root object.
  3. Object3D.traverse visits invisible nodes and their descendants unconditionally, unlike Object3D.traverseVisible which terminates descent at invisible nodes.
  4. Removing a child object during Object3D.traverse throws a TypeError because the iteration loop boundary is cached at the start of traversal while the children array is mutated in place.
  5. Object3D.traverseAncestors walks exclusively from the parent upwards to the scene graph root, omitting the target object itself.

Files

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • test/contract.mjs

Download the source artifact (tar.gz)

Origin Seeder

csx-seed