ta
TanStack
GitHub
router
Workspace
GitHub
CI Pipeline Executions
Current execution
Succeeded
perf/structural-sharing-enumerable-keys
Runs and Agents
Configuration
Self-Healing CI
Project Graph
Circular Dependencies
Enterprise
Resource Usage
Analysis
Conformance
Enterprise
Runs
Current run
Succeeded
Tasks
Resource Usage
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
perf(router-core): faster enumerable-key collection in structural sharing getEnumerableOwnKeys (used by replaceEqualDeep) called Object.getOwnPropertyNames and then invoked propertyIsEnumerable once per key to verify every own string prop is enumerable. Replace that O(n) loop of JS method calls with Object.keys (native, enumerable-only) plus a single length comparison against getOwnPropertyNames to detect non-enumerable string props. Symbol handling is unchanged. Behavior is identical (verified against the existing suite + fuzzing): the function still returns the enumerable own keys in the same order and still bails (returns false) for objects with any non-enumerable own string or symbol property. replaceEqualDeep runs on every selector result on every state update when defaultStructuralSharing is enabled, so this is a hot client path for selector-heavy apps. Measured ~1.3-1.5x faster on typical router state.
nx run-many --target=build --exclude=examples/** --exclude=e2e/**
⌘K
Succeeded
nx run-many --target=build --exclude=examples/** --exclude=e2e/**
Click to copy
Linux
4 CPU cores
d7301af9
7664
Get faster results
Learn how to enable distribution.
Atomizer enabled
43 groups of tasks optimized.