From 31552fbcddb7796d697bdc3b600758bb87faaaf8 Mon Sep 17 00:00:00 2001 From: Josh Story Date: Fri, 5 Apr 2024 12:22:06 -0700 Subject: [PATCH] Try shorter property name to get inlining --- .../src/client/ReactDOMUpdatePriority.js | 15 +++++++++++---- packages/react-dom/src/ReactDOMSharedInternals.js | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/react-dom-bindings/src/client/ReactDOMUpdatePriority.js b/packages/react-dom-bindings/src/client/ReactDOMUpdatePriority.js index a1ac296a1a642..a9b6b445a4782 100644 --- a/packages/react-dom-bindings/src/client/ReactDOMUpdatePriority.js +++ b/packages/react-dom-bindings/src/client/ReactDOMUpdatePriority.js @@ -19,16 +19,23 @@ import ReactDOMSharedInternals from 'shared/ReactDOMSharedInternals'; const ReactDOMCurrentUpdatePriority = ReactDOMSharedInternals.ReactDOMCurrentUpdatePriority; -export function setCurrentUpdatePriority(newPriority: EventPriority): void { - ReactDOMCurrentUpdatePriority.current = newPriority; +export function setCurrentUpdatePriority( + newPriority: EventPriority, + // Closure will repeatedly not inline this function when it has arity 1 because + // the function form is shorter than the inlined implementation. We use this second + // argument which is unused to trick closure into inlining because it makes the + // inlined function shorter. + IntentionallyUnusedArgument: mixed, +): void { + ReactDOMCurrentUpdatePriority.cup = newPriority; } export function getCurrentUpdatePriority(): EventPriority { - return ReactDOMCurrentUpdatePriority.current; + return ReactDOMCurrentUpdatePriority.cup; } export function resolveUpdatePriority(): EventPriority { - const updatePriority = ReactDOMCurrentUpdatePriority.current; + const updatePriority = ReactDOMCurrentUpdatePriority.cup; if (updatePriority !== NoEventPriority) { return updatePriority; } diff --git a/packages/react-dom/src/ReactDOMSharedInternals.js b/packages/react-dom/src/ReactDOMSharedInternals.js index 02f5c7cde78fe..d0d97f59c1056 100644 --- a/packages/react-dom/src/ReactDOMSharedInternals.js +++ b/packages/react-dom/src/ReactDOMSharedInternals.js @@ -24,7 +24,7 @@ type InternalsType = { componentOrElement: React$Component, ) => null | Element | Text), ReactDOMCurrentUpdatePriority: { - current: EventPriority, + cup: EventPriority, }, }; @@ -48,7 +48,7 @@ const Internals: InternalsType = { }, findDOMNode: null, ReactDOMCurrentUpdatePriority: { - current: NoEventPriority, + cup: NoEventPriority, }, };