dillon1000/react
Commit
Browse files Infer closures as frozen if they dont capture mutable values
Fix for the previous issue, suggested by @gsathya: when we run InferReferenceEffects on the outer function we check each closure to see if it actually captured any mutable values. If it didn't, we can mark the closure as readonly and memoize it independently.
Changed paths12 files
First-parent comparisoncompiler/forget/src/HIR/HIR.ts ModifiedM compiler/forget/src/Inference/InferReferenceEffects.ts ModifiedM compiler/forget/src/ReactiveScopes/PruneNonEscapingScopes.ts ModifiedM compiler/forget/src/__tests__/fixtures/compiler/_bug.computed-call-evaluation-order.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/_bug.property-call-evaluation-order.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/array-at-closure.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/capturing-function-runs-inference.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/function-declaration-simple.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/inadvertent-mutability-readonly-lambda.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/useEffect-nested-lambdas.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/compiler/useEffect-nested-lambdas.js ModifiedM compiler/forget/src/__tests__/fixtures/compiler/useMemo-simple.expect.md ModifiedPatch
Files changed
Rendering syntax-highlighted changes…