Skip to content

Commit fbcf530

Browse files
committed
Stop creating Owner Stacks if many have been created recently (#32529)
Co-authored-by: Jack Pope <[email protected]> DiffTrain build for [4a9df08](4a9df08)
1 parent 8ca918c commit fbcf530

37 files changed

+1110
-771
lines changed

compiled/facebook-www/JSXDEVRuntime-dev.classic.js

+23-5
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ __DEV__ &&
128128
var dispatcher = ReactSharedInternals.A;
129129
return null === dispatcher ? null : dispatcher.getOwner();
130130
}
131+
function UnknownOwner() {
132+
return Error("react-stack-top-frame");
133+
}
131134
function hasValidKey(config) {
132135
if (hasOwnProperty.call(config, "key")) {
133136
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
@@ -307,7 +310,8 @@ __DEV__ &&
307310
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
308311
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
309312
renameElementSymbol = dynamicFeatureFlags.renameElementSymbol,
310-
enableViewTransition = dynamicFeatureFlags.enableViewTransition;
313+
enableViewTransition = dynamicFeatureFlags.enableViewTransition,
314+
ownerStackLimit = dynamicFeatureFlags.ownerStackLimit;
311315
dynamicFeatureFlags = Symbol.for("react.element");
312316
var REACT_ELEMENT_TYPE = renameElementSymbol
313317
? Symbol.for("react.transitional.element")
@@ -336,9 +340,19 @@ __DEV__ &&
336340
? console.createTask
337341
: function () {
338342
return null;
339-
},
340-
specialPropKeyWarningShown;
343+
};
344+
React = {
345+
"react-stack-bottom-frame": function (callStackForError) {
346+
return callStackForError();
347+
}
348+
};
349+
var specialPropKeyWarningShown;
341350
var didWarnAboutElementRef = {};
351+
var unknownOwnerDebugStack = React["react-stack-bottom-frame"].bind(
352+
React,
353+
UnknownOwner
354+
)();
355+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
342356
var didWarnAboutKeySpread = {};
343357
exports.Fragment = REACT_FRAGMENT_TYPE;
344358
exports.jsxDEV = function (
@@ -349,15 +363,19 @@ __DEV__ &&
349363
source,
350364
self
351365
) {
366+
var trackActualOwner =
367+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
352368
return jsxDEVImpl(
353369
type,
354370
config,
355371
maybeKey,
356372
isStaticChildren,
357373
source,
358374
self,
359-
Error("react-stack-top-frame"),
360-
createTask(getTaskName(type))
375+
trackActualOwner
376+
? Error("react-stack-top-frame")
377+
: unknownOwnerDebugStack,
378+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
361379
);
362380
};
363381
})();

compiled/facebook-www/JSXDEVRuntime-dev.modern.js

+23-5
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ __DEV__ &&
128128
var dispatcher = ReactSharedInternals.A;
129129
return null === dispatcher ? null : dispatcher.getOwner();
130130
}
131+
function UnknownOwner() {
132+
return Error("react-stack-top-frame");
133+
}
131134
function hasValidKey(config) {
132135
if (hasOwnProperty.call(config, "key")) {
133136
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
@@ -307,7 +310,8 @@ __DEV__ &&
307310
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
308311
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
309312
renameElementSymbol = dynamicFeatureFlags.renameElementSymbol,
310-
enableViewTransition = dynamicFeatureFlags.enableViewTransition;
313+
enableViewTransition = dynamicFeatureFlags.enableViewTransition,
314+
ownerStackLimit = dynamicFeatureFlags.ownerStackLimit;
311315
dynamicFeatureFlags = Symbol.for("react.element");
312316
var REACT_ELEMENT_TYPE = renameElementSymbol
313317
? Symbol.for("react.transitional.element")
@@ -336,9 +340,19 @@ __DEV__ &&
336340
? console.createTask
337341
: function () {
338342
return null;
339-
},
340-
specialPropKeyWarningShown;
343+
};
344+
React = {
345+
"react-stack-bottom-frame": function (callStackForError) {
346+
return callStackForError();
347+
}
348+
};
349+
var specialPropKeyWarningShown;
341350
var didWarnAboutElementRef = {};
351+
var unknownOwnerDebugStack = React["react-stack-bottom-frame"].bind(
352+
React,
353+
UnknownOwner
354+
)();
355+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
342356
var didWarnAboutKeySpread = {};
343357
exports.Fragment = REACT_FRAGMENT_TYPE;
344358
exports.jsxDEV = function (
@@ -349,15 +363,19 @@ __DEV__ &&
349363
source,
350364
self
351365
) {
366+
var trackActualOwner =
367+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
352368
return jsxDEVImpl(
353369
type,
354370
config,
355371
maybeKey,
356372
isStaticChildren,
357373
source,
358374
self,
359-
Error("react-stack-top-frame"),
360-
createTask(getTaskName(type))
375+
trackActualOwner
376+
? Error("react-stack-top-frame")
377+
: unknownOwnerDebugStack,
378+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
361379
);
362380
};
363381
})();

compiled/facebook-www/REVISION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6b1a2c1d81630a5f385c5be0f758365b63d92eae
1+
4a9df08157f001c01b078d259748512211233dcf
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6b1a2c1d81630a5f385c5be0f758365b63d92eae
1+
4a9df08157f001c01b078d259748512211233dcf

compiled/facebook-www/React-dev.classic.js

+42-15
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,9 @@ __DEV__ &&
174174
var dispatcher = ReactSharedInternals.A;
175175
return null === dispatcher ? null : dispatcher.getOwner();
176176
}
177+
function UnknownOwner() {
178+
return Error("react-stack-top-frame");
179+
}
177180
function hasValidKey(config) {
178181
if (hasOwnProperty.call(config, "key")) {
179182
var getter = Object.getOwnPropertyDescriptor(config, "key").get;
@@ -691,7 +694,8 @@ __DEV__ &&
691694
enableUseEffectCRUDOverload =
692695
dynamicFeatureFlags.enableUseEffectCRUDOverload,
693696
renameElementSymbol = dynamicFeatureFlags.renameElementSymbol,
694-
enableViewTransition = dynamicFeatureFlags.enableViewTransition;
697+
enableViewTransition = dynamicFeatureFlags.enableViewTransition,
698+
ownerStackLimit = dynamicFeatureFlags.ownerStackLimit;
695699
dynamicFeatureFlags = Symbol.for("react.element");
696700
var REACT_ELEMENT_TYPE = renameElementSymbol
697701
? Symbol.for("react.transitional.element")
@@ -778,17 +782,27 @@ __DEV__ &&
778782
didScheduleLegacyUpdate: !1,
779783
didUsePromise: !1,
780784
thrownErrors: [],
781-
getCurrentStack: null
785+
getCurrentStack: null,
786+
recentlyCreatedOwnerStacks: 0
782787
},
783788
hasOwnProperty = Object.prototype.hasOwnProperty,
784789
createTask = console.createTask
785790
? console.createTask
786791
: function () {
787792
return null;
788-
},
789-
specialPropKeyWarningShown,
790-
didWarnAboutOldJSXRuntime;
793+
};
794+
fnName = {
795+
"react-stack-bottom-frame": function (callStackForError) {
796+
return callStackForError();
797+
}
798+
};
799+
var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;
791800
var didWarnAboutElementRef = {};
801+
var unknownOwnerDebugStack = fnName["react-stack-bottom-frame"].bind(
802+
fnName,
803+
UnknownOwner
804+
)();
805+
var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
792806
var didWarnAboutKeySpread = {},
793807
didWarnAboutMaps = !1,
794808
userProvidedKeyEscapeRegex = /\/+/g,
@@ -1148,7 +1162,6 @@ __DEV__ &&
11481162
exports.createElement = function (type, config, children) {
11491163
for (var i = 2; i < arguments.length; i++)
11501164
validateChildKeys(arguments[i]);
1151-
var propName;
11521165
i = {};
11531166
var key = null;
11541167
if (null != config)
@@ -1189,15 +1202,17 @@ __DEV__ &&
11891202
? type.displayName || type.name || "Unknown"
11901203
: type
11911204
);
1205+
var propName =
1206+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
11921207
return ReactElement(
11931208
type,
11941209
key,
11951210
void 0,
11961211
void 0,
11971212
getOwner(),
11981213
i,
1199-
Error("react-stack-top-frame"),
1200-
createTask(getTaskName(type))
1214+
propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack,
1215+
propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask
12011216
);
12021217
};
12031218
exports.createRef = function () {
@@ -1251,15 +1266,19 @@ __DEV__ &&
12511266
};
12521267
exports.isValidElement = isValidElement;
12531268
exports.jsx = function (type, config, maybeKey, source, self) {
1269+
var trackActualOwner =
1270+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
12541271
return jsxDEVImpl(
12551272
type,
12561273
config,
12571274
maybeKey,
12581275
!1,
12591276
source,
12601277
self,
1261-
Error("react-stack-top-frame"),
1262-
createTask(getTaskName(type))
1278+
trackActualOwner
1279+
? Error("react-stack-top-frame")
1280+
: unknownOwnerDebugStack,
1281+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
12631282
);
12641283
};
12651284
exports.jsxDEV = function (
@@ -1270,27 +1289,35 @@ __DEV__ &&
12701289
source,
12711290
self
12721291
) {
1292+
var trackActualOwner =
1293+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
12731294
return jsxDEVImpl(
12741295
type,
12751296
config,
12761297
maybeKey,
12771298
isStaticChildren,
12781299
source,
12791300
self,
1280-
Error("react-stack-top-frame"),
1281-
createTask(getTaskName(type))
1301+
trackActualOwner
1302+
? Error("react-stack-top-frame")
1303+
: unknownOwnerDebugStack,
1304+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
12821305
);
12831306
};
12841307
exports.jsxs = function (type, config, maybeKey, source, self) {
1308+
var trackActualOwner =
1309+
ReactSharedInternals.recentlyCreatedOwnerStacks++ < ownerStackLimit;
12851310
return jsxDEVImpl(
12861311
type,
12871312
config,
12881313
maybeKey,
12891314
!0,
12901315
source,
12911316
self,
1292-
Error("react-stack-top-frame"),
1293-
createTask(getTaskName(type))
1317+
trackActualOwner
1318+
? Error("react-stack-top-frame")
1319+
: unknownOwnerDebugStack,
1320+
trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
12941321
);
12951322
};
12961323
exports.lazy = function (ctor) {
@@ -1510,7 +1537,7 @@ __DEV__ &&
15101537
exports.useTransition = function () {
15111538
return resolveDispatcher().useTransition();
15121539
};
1513-
exports.version = "19.1.0-www-classic-6b1a2c1d-20250321";
1540+
exports.version = "19.1.0-www-classic-4a9df081-20250323";
15141541
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
15151542
"function" ===
15161543
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)