Skip to main content
Version: 1.0.0

Recursive Discriminator API

Reproduces a crash where each oneOf branch under rule_item declares its own discriminator on the same property (technique) with no mapping. getDiscriminator borrows a branch's discriminator by reference for the parent oneOf, and DiscriminatorNode then mutates that shared object's mapping to the parent's variant set, which includes the branch itself. Rendering the branch then re-enters DiscriminatorNode with a mapping pointing back to itself and recurses until the tab crashes. The fix clones the borrowed discriminator so the inferred mapping stays local to the node.