From 91e4f0712ec6da30b01054cab439d985798a9ebb Mon Sep 17 00:00:00 2001 From: Lauren Tan Date: Wed, 24 Jul 2024 15:57:03 -0400 Subject: [PATCH] [compiler] Repro for outlining bug in funcexprs I discovered this compiler crash while trying to do an internal sync of the compiler. Any kind of outlining appears to crash the babel plugin when the component is a function expression. ghstack-source-id: 4f717674af91d4d4b730e64cbd7a144b9faab13e Pull Request resolved: https://github.com/facebook/react/pull/30443 --- ...error.bug-outlining-in-func-expr.expect.md | 24 +++++++++++++++++++ .../error.bug-outlining-in-func-expr.js | 9 +++++++ 2 files changed, 33 insertions(+) create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.expect.md create mode 100644 compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.js diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.expect.md new file mode 100644 index 0000000000..1a6995067d --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.expect.md @@ -0,0 +1,24 @@ + +## Input + +```javascript +const Component2 = props => { + return ( + + ); +}; + +``` + + +## Error + +``` +Invalid value used in weak set +``` + + \ No newline at end of file diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.js b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.js new file mode 100644 index 0000000000..f8bef4f192 --- /dev/null +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/error.bug-outlining-in-func-expr.js @@ -0,0 +1,9 @@ +const Component2 = props => { + return ( + + ); +};