This is a good catch, we should be binding cljs.analyzer/unchecked-if before analyzing or compiling a namespace to avoid other threads seeing a state change. It should also just get a simple false root binding and then we can avoid reader conditionals.
When compiling a large project with
arallel-build true
I see intermitted failures in a test that parses "0" withcljs.reader/read-string
.Inspecting the difference in generated code between a successful build and failed build, I see the following difference in
cljs.reader/read-number
: