Files
react/compiler/packages
Mofei Zhang 88341cf22c [compiler][hir-rewrite] Check mutability of base identifier when hoisting
Prior to this PR, we check whether the property load source (e.g. the evaluation of `<base>` in `<base>.property`) is mutable + scoped to determine whether the property load itself is eligible for hoisting. This changes to check the base identifier of the load.
- This is needed for the next PR #31066. We want to evaluate whether the base identifier is mutable within the context of the *outermost function*. This is because all LoadLocals and PropertyLoads within a nested function declaration have mutable-ranges within the context of the function, but the base identifier is a context variable.
- A side effect is that we no longer infer loads from props / other function arguments as mutable in edge cases (e.g. props escaping out of try-blocks or being assigned to context variables)

ghstack-source-id: 83d20e1dac
Pull Request resolved: https://github.com/facebook/react/pull/31032
2024-10-02 16:18:33 -04:00
..