In https://codesandbox.io/s/solitary-smoke-e4ouv (10.1.1):
- The class→className aliasing code (1) seems to mutate the props to add a non-enumerable getter
- the forceUpdate (2) call seems to recycle the mutated props inside props.children (3)
- something weird happens and className becomes enumerable, even though it was never explicitly named (see output)
In https://codesandbox.io/s/solitary-smoke-e4ouv (10.1.1):