compiler: Represent pruned scopes instead of inlining
There are a few places where we want to check whether a value actually got memoized, and we currently have to infer this based on values that "should" have a scope and whether a corresponding scope actually exists. This PR adds a new ReactiveStatement variant to model a reactive scope block that was pruned for some reason, and updates all the passes that prune scopes to instead produce this new variant. ghstack-source-id: 91ba77d130b2e78435456dcf01fd76dfb5aa2ad3 Pull Request resolved: https://github.com/facebook/react/pull/29781
Showing
- compiler/packages/babel-plugin-react-compiler/src/HIR/HIR.ts 8 additions, 1 deletioncompiler/packages/babel-plugin-react-compiler/src/HIR/HIR.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/BuildReactiveBlocks.ts 1 addition, 0 deletions...-react-compiler/src/ReactiveScopes/BuildReactiveBlocks.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/CodegenReactiveFunction.ts 5 additions, 0 deletions...ct-compiler/src/ReactiveScopes/CodegenReactiveFunction.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/FlattenReactiveLoops.ts 8 additions, 1 deletion...react-compiler/src/ReactiveScopes/FlattenReactiveLoops.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/FlattenScopesWithHooksOrUse.ts 8 additions, 1 deletion...ompiler/src/ReactiveScopes/FlattenScopesWithHooksOrUse.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/MergeReactiveScopesThatInvalidateTogether.ts 10 additions, 0 deletions...activeScopes/MergeReactiveScopesThatInvalidateTogether.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PrintReactiveFunction.ts 14 additions, 0 deletions...eact-compiler/src/ReactiveScopes/PrintReactiveFunction.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneAlwaysInvalidatingScopes.ts 8 additions, 1 deletion...piler/src/ReactiveScopes/PruneAlwaysInvalidatingScopes.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneNonEscapingScopes.ts 8 additions, 1 deletion...act-compiler/src/ReactiveScopes/PruneNonEscapingScopes.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/PruneUnusedScopes.ts 8 additions, 1 deletion...in-react-compiler/src/ReactiveScopes/PruneUnusedScopes.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/RenameVariables.ts 8 additions, 0 deletions...ugin-react-compiler/src/ReactiveScopes/RenameVariables.ts
- compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/visitors.ts 27 additions, 0 deletions...abel-plugin-react-compiler/src/ReactiveScopes/visitors.ts
Please register or sign in to comment