Skip to content

Commit 0e3974e

Browse files
committed
Make enableOwnerStacks dynamic (facebook#31661)
following up on facebook#31287, fixing tests --------- Co-authored-by: Rick Hanlon <[email protected]> DiffTrain build for [a496498](facebook@a496498)
1 parent 78620c3 commit 0e3974e

37 files changed

+4190
-2280
lines changed

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

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,21 @@ __DEV__ &&
373373
}
374374
return "";
375375
}
376+
function getTaskName(type) {
377+
if (type === REACT_FRAGMENT_TYPE) return "<>";
378+
if (
379+
"object" === typeof type &&
380+
null !== type &&
381+
type.$$typeof === REACT_LAZY_TYPE
382+
)
383+
return "<...>";
384+
try {
385+
var name = getComponentNameFromType(type);
386+
return name ? "<" + name + ">" : "<...>";
387+
} catch (x) {
388+
return "<...>";
389+
}
390+
}
376391
function getOwner() {
377392
var dispatcher = ReactSharedInternals.A;
378393
return null === dispatcher ? null : dispatcher.getOwner();
@@ -409,7 +424,16 @@ __DEV__ &&
409424
componentName = this.props.ref;
410425
return void 0 !== componentName ? componentName : null;
411426
}
412-
function ReactElement(type, key, self, source, owner, props) {
427+
function ReactElement(
428+
type,
429+
key,
430+
self,
431+
source,
432+
owner,
433+
props,
434+
debugStack,
435+
debugTask
436+
) {
413437
self = props.ref;
414438
type = {
415439
$$typeof: REACT_ELEMENT_TYPE,
@@ -437,6 +461,19 @@ __DEV__ &&
437461
writable: !0,
438462
value: null
439463
});
464+
enableOwnerStacks &&
465+
(Object.defineProperty(type, "_debugStack", {
466+
configurable: !1,
467+
enumerable: !1,
468+
writable: !0,
469+
value: debugStack
470+
}),
471+
Object.defineProperty(type, "_debugTask", {
472+
configurable: !1,
473+
enumerable: !1,
474+
writable: !0,
475+
value: debugTask
476+
}));
440477
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
441478
return type;
442479
}
@@ -446,9 +483,12 @@ __DEV__ &&
446483
maybeKey,
447484
isStaticChildren,
448485
source,
449-
self
486+
self,
487+
debugStack,
488+
debugTask
450489
) {
451490
if (
491+
enableOwnerStacks ||
452492
"string" === typeof type ||
453493
"function" === typeof type ||
454494
type === REACT_FRAGMENT_TYPE ||
@@ -562,10 +602,21 @@ __DEV__ &&
562602
? type.displayName || type.name || "Unknown"
563603
: type
564604
);
565-
return ReactElement(type, children, self, source, getOwner(), maybeKey);
605+
return ReactElement(
606+
type,
607+
children,
608+
self,
609+
source,
610+
getOwner(),
611+
maybeKey,
612+
debugStack,
613+
debugTask
614+
);
566615
}
567616
function validateChildKeys(node, parentType) {
568-
if (
617+
if (enableOwnerStacks)
618+
isValidElement(node) && node._store && (node._store.validated = 1);
619+
else if (
569620
"object" === typeof node &&
570621
node &&
571622
node.$$typeof !== REACT_CLIENT_REFERENCE
@@ -601,6 +652,7 @@ __DEV__ &&
601652
}
602653
function validateExplicitKey(element, parentType) {
603654
if (
655+
!enableOwnerStacks &&
604656
element._store &&
605657
!element._store.validated &&
606658
null == element.key &&
@@ -651,12 +703,13 @@ __DEV__ &&
651703
dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
652704
enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
653705
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
654-
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing;
655-
dynamicFeatureFlags = dynamicFeatureFlags.renameElementSymbol;
656-
var REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
657-
REACT_ELEMENT_TYPE = dynamicFeatureFlags
706+
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
707+
renameElementSymbol = dynamicFeatureFlags.renameElementSymbol,
708+
enableOwnerStacks = dynamicFeatureFlags.enableOwnerStacks;
709+
dynamicFeatureFlags = Symbol.for("react.element");
710+
var REACT_ELEMENT_TYPE = renameElementSymbol
658711
? Symbol.for("react.transitional.element")
659-
: REACT_LEGACY_ELEMENT_TYPE,
712+
: dynamicFeatureFlags,
660713
REACT_PORTAL_TYPE = Symbol.for("react.portal"),
661714
REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
662715
REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
@@ -699,6 +752,12 @@ __DEV__ &&
699752
"function" === typeof WeakMap ? WeakMap : Map
700753
)();
701754
var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
755+
createTask =
756+
enableOwnerStacks && console.createTask
757+
? console.createTask
758+
: function () {
759+
return null;
760+
},
702761
specialPropKeyWarningShown;
703762
var didWarnAboutElementRef = {};
704763
var didWarnAboutKeySpread = {},
@@ -712,6 +771,15 @@ __DEV__ &&
712771
source,
713772
self
714773
) {
715-
return jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self);
774+
return jsxDEVImpl(
775+
type,
776+
config,
777+
maybeKey,
778+
isStaticChildren,
779+
source,
780+
self,
781+
enableOwnerStacks ? Error("react-stack-top-frame") : void 0,
782+
enableOwnerStacks ? createTask(getTaskName(type)) : void 0
783+
);
716784
};
717785
})();

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

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,21 @@ __DEV__ &&
373373
}
374374
return "";
375375
}
376+
function getTaskName(type) {
377+
if (type === REACT_FRAGMENT_TYPE) return "<>";
378+
if (
379+
"object" === typeof type &&
380+
null !== type &&
381+
type.$$typeof === REACT_LAZY_TYPE
382+
)
383+
return "<...>";
384+
try {
385+
var name = getComponentNameFromType(type);
386+
return name ? "<" + name + ">" : "<...>";
387+
} catch (x) {
388+
return "<...>";
389+
}
390+
}
376391
function getOwner() {
377392
var dispatcher = ReactSharedInternals.A;
378393
return null === dispatcher ? null : dispatcher.getOwner();
@@ -409,7 +424,16 @@ __DEV__ &&
409424
componentName = this.props.ref;
410425
return void 0 !== componentName ? componentName : null;
411426
}
412-
function ReactElement(type, key, self, source, owner, props) {
427+
function ReactElement(
428+
type,
429+
key,
430+
self,
431+
source,
432+
owner,
433+
props,
434+
debugStack,
435+
debugTask
436+
) {
413437
self = props.ref;
414438
type = {
415439
$$typeof: REACT_ELEMENT_TYPE,
@@ -437,6 +461,19 @@ __DEV__ &&
437461
writable: !0,
438462
value: null
439463
});
464+
enableOwnerStacks &&
465+
(Object.defineProperty(type, "_debugStack", {
466+
configurable: !1,
467+
enumerable: !1,
468+
writable: !0,
469+
value: debugStack
470+
}),
471+
Object.defineProperty(type, "_debugTask", {
472+
configurable: !1,
473+
enumerable: !1,
474+
writable: !0,
475+
value: debugTask
476+
}));
440477
Object.freeze && (Object.freeze(type.props), Object.freeze(type));
441478
return type;
442479
}
@@ -446,9 +483,12 @@ __DEV__ &&
446483
maybeKey,
447484
isStaticChildren,
448485
source,
449-
self
486+
self,
487+
debugStack,
488+
debugTask
450489
) {
451490
if (
491+
enableOwnerStacks ||
452492
"string" === typeof type ||
453493
"function" === typeof type ||
454494
type === REACT_FRAGMENT_TYPE ||
@@ -562,10 +602,21 @@ __DEV__ &&
562602
? type.displayName || type.name || "Unknown"
563603
: type
564604
);
565-
return ReactElement(type, children, self, source, getOwner(), maybeKey);
605+
return ReactElement(
606+
type,
607+
children,
608+
self,
609+
source,
610+
getOwner(),
611+
maybeKey,
612+
debugStack,
613+
debugTask
614+
);
566615
}
567616
function validateChildKeys(node, parentType) {
568-
if (
617+
if (enableOwnerStacks)
618+
isValidElement(node) && node._store && (node._store.validated = 1);
619+
else if (
569620
"object" === typeof node &&
570621
node &&
571622
node.$$typeof !== REACT_CLIENT_REFERENCE
@@ -601,6 +652,7 @@ __DEV__ &&
601652
}
602653
function validateExplicitKey(element, parentType) {
603654
if (
655+
!enableOwnerStacks &&
604656
element._store &&
605657
!element._store.validated &&
606658
null == element.key &&
@@ -651,12 +703,13 @@ __DEV__ &&
651703
dynamicFeatureFlags.disableDefaultPropsExceptForClasses,
652704
enableDebugTracing = dynamicFeatureFlags.enableDebugTracing,
653705
enableRenderableContext = dynamicFeatureFlags.enableRenderableContext,
654-
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing;
655-
dynamicFeatureFlags = dynamicFeatureFlags.renameElementSymbol;
656-
var REACT_LEGACY_ELEMENT_TYPE = Symbol.for("react.element"),
657-
REACT_ELEMENT_TYPE = dynamicFeatureFlags
706+
enableTransitionTracing = dynamicFeatureFlags.enableTransitionTracing,
707+
renameElementSymbol = dynamicFeatureFlags.renameElementSymbol,
708+
enableOwnerStacks = dynamicFeatureFlags.enableOwnerStacks;
709+
dynamicFeatureFlags = Symbol.for("react.element");
710+
var REACT_ELEMENT_TYPE = renameElementSymbol
658711
? Symbol.for("react.transitional.element")
659-
: REACT_LEGACY_ELEMENT_TYPE,
712+
: dynamicFeatureFlags,
660713
REACT_PORTAL_TYPE = Symbol.for("react.portal"),
661714
REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
662715
REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
@@ -699,6 +752,12 @@ __DEV__ &&
699752
"function" === typeof WeakMap ? WeakMap : Map
700753
)();
701754
var REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
755+
createTask =
756+
enableOwnerStacks && console.createTask
757+
? console.createTask
758+
: function () {
759+
return null;
760+
},
702761
specialPropKeyWarningShown;
703762
var didWarnAboutElementRef = {};
704763
var didWarnAboutKeySpread = {},
@@ -712,6 +771,15 @@ __DEV__ &&
712771
source,
713772
self
714773
) {
715-
return jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self);
774+
return jsxDEVImpl(
775+
type,
776+
config,
777+
maybeKey,
778+
isStaticChildren,
779+
source,
780+
self,
781+
enableOwnerStacks ? Error("react-stack-top-frame") : void 0,
782+
enableOwnerStacks ? createTask(getTaskName(type)) : void 0
783+
);
716784
};
717785
})();

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7c4a7c9ddf2f1c8e223565af1256ea201ec0f303
1+
a4964987dc140526702e996223fe7ee293def8ac
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7c4a7c9ddf2f1c8e223565af1256ea201ec0f303
1+
a4964987dc140526702e996223fe7ee293def8ac

0 commit comments

Comments
 (0)