Patch Changes
- 8cff139: Evaluated negative and non-finite numbers (
c={-1},d={NaN}) are static again. Since Babel 8 support,evaluateAndInlinebuilt them witht.valueToNode, which gives-1/0 / 0expressions rather than numeric literals, so they stopped being inlined into templates (SSR emittedssrAttribute("c", -1)instead ofc="-1") and diverged from@solidjs/compiler(the parity probes' "exotic literal holes"). They are now NumericLiteral nodes again, built directly where @babel/types 8's builder would reject the value; both Babel majors print them as before. - 55c7329: Support
@babel/core8 alongside 7: the peer range is now^7.20.12 || ^8.0.0. SSR no longer readsScope#uids(removed in Babel 8), evaluated negative or non-finite numbers are built withvalueToNode,import()parsed asImportExpressionstays dynamic, and TSRX emits the AST shape of the running Babel major (type arguments, type parameter names,import(), enums, heritage). TSRX also keepsimport()options and class method type parameters, which it dropped before. - 9e1edbc: A lone dynamic spread on an SSR element (
<label {...props()} />) now defers behind a thunk like a spread beside other attributes, so it runs after the element's hydration key. A spread that created a memo shifted the element's key on the server only, and hydration missed the element (#4240).