diff --git a/compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts b/compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts index 8f44594c0031..67be9a7a052a 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts +++ b/compiler/packages/babel-plugin-react-compiler/src/HIR/BuildHIR.ts @@ -1571,8 +1571,16 @@ function lowerObjectMethod( const loc = property.node.loc ?? GeneratedSource; const loweredFunc = lowerFunction(builder, property); + /* + * Lower ObjectMethod to FunctionExpression so that method shorthands + * receive per-function reactive scopes (same as arrow/function expression + * properties), producing more optimal memoization. + */ return { - kind: 'ObjectMethod', + kind: 'FunctionExpression', + name: null, + nameHint: null, + type: 'FunctionExpression', loc, loweredFunc, }; @@ -1709,9 +1717,14 @@ function lowerExpression( if (!loweredKey) { continue; } + /* + * Use type 'property' since the ObjectMethod has been lowered to a + * FunctionExpression — it will be memoized independently just like + * an arrow/function-expression property. + */ properties.push({ kind: 'ObjectProperty', - type: 'method', + type: 'property', place, key: loweredKey, }); diff --git a/compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/AlignObjectMethodScopes.ts b/compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/AlignObjectMethodScopes.ts index 317168f98685..9cde4ceb0e65 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/AlignObjectMethodScopes.ts +++ b/compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/AlignObjectMethodScopes.ts @@ -5,62 +5,33 @@ * LICENSE file in the root directory of this source tree. */ -import {CompilerError} from '..'; -import { - GeneratedSource, - HIRFunction, - Identifier, - ReactiveScope, - makeInstructionId, -} from '../HIR'; -import {eachInstructionValueOperand} from '../HIR/visitors'; +import {HIRFunction, ReactiveScope, makeInstructionId} from '../HIR'; import DisjointSet from '../Utils/DisjointSet'; /** * Align scopes of object method values to that of their enclosing object expressions. * To produce a well-formed JS program in Codegen, object methods and object expressions * must be in the same ReactiveBlock as object method definitions must be inlined. + * + * Note: ObjectMethod nodes are now lowered to FunctionExpression nodes in BuildHIR, + * so they receive per-function reactive scopes automatically. This pass is retained + * as a no-op for forward compatibility. */ -function findScopesToMerge(fn: HIRFunction): DisjointSet { - const objectMethodDecls: Set = new Set(); - const mergeScopesBuilder = new DisjointSet(); - - for (const [_, block] of fn.body.blocks) { - for (const {lvalue, value} of block.instructions) { - if (value.kind === 'ObjectMethod') { - objectMethodDecls.add(lvalue.identifier); - } else if (value.kind === 'ObjectExpression') { - for (const operand of eachInstructionValueOperand(value)) { - if (objectMethodDecls.has(operand.identifier)) { - const operandScope = operand.identifier.scope; - const lvalueScope = lvalue.identifier.scope; - - CompilerError.invariant( - operandScope != null && lvalueScope != null, - { - reason: - 'Internal error: Expected all ObjectExpressions and ObjectMethods to have non-null scope.', - loc: GeneratedSource, - }, - ); - mergeScopesBuilder.union([operandScope, lvalueScope]); - } - } - } - } - } - return mergeScopesBuilder; +function findScopesToMerge(_fn: HIRFunction): DisjointSet { + /* + * ObjectMethod nodes are now lowered to FunctionExpression during HIR + * construction (see BuildHIR.ts lowerObjectMethod). Each function expression + * receives its own reactive scope, so no scope merging is needed here. + */ + return new DisjointSet(); } export function alignObjectMethodScopes(fn: HIRFunction): void { // Handle inner functions: we assume that Scopes are disjoint across functions for (const [_, block] of fn.body.blocks) { for (const {value} of block.instructions) { - if ( - value.kind === 'ObjectMethod' || - value.kind === 'FunctionExpression' - ) { + if (value.kind === 'FunctionExpression') { alignObjectMethodScopes(value.loweredFunc.func); } } diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-across-objectmethod-def.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-across-objectmethod-def.expect.md index eab467da27fc..96baba3bd1bb 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-across-objectmethod-def.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-across-objectmethod-def.expect.md @@ -34,12 +34,13 @@ import { identity } from "shared-runtime"; // inferred as a context variable. function Component() { - const obj = { method() {} }; + const obj = { method: _temp }; identity(obj); return 4; } +function _temp() {} export const FIXTURE_ENTRYPOINT = { fn: Component, diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-to-object-method.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-to-object-method.expect.md index cc5633a7b3f4..182f0b73f469 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-to-object-method.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/constant-prop-to-object-method.expect.md @@ -31,11 +31,7 @@ function Foo() { const $ = _c(1); let t0; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { - const x = { - foo() { - return identity(1); - }, - }; + const x = { foo: _temp }; t0 = x.foo(); $[0] = t0; } else { @@ -43,6 +39,9 @@ function Foo() { } return t0; } +function _temp() { + return identity(1); +} export const FIXTURE_ENTRYPOINT = { fn: Foo, diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/context-variable-reassigned-objectmethod.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/context-variable-reassigned-objectmethod.expect.md index cdd0269d5cf4..ba47763e6c90 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/context-variable-reassigned-objectmethod.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/context-variable-reassigned-objectmethod.expect.md @@ -37,7 +37,7 @@ function Component(t0) { if ($[0] !== cond) { x = 2; const obj = { - method(cond_0) { + method: function (cond_0) { if (cond_0) { x = 4; } diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-object-method.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-object-method.expect.md index bc7c402b941c..3898fd2cfe5b 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-object-method.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/hoisting-object-method.expect.md @@ -31,7 +31,7 @@ function hoisting() { let t0; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { const x = { - foo() { + foo: function () { return bar(); }, }; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.expect.md index 7ac27ab8144a..e6a16bdaff9d 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/infer-nested-object-method.expect.md @@ -35,11 +35,7 @@ function Test() { const $ = _c(1); let t0; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { - const context = { - testFn() { - return _temp; - }, - }; + const context = { testFn: _temp2 }; t0 = ; $[0] = t0; } else { @@ -47,6 +43,9 @@ function Test() { } return t0; } +function _temp2() { + return _temp; +} function _temp() { return "test"; } diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-call-in-ternary-test.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-call-in-ternary-test.expect.md index cafa06298a40..adcd0ed75b31 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-call-in-ternary-test.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-call-in-ternary-test.expect.md @@ -39,7 +39,7 @@ import { function useHook(t0) { const { value } = t0; return { - getValue() { + getValue: function () { return identity(value); }, }.getValue() diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-derived-in-ternary-consequent.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-derived-in-ternary-consequent.expect.md index ef8b8ef430ff..b21012fe886d 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-derived-in-ternary-consequent.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-derived-in-ternary-consequent.expect.md @@ -34,7 +34,7 @@ function useHook(t0) { if ($[0] !== isCond || $[1] !== value) { t1 = isCond ? identity({ - getValue() { + getValue: function () { return value; }, }) diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-consequent.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-consequent.expect.md index 41b8d802d3cf..eebbae65b52f 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-consequent.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-consequent.expect.md @@ -34,7 +34,7 @@ function useHook(t0) { if ($[0] !== isCond || $[1] !== value) { t1 = isCond ? { - getValue() { + getValue: function () { return value; }, } diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-test.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-test.expect.md index 51463b326d35..c02bf8add472 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-test.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-literal-method-in-ternary-test.expect.md @@ -33,7 +33,7 @@ import { function useHook(t0) { const { value } = t0; return { - getValue() { + getValue: function () { return identity(value); }, } diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-maybe-alias.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-maybe-alias.expect.md index 74c0dcdc14f5..f8f6b6a87e6e 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-maybe-alias.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-maybe-alias.expect.md @@ -34,15 +34,11 @@ function useHook(props) { let t0; if ($[0] !== props) { const x = { - getX() { + getX: function () { return props; }, }; - const y = { - getY() { - return "y"; - }, - }; + const y = { getY: _temp }; t0 = setProperty(x, y); $[0] = props; $[1] = t0; @@ -51,6 +47,9 @@ function useHook(props) { } return t0; } +function _temp() { + return "y"; +} export const FIXTURE_ENTRYPOINT = { fn: createHookWrapper(useHook), diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-3.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-3.expect.md index 886eb119d36b..f3bb6be0a8bb 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-3.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-3.expect.md @@ -34,7 +34,7 @@ function useHook(a) { if ($[0] !== a) { const x = { a }; const obj = { - method() { + method: function () { mutate(x); return x; }, diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-aliased-mutate-after.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-aliased-mutate-after.expect.md index 1674c16e88b3..723e7ac1fb27 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-aliased-mutate-after.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-aliased-mutate-after.expect.md @@ -27,16 +27,23 @@ export const FIXTURE_ENTRYPOINT = { import { c as _c } from "react/compiler-runtime"; import { createHookWrapper, mutate, mutateAndReturn } from "shared-runtime"; function useHook(t0) { - const $ = _c(2); + const $ = _c(4); const { value } = t0; let obj; if ($[0] !== value) { const x = mutateAndReturn({ value }); - obj = { - getValue() { - return value; - }, + const t1 = function () { + return value; }; + let t2; + if ($[2] !== t1) { + t2 = { getValue: t1 }; + $[2] = t1; + $[3] = t2; + } else { + t2 = $[3]; + } + obj = t2; mutate(x); $[0] = value; $[1] = obj; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-derived-value.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-derived-value.expect.md index 6c135bb0ebf9..eb598ba72c1a 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-derived-value.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-derived-value.expect.md @@ -40,7 +40,7 @@ function useHook(t0) { let t2; if ($[2] !== x) { t2 = { - getValue() { + getValue: function () { return x; }, }; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-hook-dep.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-hook-dep.expect.md index 2f130f32c74a..92a218531a2c 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-hook-dep.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-hook-dep.expect.md @@ -32,7 +32,7 @@ function useFoo() { let t0; if ($[0] !== state) { t0 = { - func() { + func: function () { return state; }, }; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-mutated-after.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-mutated-after.expect.md index 9c73dd6f9925..bfb233e81fbb 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-mutated-after.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand-mutated-after.expect.md @@ -33,7 +33,7 @@ function useHook(t0) { if ($[0] !== value) { const x = mutateAndReturn({ value }); obj = { - getValue() { + getValue: function () { return x; }, }; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand.expect.md index ebfa1d8d3162..ba5fa35e72ae 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-method-shorthand.expect.md @@ -26,11 +26,7 @@ function Component() { const $ = _c(1); let t0; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { - const obj = { - method() { - return 1; - }, - }; + const obj = { method: _temp }; t0 = obj.method(); $[0] = t0; } else { @@ -38,6 +34,9 @@ function Component() { } return t0; } +function _temp() { + return 1; +} export const FIXTURE_ENTRYPOINT = { fn: Component, diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-1.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-1.expect.md index 6b9ca0c2317b..b20ed8719f4f 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-1.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-1.expect.md @@ -27,7 +27,7 @@ export const FIXTURE_ENTRYPOINT = { import { c as _c } from "react/compiler-runtime"; import { createHookWrapper } from "shared-runtime"; function useHook(t0) { - const $ = _c(5); + const $ = _c(7); const { a, b } = t0; let t1; if ($[0] !== a) { @@ -40,20 +40,25 @@ function useHook(t0) { t1 = $[1]; } let t2; - if ($[2] !== b || $[3] !== t1) { - t2 = { - x: t1, - y() { - return [b]; - }, + if ($[2] !== b) { + t2 = function () { + return [b]; }; $[2] = b; - $[3] = t1; - $[4] = t2; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== t1 || $[5] !== t2) { + t3 = { x: t1, y: t2 }; + $[4] = t1; + $[5] = t2; + $[6] = t3; } else { - t2 = $[4]; + t3 = $[6]; } - return t2; + return t3; } export const FIXTURE_ENTRYPOINT = { diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-2.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-2.expect.md index 0a0383e93a52..1b1bcc43599c 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-2.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-2.expect.md @@ -28,7 +28,7 @@ import { c as _c } from "react/compiler-runtime"; import { createHookWrapper } from "shared-runtime"; function useHook(t0) { - const $ = _c(8); + const $ = _c(10); const { a, b, c } = t0; let t1; if ($[0] !== a) { @@ -39,30 +39,34 @@ function useHook(t0) { t1 = $[1]; } let t2; - if ($[2] !== b || $[3] !== c || $[4] !== t1) { - let t3; - if ($[6] !== c) { - t3 = { c }; - $[6] = c; - $[7] = t3; - } else { - t3 = $[7]; - } - t2 = { - x: t1, - y() { - return [b]; - }, - z: t3, + if ($[2] !== b) { + t2 = function () { + return [b]; }; $[2] = b; - $[3] = c; - $[4] = t1; - $[5] = t2; + $[3] = t2; + } else { + t2 = $[3]; + } + let t3; + if ($[4] !== c) { + t3 = { c }; + $[4] = c; + $[5] = t3; + } else { + t3 = $[5]; + } + let t4; + if ($[6] !== t1 || $[7] !== t2 || $[8] !== t3) { + t4 = { x: t1, y: t2, z: t3 }; + $[6] = t1; + $[7] = t2; + $[8] = t3; + $[9] = t4; } else { - t2 = $[5]; + t4 = $[9]; } - return t2; + return t4; } export const FIXTURE_ENTRYPOINT = { diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-nested.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-nested.expect.md index dc1cd699d295..ac8a274e4fe5 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-nested.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/object-shorthand-method-nested.expect.md @@ -42,10 +42,10 @@ function useHook(t0) { let t1; if ($[0] !== state || $[1] !== value) { t1 = { - getX() { + getX: function () { return { a: [], - getY() { + getY: function () { return value; }, state, diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-object-method-uncond-access.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-object-method-uncond-access.expect.md index c8b9a5dddb70..ff25e797b227 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-object-method-uncond-access.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-object-method-uncond-access.expect.md @@ -36,7 +36,7 @@ function useFoo(t0) { let t1; if ($[0] !== a) { const x = { - fn() { + fn: function () { return identity(a.b.c); }, }; diff --git a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-objectmethod-cond-access.expect.md b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-objectmethod-cond-access.expect.md index 96d37cee8aa3..ce773c81fbbe 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-objectmethod-cond-access.expect.md +++ b/compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/propagate-scope-deps-hir-fork/reduce-reactive-deps/infer-objectmethod-cond-access.expect.md @@ -45,7 +45,7 @@ function Foo(t0) { t1 = (