Skip to content

Commit d064e12

Browse files
committed
Don't track Promise stack if there's no owner
1 parent befc124 commit d064e12

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

packages/react-server/src/ReactFlightAsyncSequence.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type PromiseWithDebugInfo = interface extends Promise<any> {
2626
export type IONode = {
2727
tag: 0,
2828
owner: null | ReactComponentInfo,
29-
stack: null, // callsite that spawned the I/O
29+
stack: null | ReactStackTrace, // callsite that spawned the I/O
3030
start: number, // start time when the first part of the I/O sequence started
3131
end: number, // we typically don't use this. only when there's no promise intermediate.
3232
promise: null, // not used on I/O

packages/react-server/src/ReactFlightServerConfigDebugNode.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,11 @@ export function initAsyncDebugInfo(): void {
149149
previous: current === undefined ? null : current, // The path that led us here.
150150
}: UnresolvedAwaitNode);
151151
} else {
152+
const owner = resolveOwner();
152153
node = ({
153154
tag: UNRESOLVED_PROMISE_NODE,
154-
owner: resolveOwner(),
155-
stack: parseStackTrace(new Error(), 5),
155+
owner: owner,
156+
stack: owner === null ? null : parseStackTrace(new Error(), 5),
156157
start: performance.now(),
157158
end: -1.1, // Set when we resolve.
158159
promise: new WeakRef((resource: Promise<any>)),
@@ -170,10 +171,11 @@ export function initAsyncDebugInfo(): void {
170171
) {
171172
if (trigger === undefined) {
172173
// We have begun a new I/O sequence.
174+
const owner = resolveOwner();
173175
node = ({
174176
tag: IO_NODE,
175-
owner: resolveOwner(),
176-
stack: null,
177+
owner: owner,
178+
stack: owner === null ? parseStackTrace(new Error(), 3) : null,
177179
start: performance.now(),
178180
end: -1.1, // Only set when pinged.
179181
promise: null,
@@ -185,10 +187,11 @@ export function initAsyncDebugInfo(): void {
185187
trigger.tag === UNRESOLVED_AWAIT_NODE
186188
) {
187189
// We have begun a new I/O sequence after the await.
190+
const owner = resolveOwner();
188191
node = ({
189192
tag: IO_NODE,
190-
owner: resolveOwner(),
191-
stack: null,
193+
owner: owner,
194+
stack: owner === null ? parseStackTrace(new Error(), 3) : null,
192195
start: performance.now(),
193196
end: -1.1, // Only set when pinged.
194197
promise: null,

0 commit comments

Comments
 (0)