dillon1000/react
Commit
Browse files Fix JSX form of fbt
Fixes `<fbt>`. This required a bunk of yak shaving to work through several issues: * First, there was a bug in codegen for JsxNamedspacedName. I added handling for it for identifiers, but JsxNamespacedName gets converted to a Primitive. The output looked correct because Babel happily creates invalid Jsx identifiers! * Next, I needed to add locations to JSX nodes. It took me a while to pinpoint which specific node needed the location, so I ended up just adding locations to all the parts of a Jsx element. * That uncovered the fact that FBT was expecting the `<fbt:param>`'s `name` attribute value to be a StringLiteral, not a StringLiteral wrapped in a JsxExpressionContainer. So now we special-case JsxAttribute and emit raw StringLiteral (either is allowed per the spec) And with that, voila, `<fbt>` works.
Changed paths33 files
First-parent comparisoncompiler/forget/src/ReactiveScopes/CodegenReactiveFunction.ts ModifiedM compiler/forget/src/__tests__/fixtures/compiler/alias-computed-load.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/alias-nested-member-path-mutate.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/assignment-expression-computed.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/computed-store-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/destructuring-assignment.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/destructuring.expect.md ModifiedD compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params-complex-param-value.expect.md DeletedD compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params.expect.md DeletedM compiler/forget/src/__tests__/fixtures/compiler/escape-analysis-non-escaping-interleaved-allocating-dependency.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/escape-analysis-non-escaping-interleaved-allocating-nested-dependency.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/escape-analysis-non-escaping-interleaved-primitive-dependency.expect.md ModifiedA compiler/forget/src/__tests__/fixtures/compiler/fbt-params-complex-param-value.expect.md AddedR compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params-complex-param-value.js →compiler/forget/src/__tests__/fixtures/compiler/fbt-params-complex-param-value.js RenamedA compiler/forget/src/__tests__/fixtures/compiler/fbt-params.expect.md AddedR compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params.js →compiler/forget/src/__tests__/fixtures/compiler/fbt-params.js RenamedM compiler/forget/src/__tests__/fixtures/compiler/mutable-lifetime-with-aliasing.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/obj-literal-mutated-after-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/obj-mutated-after-if-else-with-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/obj-mutated-after-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/obj-mutated-after-nested-if-else-with-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/object-properties.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/property-assignment.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/reduce-reactive-cond-deps-subpath-order2.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/reduce-reactive-cond-deps-superpath-order2.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-property-alias-mutate-inside-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-property-mutate-2.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-property-mutate-alias.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/ssa-property-mutate.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/transitive-alias-fields.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/type-cast-expression.flow.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/type-test-field-store.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/type-test-polymorphic.expect.md ModifiedPatch
Files changed
Rendering syntax-highlighted changes…