diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.expect.md b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.expect.md new file mode 100644 index 0000000000..3c77c8c822 --- /dev/null +++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.expect.md @@ -0,0 +1,57 @@ + +## Input + +```javascript +import { identity } from "shared-runtime"; + +const $ = "module_$"; +const t0 = "module_t0"; +const c_0 = "module_c_0"; +function useFoo(props: { value: number }): number { + const results = identity(props.value); + console.log($); + console.log(t0); + console.log(c_0); + return results; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useFoo, + params: [{ value: 0 }], +}; + +``` + +## Code + +```javascript +import { unstable_useMemoCache as useMemoCache } from "react"; +import { identity } from "shared-runtime"; + +const $ = "module_$"; +const t0 = "module_t0"; +const c_0 = "module_c_0"; +function useFoo(props) { + const $ = useMemoCache(2); + let t0; + if ($[0] !== props.value) { + t0 = identity(props.value); + $[0] = props.value; + $[1] = t0; + } else { + t0 = $[1]; + } + const results = t0; + console.log($); + console.log(t0); + console.log(c_0); + return results; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useFoo, + params: [{ value: 0 }], +}; + +``` + \ No newline at end of file diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.ts b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.ts new file mode 100644 index 0000000000..1608c65a91 --- /dev/null +++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/todo-rename-source-variables.ts @@ -0,0 +1,17 @@ +import { identity } from "shared-runtime"; + +const $ = "module_$"; +const t0 = "module_t0"; +const c_0 = "module_c_0"; +function useFoo(props: { value: number }): number { + const results = identity(props.value); + console.log($); + console.log(t0); + console.log(c_0); + return results; +} + +export const FIXTURE_ENTRYPOINT = { + fn: useFoo, + params: [{ value: 0 }], +}; diff --git a/compiler/packages/sprout/src/SproutTodoFilter.ts b/compiler/packages/sprout/src/SproutTodoFilter.ts index 94b04a9680..c6a7c35c47 100644 --- a/compiler/packages/sprout/src/SproutTodoFilter.ts +++ b/compiler/packages/sprout/src/SproutTodoFilter.ts @@ -462,6 +462,10 @@ const skipFilter = new Set([ "fbt-preserve-jsxtext", "todo.useContext-mutate-context-in-callback", "loop-unused-let", + + + // Bug in Forget output + "todo-rename-source-variables", ]); export default skipFilter; diff --git a/compiler/packages/sprout/src/shared-runtime.ts b/compiler/packages/sprout/src/shared-runtime.ts index f266a5e519..e30e72e967 100644 --- a/compiler/packages/sprout/src/shared-runtime.ts +++ b/compiler/packages/sprout/src/shared-runtime.ts @@ -135,7 +135,6 @@ export function Text(props: { return React.createElement("div", null, props.value, props.children); } - export function StaticText1(props: { children?: Array }) { return React.createElement("div", null, "StaticText1", props.children); } @@ -156,11 +155,7 @@ export function RenderPropAsChild(props: { } export function Stringify(props: any): React.ReactElement { - return React.createElement( - "div", - null, - toJSON(props), - ); + return React.createElement("div", null, toJSON(props)); } // helper functions