diff --git a/compiler/packages/babel-plugin-react-forget/src/HIR/Environment.ts b/compiler/packages/babel-plugin-react-forget/src/HIR/Environment.ts index 749e40d4d9..c89fe379a2 100644 --- a/compiler/packages/babel-plugin-react-forget/src/HIR/Environment.ts +++ b/compiler/packages/babel-plugin-react-forget/src/HIR/Environment.ts @@ -50,6 +50,9 @@ export type Hook = { export type EnvironmentConfig = Partial<{ customHooks: Map; + // 🌲 + enableForest: boolean; + /** * Enable memoization of JSX elements in addition to other types of values. When disabled, * other types (objects, arrays, call expressions, etc) are memoized, but not known JSX diff --git a/compiler/packages/fixture-test-utils/src/compiler-utils.ts b/compiler/packages/fixture-test-utils/src/compiler-utils.ts index 43bcaad861..581611ed21 100644 --- a/compiler/packages/fixture-test-utils/src/compiler-utils.ts +++ b/compiler/packages/fixture-test-utils/src/compiler-utils.ts @@ -28,6 +28,7 @@ export function transformFixtureInput( let validateNoSetStateInRender = true; let enableEmitFreeze = null; let compilationMode: CompilationMode = "all"; + let enableForest = false; if (firstLine.indexOf("@compilationMode(annotation)") !== -1) { assert( @@ -83,6 +84,9 @@ export function transformFixtureInput( importSpecifierName: "makeReadOnly", }; } + if (firstLine.includes("@enableForest true")) { + enableForest = true; + } return pluginFn( input, @@ -111,6 +115,7 @@ export function transformFixtureInput( validateNoSetStateInRender, enableEmitFreeze, assertValidMutableRanges: true, + enableForest, }, compilationMode, logger: null,