react/compiler
Jack Pope 16367ceb02
[compiler] Fix dropped ref with spread props in InlineJsxTransform (#31726)
When supporting ref as prop in
https://github.com/facebook/react/pull/31558, I missed fixing the
optimization to pass a spread-props-only props object in without an
additional object copy. In the case that we have only a ref along with a
spread, we cannot return only the spread object. This results in
dropping the ref.

In this example
```javascript
<Foo ref={ref} {...props} />
```

The bugged output is:
```javascript
{
  // ...
  props: props
}
```

With this change we now get the correct output:
```javascript
{
  // ...
  props: {ref: ref, ...props}
}
```
2024-12-10 16:11:17 -05:00
..
apps/playground [playground] Fix broken tests (#31573) 2024-11-18 19:18:09 -05:00
crates Fix rust lints 2024-08-06 14:48:32 -04:00
docs Punctuation & correcting spelling mistakes (#30592) 2024-08-09 14:53:53 -07:00
fixtures [cleanup] Remove compiler runtime-compat fixture library (#31430) 2024-11-05 14:14:39 -05:00
packages [compiler] Fix dropped ref with spread props in InlineJsxTransform (#31726) 2024-12-10 16:11:17 -05:00
scripts [ci:compiler] Only add latest tag to non-experimental (#31288) 2024-10-18 13:24:30 -04:00
.eslintrc.js [compiler:codegen] Wrap non-ascii characters in JsxExpressionContainer 2024-06-21 10:08:15 -04:00
.gitignore
Cargo.lock
Cargo.toml
package.json [compiler] Update hermes deps (#31586) 2024-11-19 10:52:48 -05:00
README.md
rust-toolchain.toml
rustfmt.toml
yarn.lock Revert "Replace deprecated dependency in eslint-plugin-react-compiler" (#31665) 2024-12-03 11:46:08 -05:00

React Compiler

React Compiler is a compiler that optimizes React applications, ensuring that only the minimal parts of components and hooks will re-render when state changes. The compiler also validates that components and hooks follow the Rules of React.

More information about the design and architecture of the compiler are covered in the Design Goals.

More information about developing the compiler itself is covered in the Development Guide.