diff --git a/fixtures/flight/server/region.js b/fixtures/flight/server/region.js
index 7339e3a48a..ccf7907aac 100644
--- a/fixtures/flight/server/region.js
+++ b/fixtures/flight/server/region.js
@@ -133,7 +133,7 @@ async function renderApp(res, returnValue, formState, noCache, debugChannel) {
}
async function prerenderApp(res, returnValue, formState, noCache) {
- const {unstable_prerenderToNodeStream: prerenderToNodeStream} = await import(
+ const {prerenderToNodeStream} = await import(
'react-server-dom-webpack/static'
);
// const m = require('../src/App.js');
diff --git a/packages/react-dom/npm/server.browser.js b/packages/react-dom/npm/server.browser.js
index 04446965dc..4d80665271 100644
--- a/packages/react-dom/npm/server.browser.js
+++ b/packages/react-dom/npm/server.browser.js
@@ -13,6 +13,4 @@ exports.version = l.version;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
exports.renderToReadableStream = s.renderToReadableStream;
-if (s.resume) {
- exports.resume = s.resume;
-}
+exports.resume = s.resume;
diff --git a/packages/react-dom/npm/server.bun.js b/packages/react-dom/npm/server.bun.js
index f0b6bf3a82..bb44b38ec3 100644
--- a/packages/react-dom/npm/server.bun.js
+++ b/packages/react-dom/npm/server.bun.js
@@ -12,8 +12,6 @@ if (process.env.NODE_ENV === 'production') {
exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
-if (b.resume) {
- exports.resume = b.resume;
-}
+exports.resume = b.resume;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
diff --git a/packages/react-dom/npm/server.edge.js b/packages/react-dom/npm/server.edge.js
index d64b9da736..cc05ed6120 100644
--- a/packages/react-dom/npm/server.edge.js
+++ b/packages/react-dom/npm/server.edge.js
@@ -14,6 +14,4 @@ exports.version = b.version;
exports.renderToReadableStream = b.renderToReadableStream;
exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
-if (b.resume) {
- exports.resume = b.resume;
-}
+exports.resume = b.resume;
diff --git a/packages/react-dom/npm/server.node.js b/packages/react-dom/npm/server.node.js
index 34276711b1..3feeac208f 100644
--- a/packages/react-dom/npm/server.node.js
+++ b/packages/react-dom/npm/server.node.js
@@ -14,9 +14,5 @@ exports.renderToString = l.renderToString;
exports.renderToStaticMarkup = l.renderToStaticMarkup;
exports.renderToPipeableStream = s.renderToPipeableStream;
exports.renderToReadableStream = s.renderToReadableStream;
-if (s.resumeToPipeableStream) {
- exports.resumeToPipeableStream = s.resumeToPipeableStream;
-}
-if (s.resume) {
- exports.resume = s.resume;
-}
+exports.resumeToPipeableStream = s.resumeToPipeableStream;
+exports.resume = s.resume;
diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js
index de6e21b557..6501202342 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js
@@ -416,7 +416,11 @@ describe('ReactDOMFizzStatic', () => {
return
aborted
;
}
+ const errors = [];
const pendingResult = ReactDOMFizzStatic.prerenderToNodeStream(, {
+ onError: error => {
+ errors.push(error);
+ },
signal: controller.signal,
});
pendingResult.catch(() => {});
@@ -430,6 +434,7 @@ describe('ReactDOMFizzStatic', () => {
result.prelude.pipe(writable);
});
expect(getVisibleChildren(container)).toEqual(undefined);
+ expect(errors).toEqual([]);
});
// @gate enablePostpone
@@ -447,13 +452,18 @@ describe('ReactDOMFizzStatic', () => {
return aborted
;
}
+ const errors = [];
const result = await ReactDOMFizzStatic.prerenderToNodeStream(, {
+ onError: error => {
+ errors.push(error);
+ },
signal: controller.signal,
});
await act(async () => {
result.prelude.pipe(writable);
});
expect(getVisibleChildren(container)).toEqual(undefined);
+ expect(errors).toEqual([]);
});
// @gate enableHalt
diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js
index 8bb1c7c861..e806235b7f 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFizzStaticFloat-test.js
@@ -40,9 +40,7 @@ describe('ReactDOMFizzStaticFloat', () => {
React = require('react');
ReactDOM = require('react-dom');
ReactDOMFizzServer = require('react-dom/server.browser');
- if (__EXPERIMENTAL__) {
- ReactDOMFizzStatic = require('react-dom/static.browser');
- }
+ ReactDOMFizzStatic = require('react-dom/static.browser');
Suspense = React.Suspense;
container = document.createElement('div');
document.body.appendChild(container);
diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzStaticNode-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzStaticNode-test.js
index e4b21fcf8d..d3c7ba9d2b 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFizzStaticNode-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFizzStaticNode-test.js
@@ -18,9 +18,7 @@ describe('ReactDOMFizzStaticNode', () => {
beforeEach(() => {
jest.resetModules();
React = require('react');
- if (__EXPERIMENTAL__) {
- ReactDOMFizzStatic = require('react-dom/static');
- }
+ ReactDOMFizzStatic = require('react-dom/static');
Suspense = React.Suspense;
});
@@ -58,7 +56,7 @@ describe('ReactDOMFizzStaticNode', () => {
}
}
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should call prerenderToNodeStream', async () => {
const result = await ReactDOMFizzStatic.prerenderToNodeStream(
hello world
,
@@ -67,14 +65,14 @@ describe('ReactDOMFizzStaticNode', () => {
expect(prelude).toMatchInlineSnapshot(`"hello world
"`);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should suppport web streams', async () => {
const result = await ReactDOMFizzStatic.prerender(hello world
);
const prelude = await readContentWeb(result.prelude);
expect(prelude).toMatchInlineSnapshot(`"hello world
"`);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should emit DOCTYPE at the root of the document', async () => {
const result = await ReactDOMFizzStatic.prerenderToNodeStream(
@@ -93,7 +91,7 @@ describe('ReactDOMFizzStaticNode', () => {
}
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should emit bootstrap script src at the end', async () => {
const result = await ReactDOMFizzStatic.prerenderToNodeStream(
hello world
,
@@ -109,7 +107,7 @@ describe('ReactDOMFizzStaticNode', () => {
);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('emits all HTML as one unit', async () => {
let hasLoaded = false;
let resolve;
@@ -139,7 +137,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(prelude).toMatchInlineSnapshot(`"Done
"`);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should reject the promise when an error is thrown at the root', async () => {
const reportedErrors = [];
let caughtError = null;
@@ -161,7 +159,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(reportedErrors).toEqual([theError]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should reject the promise when an error is thrown inside a fallback', async () => {
const reportedErrors = [];
let caughtError = null;
@@ -185,7 +183,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(reportedErrors).toEqual([theError]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should not error the stream when an error is thrown inside suspense boundary', async () => {
const reportedErrors = [];
const result = await ReactDOMFizzStatic.prerenderToNodeStream(
@@ -206,7 +204,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(reportedErrors).toEqual([theError]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should be able to complete by aborting even if the promise never resolves', async () => {
const errors = [];
const controller = new AbortController();
@@ -236,7 +234,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(errors).toEqual(['This operation was aborted']);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
// @gate !enableHalt
it('should reject if aborting before the shell is complete and enableHalt is disabled', async () => {
const errors = [];
@@ -302,7 +300,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(content).toBe('');
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('should be able to abort before something suspends', async () => {
const errors = [];
const controller = new AbortController();
@@ -343,7 +341,7 @@ describe('ReactDOMFizzStaticNode', () => {
}
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
// @gate !enableHalt
it('should reject if passing an already aborted signal and enableHalt is disabled', async () => {
const errors = [];
@@ -414,7 +412,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(content).toBe('');
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('supports custom abort reasons with a string', async () => {
const promise = new Promise(r => {});
function Wait() {
@@ -456,7 +454,7 @@ describe('ReactDOMFizzStaticNode', () => {
expect(errors).toEqual(['foobar', 'foobar']);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('supports custom abort reasons with an Error', async () => {
const promise = new Promise(r => {});
function Wait() {
diff --git a/packages/react-dom/src/server/react-dom-server.browser.stable.js b/packages/react-dom/src/server/react-dom-server.browser.stable.js
index 2c8f8b5dd5..679e6803f6 100644
--- a/packages/react-dom/src/server/react-dom-server.browser.stable.js
+++ b/packages/react-dom/src/server/react-dom-server.browser.stable.js
@@ -7,5 +7,9 @@
* @flow
*/
-export {renderToReadableStream, version} from './ReactDOMFizzServerBrowser.js';
-export {prerender} from './ReactDOMFizzStaticBrowser.js';
+export {
+ renderToReadableStream,
+ resume,
+ version,
+} from './ReactDOMFizzServerBrowser.js';
+export {prerender, resumeAndPrerender} from './ReactDOMFizzStaticBrowser.js';
diff --git a/packages/react-dom/src/server/react-dom-server.edge.stable.js b/packages/react-dom/src/server/react-dom-server.edge.stable.js
index 5f47ecafd3..588b6d8cb5 100644
--- a/packages/react-dom/src/server/react-dom-server.edge.stable.js
+++ b/packages/react-dom/src/server/react-dom-server.edge.stable.js
@@ -7,5 +7,9 @@
* @flow
*/
-export {renderToReadableStream, version} from './ReactDOMFizzServerEdge.js';
-export {prerender} from './ReactDOMFizzStaticEdge.js';
+export {
+ renderToReadableStream,
+ resume,
+ version,
+} from './ReactDOMFizzServerEdge.js';
+export {prerender, resumeAndPrerender} from './ReactDOMFizzStaticEdge.js';
diff --git a/packages/react-dom/src/server/react-dom-server.node.stable.js b/packages/react-dom/src/server/react-dom-server.node.stable.js
index a650dc1610..e26eee2284 100644
--- a/packages/react-dom/src/server/react-dom-server.node.stable.js
+++ b/packages/react-dom/src/server/react-dom-server.node.stable.js
@@ -10,6 +10,13 @@
export {
renderToPipeableStream,
renderToReadableStream,
+ resume,
+ resumeToPipeableStream,
version,
} from './ReactDOMFizzServerNode.js';
-export {prerenderToNodeStream, prerender} from './ReactDOMFizzStaticNode.js';
+export {
+ prerenderToNodeStream,
+ prerender,
+ resumeAndPrerender,
+ resumeAndPrerenderToNodeStream,
+} from './ReactDOMFizzStaticNode.js';
diff --git a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js
index 0bd0a25534..82eb462064 100644
--- a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js
+++ b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js
@@ -1589,17 +1589,15 @@ describe('ReactHooks', () => {
useStateHelper,
];
- if (__EXPERIMENTAL__) {
- const useTransitionHelper = () => React.useTransition();
- const useDeferredValueHelper = () =>
- React.useDeferredValue(0, {timeoutMs: 1000});
+ const useTransitionHelper = () => React.useTransition();
+ const useDeferredValueHelper = () =>
+ React.useDeferredValue(0, {timeoutMs: 1000});
- orderedHooks.push(useTransitionHelper);
- orderedHooks.push(useDeferredValueHelper);
+ orderedHooks.push(useTransitionHelper);
+ orderedHooks.push(useDeferredValueHelper);
- hooksInList.push(useTransitionHelper);
- hooksInList.push(useDeferredValueHelper);
- }
+ hooksInList.push(useTransitionHelper);
+ hooksInList.push(useDeferredValueHelper);
const formatHookNamesToMatchErrorMessage = (hookNameA, hookNameB) => {
return `use${hookNameA}${' '.repeat(24 - hookNameA.length)}${
diff --git a/packages/react-server-dom-esm/npm/static.node.js b/packages/react-server-dom-esm/npm/static.node.js
index 7fb451a3cd..eea9fb7e18 100644
--- a/packages/react-server-dom-esm/npm/static.node.js
+++ b/packages/react-server-dom-esm/npm/static.node.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-esm-server.node.development.js');
}
-if (s.unstable_prerenderToNodeStream) {
- exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
-}
+exports.prerenderToNodeStream = s.prerenderToNodeStream;
diff --git a/packages/react-server-dom-esm/src/server/react-flight-dom-server.node.js b/packages/react-server-dom-esm/src/server/react-flight-dom-server.node.js
index 7d5b19a521..f24946fcae 100644
--- a/packages/react-server-dom-esm/src/server/react-flight-dom-server.node.js
+++ b/packages/react-server-dom-esm/src/server/react-flight-dom-server.node.js
@@ -9,7 +9,7 @@
export {
renderToPipeableStream,
- prerenderToNodeStream as unstable_prerenderToNodeStream,
+ prerenderToNodeStream,
decodeReplyFromBusboy,
decodeReply,
decodeAction,
diff --git a/packages/react-server-dom-esm/static.node.js b/packages/react-server-dom-esm/static.node.js
index 345f4123c9..d15eddc6f9 100644
--- a/packages/react-server-dom-esm/static.node.js
+++ b/packages/react-server-dom-esm/static.node.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerenderToNodeStream} from './src/server/react-flight-dom-server.node';
+export {prerenderToNodeStream} from './src/server/react-flight-dom-server.node';
diff --git a/packages/react-server-dom-parcel/npm/static.browser.js b/packages/react-server-dom-parcel/npm/static.browser.js
index 1c5c8f1927..0f5f9ac557 100644
--- a/packages/react-server-dom-parcel/npm/static.browser.js
+++ b/packages/react-server-dom-parcel/npm/static.browser.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-parcel-server.browser.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-parcel/npm/static.edge.js b/packages/react-server-dom-parcel/npm/static.edge.js
index 4deafdca05..540332ad8d 100644
--- a/packages/react-server-dom-parcel/npm/static.edge.js
+++ b/packages/react-server-dom-parcel/npm/static.edge.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-parcel-server.edge.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-parcel/npm/static.node.js b/packages/react-server-dom-parcel/npm/static.node.js
index 411c2958ef..ca66f6e3f0 100644
--- a/packages/react-server-dom-parcel/npm/static.node.js
+++ b/packages/react-server-dom-parcel/npm/static.node.js
@@ -7,9 +7,5 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-parcel-server.node.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
-if (s.unstable_prerenderToNodeStream) {
- exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
-}
+exports.prerender = s.prerender;
+exports.prerenderToNodeStream = s.prerenderToNodeStream;
diff --git a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.browser.js b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.browser.js
index c0a8015873..9b2a047c32 100644
--- a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.browser.js
+++ b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.browser.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeAction,
decodeFormState,
diff --git a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.edge.js b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.edge.js
index 54f3dbb2ec..7f99c56f7c 100644
--- a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.edge.js
+++ b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.edge.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeReplyFromAsyncIterable,
decodeAction,
diff --git a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.node.js b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.node.js
index 37c0497178..f18bec1353 100644
--- a/packages/react-server-dom-parcel/src/server/react-flight-dom-server.node.js
+++ b/packages/react-server-dom-parcel/src/server/react-flight-dom-server.node.js
@@ -10,8 +10,8 @@
export {
renderToReadableStream,
renderToPipeableStream,
- prerender as unstable_prerender,
- prerenderToNodeStream as unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
decodeReply,
decodeReplyFromBusboy,
decodeReplyFromAsyncIterable,
diff --git a/packages/react-server-dom-parcel/static.browser.js b/packages/react-server-dom-parcel/static.browser.js
index 3281fed6ea..2589789163 100644
--- a/packages/react-server-dom-parcel/static.browser.js
+++ b/packages/react-server-dom-parcel/static.browser.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.browser';
+export {prerender} from './src/server/react-flight-dom-server.browser';
diff --git a/packages/react-server-dom-parcel/static.edge.js b/packages/react-server-dom-parcel/static.edge.js
index b1a96317ae..a39d54c73f 100644
--- a/packages/react-server-dom-parcel/static.edge.js
+++ b/packages/react-server-dom-parcel/static.edge.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.edge';
+export {prerender} from './src/server/react-flight-dom-server.edge';
diff --git a/packages/react-server-dom-parcel/static.node.js b/packages/react-server-dom-parcel/static.node.js
index 1b2c11edc1..78e70a1cf4 100644
--- a/packages/react-server-dom-parcel/static.node.js
+++ b/packages/react-server-dom-parcel/static.node.js
@@ -8,6 +8,6 @@
*/
export {
- unstable_prerender,
- unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
} from './src/server/react-flight-dom-server.node';
diff --git a/packages/react-server-dom-turbopack/npm/static.browser.js b/packages/react-server-dom-turbopack/npm/static.browser.js
index d04d771c2d..d6acca4d6e 100644
--- a/packages/react-server-dom-turbopack/npm/static.browser.js
+++ b/packages/react-server-dom-turbopack/npm/static.browser.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-turbopack-server.browser.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-turbopack/npm/static.edge.js b/packages/react-server-dom-turbopack/npm/static.edge.js
index 6d9ca4b3e8..acd8ad68d7 100644
--- a/packages/react-server-dom-turbopack/npm/static.edge.js
+++ b/packages/react-server-dom-turbopack/npm/static.edge.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-turbopack-server.edge.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-turbopack/npm/static.node.js b/packages/react-server-dom-turbopack/npm/static.node.js
index 34c9d63a4a..f082e275e0 100644
--- a/packages/react-server-dom-turbopack/npm/static.node.js
+++ b/packages/react-server-dom-turbopack/npm/static.node.js
@@ -7,9 +7,5 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-turbopack-server.node.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
-if (s.unstable_prerenderToNodeStream) {
- exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
-}
+exports.prerender = s.prerender;
+exports.prerenderToNodeStream = s.prerenderToNodeStream;
diff --git a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.browser.js b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.browser.js
index c0860225d7..d8373ec551 100644
--- a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.browser.js
+++ b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.browser.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeAction,
decodeFormState,
diff --git a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.edge.js b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.edge.js
index 9198f9913e..e103ff7619 100644
--- a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.edge.js
+++ b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.edge.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeReplyFromAsyncIterable,
decodeAction,
diff --git a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.node.js b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.node.js
index 1e3571a6f2..3c2b9e512c 100644
--- a/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.node.js
+++ b/packages/react-server-dom-turbopack/src/server/react-flight-dom-server.node.js
@@ -10,8 +10,8 @@
export {
renderToReadableStream,
renderToPipeableStream,
- prerender as unstable_prerender,
- prerenderToNodeStream as unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
decodeReply,
decodeReplyFromBusboy,
decodeReplyFromAsyncIterable,
diff --git a/packages/react-server-dom-turbopack/static.browser.js b/packages/react-server-dom-turbopack/static.browser.js
index 3281fed6ea..2589789163 100644
--- a/packages/react-server-dom-turbopack/static.browser.js
+++ b/packages/react-server-dom-turbopack/static.browser.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.browser';
+export {prerender} from './src/server/react-flight-dom-server.browser';
diff --git a/packages/react-server-dom-turbopack/static.edge.js b/packages/react-server-dom-turbopack/static.edge.js
index b1a96317ae..a39d54c73f 100644
--- a/packages/react-server-dom-turbopack/static.edge.js
+++ b/packages/react-server-dom-turbopack/static.edge.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.edge';
+export {prerender} from './src/server/react-flight-dom-server.edge';
diff --git a/packages/react-server-dom-turbopack/static.node.js b/packages/react-server-dom-turbopack/static.node.js
index 1b2c11edc1..78e70a1cf4 100644
--- a/packages/react-server-dom-turbopack/static.node.js
+++ b/packages/react-server-dom-turbopack/static.node.js
@@ -8,6 +8,6 @@
*/
export {
- unstable_prerender,
- unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
} from './src/server/react-flight-dom-server.node';
diff --git a/packages/react-server-dom-webpack/npm/static.browser.js b/packages/react-server-dom-webpack/npm/static.browser.js
index 8c8951a62b..06218aec3d 100644
--- a/packages/react-server-dom-webpack/npm/static.browser.js
+++ b/packages/react-server-dom-webpack/npm/static.browser.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-webpack-server.browser.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-webpack/npm/static.edge.js b/packages/react-server-dom-webpack/npm/static.edge.js
index 975a4b5b87..df9085690a 100644
--- a/packages/react-server-dom-webpack/npm/static.edge.js
+++ b/packages/react-server-dom-webpack/npm/static.edge.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-webpack-server.edge.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
+exports.prerender = s.prerender;
diff --git a/packages/react-server-dom-webpack/npm/static.node.js b/packages/react-server-dom-webpack/npm/static.node.js
index b0e4477fab..2f649d1fc5 100644
--- a/packages/react-server-dom-webpack/npm/static.node.js
+++ b/packages/react-server-dom-webpack/npm/static.node.js
@@ -7,9 +7,5 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-webpack-server.node.development.js');
}
-if (s.unstable_prerender) {
- exports.unstable_prerender = s.unstable_prerender;
-}
-if (s.unstable_prerenderToNodeStream) {
- exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
-}
+exports.prerender = s.prerender;
+exports.prerenderToNodeStream = s.prerenderToNodeStream;
diff --git a/packages/react-server-dom-webpack/npm/static.node.unbundled.js b/packages/react-server-dom-webpack/npm/static.node.unbundled.js
index 5df3d5bf7a..850886dcd9 100644
--- a/packages/react-server-dom-webpack/npm/static.node.unbundled.js
+++ b/packages/react-server-dom-webpack/npm/static.node.unbundled.js
@@ -7,6 +7,4 @@ if (process.env.NODE_ENV === 'production') {
s = require('./cjs/react-server-dom-webpack-server.node.unbundled.development.js');
}
-if (s.unstable_prerenderToNodeStream) {
- exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
-}
+exports.prerenderToNodeStream = s.prerenderToNodeStream;
diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js
index 60154d6118..9fe9c7aaf3 100644
--- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js
+++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOM-test.js
@@ -63,11 +63,9 @@ describe('ReactFlightDOM', () => {
jest.mock('react-server-dom-webpack/server', () =>
require('react-server-dom-webpack/server.node.unbundled'),
);
- if (__EXPERIMENTAL__) {
- jest.mock('react-server-dom-webpack/static', () =>
- require('react-server-dom-webpack/static.node.unbundled'),
- );
- }
+ jest.mock('react-server-dom-webpack/static', () =>
+ require('react-server-dom-webpack/static.node.unbundled'),
+ );
const WebpackMock = require('./utils/WebpackMock');
clientExports = WebpackMock.clientExports;
clientExportsESM = WebpackMock.clientExportsESM;
@@ -75,9 +73,7 @@ describe('ReactFlightDOM', () => {
webpackMap = WebpackMock.webpackMap;
ReactServerDOMServer = require('react-server-dom-webpack/server');
- if (__EXPERIMENTAL__) {
- ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
- }
+ ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
// This reset is to load modules for the SSR/Browser scope.
jest.unmock('react-server-dom-webpack/server');
@@ -2874,7 +2870,7 @@ describe('ReactFlightDOM', () => {
);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender', async () => {
let resolveGreeting;
const greetingPromise = new Promise(resolve => {
@@ -2897,11 +2893,10 @@ describe('ReactFlightDOM', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- ,
- webpackMap,
- ),
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ ,
+ webpackMap,
+ ),
};
});
@@ -2964,17 +2959,16 @@ describe('ReactFlightDOM', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- ,
- webpackMap,
- {
- signal: controller.signal,
- onError(err) {
- errors.push(err);
- },
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ ,
+ webpackMap,
+ {
+ signal: controller.signal,
+ onError(err) {
+ errors.push(err);
},
- ),
+ },
+ ),
};
});
@@ -3022,7 +3016,7 @@ describe('ReactFlightDOM', () => {
});
// This could be a bug. Discovered while making enableAsyncDebugInfo dynamic for www.
- // @gate experimental && (enableHalt || (enableAsyncDebugInfo && __DEV__))
+ // @gate enableHalt || enablePostpone || (enableAsyncDebugInfo && __DEV__)
it('will leave async iterables in an incomplete state when halting', async () => {
let resolve;
const wait = new Promise(r => (resolve = r));
@@ -3040,19 +3034,18 @@ describe('ReactFlightDOM', () => {
const controller = new AbortController();
const {pendingResult} = await serverAct(() => {
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- {
- multiShotIterable,
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ {
+ multiShotIterable,
+ },
+ {},
+ {
+ onError(x) {
+ errors.push(x);
},
- {},
- {
- onError(x) {
- errors.push(x);
- },
- signal: controller.signal,
- },
- ),
+ signal: controller.signal,
+ },
+ ),
};
});
@@ -3124,17 +3117,16 @@ describe('ReactFlightDOM', () => {
const errors = [];
const {pendingResult} = await serverAct(() => {
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- ,
- {},
- {
- onError(x) {
- errors.push(x);
- },
- signal: controller.signal,
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ ,
+ {},
+ {
+ onError(x) {
+ errors.push(x);
},
- ),
+ signal: controller.signal,
+ },
+ ),
};
});
diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js
index 49cc28535e..9c7b5b62b1 100644
--- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js
+++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js
@@ -69,12 +69,10 @@ describe('ReactFlightDOMBrowser', () => {
webpackMap = WebpackMock.webpackMap;
webpackServerMap = WebpackMock.webpackServerMap;
ReactServerDOMServer = require('react-server-dom-webpack/server');
- if (__EXPERIMENTAL__) {
- jest.mock('react-server-dom-webpack/static', () =>
- require('react-server-dom-webpack/static.browser'),
- );
- ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
- }
+ jest.mock('react-server-dom-webpack/static', () =>
+ require('react-server-dom-webpack/static.browser'),
+ );
+ ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
__unmockReact();
jest.resetModules();
@@ -2497,7 +2495,7 @@ describe('ReactFlightDOMBrowser', () => {
expect(errors).toEqual([reason]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender', async () => {
let resolveGreeting;
const greetingPromise = new Promise(resolve => {
@@ -2520,7 +2518,7 @@ describe('ReactFlightDOMBrowser', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
,
webpackMap,
),
@@ -2573,7 +2571,7 @@ describe('ReactFlightDOMBrowser', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
,
webpackMap,
{
@@ -3011,9 +3009,9 @@ describe('ReactFlightDOMBrowser', () => {
[
"",
"/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js",
- 2937,
+ 2935,
27,
- 2931,
+ 2929,
34,
],
[
@@ -3027,9 +3025,9 @@ describe('ReactFlightDOMBrowser', () => {
[
"Object.",
"/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMBrowser-test.js",
- 2931,
+ 2929,
18,
- 2918,
+ 2916,
89,
],
],
diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js
index 7aaf4150db..44b3256afe 100644
--- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js
+++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js
@@ -90,12 +90,10 @@ describe('ReactFlightDOMEdge', () => {
ReactServer = require('react');
ReactServerDOMServer = require('react-server-dom-webpack/server');
- if (__EXPERIMENTAL__) {
- jest.mock('react-server-dom-webpack/static', () =>
- require('react-server-dom-webpack/static.edge'),
- );
- ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
- }
+ jest.mock('react-server-dom-webpack/static', () =>
+ require('react-server-dom-webpack/static.edge'),
+ );
+ ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
jest.resetModules();
__unmockReact();
@@ -1372,7 +1370,7 @@ describe('ReactFlightDOMEdge', () => {
]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender', async () => {
let resolveGreeting;
const greetingPromise = new Promise(resolve => {
@@ -1395,7 +1393,7 @@ describe('ReactFlightDOMEdge', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
,
webpackMap,
),
@@ -1453,7 +1451,7 @@ describe('ReactFlightDOMEdge', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
,
webpackMap,
{
@@ -1514,7 +1512,7 @@ describe('ReactFlightDOMEdge', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
{promise: infinitePromise},
webpackMap,
{
@@ -1554,12 +1552,12 @@ describe('ReactFlightDOMEdge', () => {
expect(error.message).toBe('Connection closed.');
});
- // @gate experimental
- it('should be able to handle a rejected promise in unstable_prerender', async () => {
+ // @gate enableHalt || enablePostpone
+ it('should be able to handle a rejected promise in prerender', async () => {
const expectedError = new Error('Bam!');
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
Promise.reject(expectedError),
webpackMap,
{
@@ -1593,12 +1591,12 @@ describe('ReactFlightDOMEdge', () => {
expect(error.message).toBe(expectedMessage);
});
- // @gate experimental
- it('should be able to handle an erroring async iterable in unstable_prerender', async () => {
+ // @gate enableHalt || enablePostpone
+ it('should be able to handle an erroring async iterable in prerender', async () => {
const expectedError = new Error('Bam!');
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
{
async *[Symbol.asyncIterator]() {
await serverAct(() => {
@@ -1640,12 +1638,12 @@ describe('ReactFlightDOMEdge', () => {
expect(error.message).toBe(expectedMessage);
});
- // @gate experimental
- it('should be able to handle an erroring readable stream in unstable_prerender', async () => {
+ // @gate enableHalt || enablePostpone
+ it('should be able to handle an erroring readable stream in prerender', async () => {
const expectedError = new Error('Bam!');
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
new ReadableStream({
async start(controller) {
await serverAct(() => {
@@ -1688,11 +1686,11 @@ describe('ReactFlightDOMEdge', () => {
expect(error.message).toBe(expectedMessage);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender an async iterable', async () => {
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
{
async *[Symbol.asyncIterator]() {
yield 'hello';
@@ -1732,11 +1730,11 @@ describe('ReactFlightDOMEdge', () => {
expect(text).toBe('hello world');
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender a readable stream', async () => {
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
new ReadableStream({
start(controller) {
controller.enqueue('hello world');
@@ -1766,7 +1764,7 @@ describe('ReactFlightDOMEdge', () => {
expect(result).toBe('hello world');
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('does not return a prerender prelude early when an error is emitted and there are still pending tasks', async () => {
let rejectPromise;
const rejectingPromise = new Promise(
@@ -1775,7 +1773,7 @@ describe('ReactFlightDOMEdge', () => {
const expectedError = new Error('Boom!');
const errors = [];
- const {prelude} = await ReactServerDOMStaticServer.unstable_prerender(
+ const {prelude} = await ReactServerDOMStaticServer.prerender(
[
rejectingPromise,
{
@@ -1862,7 +1860,7 @@ describe('ReactFlightDOMEdge', () => {
const serverAbortController = new AbortController();
const errors = [];
- const prerenderResult = ReactServerDOMStaticServer.unstable_prerender(
+ const prerenderResult = ReactServerDOMStaticServer.prerender(
ReactServer.createElement(App, null),
webpackMap,
{
diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js
index 59df3c24d6..f63f823331 100644
--- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js
+++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMNode-test.js
@@ -49,12 +49,10 @@ describe('ReactFlightDOMNode', () => {
);
ReactServer = require('react');
ReactServerDOMServer = require('react-server-dom-webpack/server');
- if (__EXPERIMENTAL__) {
- jest.mock('react-server-dom-webpack/static', () =>
- require('react-server-dom-webpack/static.node'),
- );
- ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
- }
+ jest.mock('react-server-dom-webpack/static', () =>
+ require('react-server-dom-webpack/static.node'),
+ );
+ ReactServerDOMStaticServer = require('react-server-dom-webpack/static');
const WebpackMock = require('./utils/WebpackMock');
clientExports = WebpackMock.clientExports;
@@ -489,7 +487,7 @@ describe('ReactFlightDOMNode', () => {
expect(errors).toEqual([reason]);
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
it('can prerender', async () => {
let resolveGreeting;
const greetingPromise = new Promise(resolve => {
@@ -512,11 +510,10 @@ describe('ReactFlightDOMNode', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- ,
- webpackMap,
- ),
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ ,
+ webpackMap,
+ ),
};
});
@@ -571,17 +568,16 @@ describe('ReactFlightDOMNode', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult:
- ReactServerDOMStaticServer.unstable_prerenderToNodeStream(
- ,
- webpackMap,
- {
- signal: controller.signal,
- onError(err) {
- errors.push(err);
- },
+ pendingResult: ReactServerDOMStaticServer.prerenderToNodeStream(
+ ,
+ webpackMap,
+ {
+ signal: controller.signal,
+ onError(err) {
+ errors.push(err);
},
- ),
+ },
+ ),
};
});
@@ -618,7 +614,7 @@ describe('ReactFlightDOMNode', () => {
expect(result).toContain('loading...');
});
- // @gate enableHalt && enableAsyncDebugInfo
+ // @gate enableHalt
it('includes source locations in component and owner stacks for halted components', async () => {
async function Component() {
await new Promise(() => {});
@@ -646,7 +642,7 @@ describe('ReactFlightDOMNode', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
ReactServer.createElement(App, null),
webpackMap,
{
@@ -722,7 +718,9 @@ describe('ReactFlightDOMNode', () => {
if (__DEV__) {
expect(normalizeCodeLocInfo(componentStack)).toBe(
- '\n in Component (at **)\n' +
+ '\n' +
+ ' in Component' +
+ (gate(flags => flags.enableAsyncDebugInfo) ? ' (at **)\n' : '\n') +
' in Suspense\n' +
' in body\n' +
' in html\n' +
@@ -739,15 +737,19 @@ describe('ReactFlightDOMNode', () => {
}
if (__DEV__) {
- expect(normalizeCodeLocInfo(ownerStack)).toBe(
- '\n in Component (at **)\n in App (at **)',
- );
+ if (gate(flags => flags.enableAsyncDebugInfo)) {
+ expect(normalizeCodeLocInfo(ownerStack)).toBe(
+ '\n in Component (at **)\n in App (at **)',
+ );
+ } else {
+ expect(normalizeCodeLocInfo(ownerStack)).toBe('\n in App (at **)');
+ }
} else {
expect(ownerStack).toBeNull();
}
});
- // @gate enableHalt && enableAsyncDebugInfo
+ // @gate enableHalt
it('includes deeper location for aborted stacks', async () => {
async function getData() {
const signal = ReactServer.cacheSignal();
@@ -792,7 +794,7 @@ describe('ReactFlightDOMNode', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
ReactServer.createElement(App, null),
webpackMap,
{
@@ -869,7 +871,9 @@ describe('ReactFlightDOMNode', () => {
if (__DEV__) {
expect(normalizeCodeLocInfo(componentStack)).toBe(
- '\n in Component (at **)\n' +
+ '\n' +
+ ' in Component' +
+ (gate(flags => flags.enableAsyncDebugInfo) ? ' (at **)\n' : '\n') +
' in Suspense\n' +
' in body\n' +
' in html\n' +
@@ -886,17 +890,24 @@ describe('ReactFlightDOMNode', () => {
}
if (__DEV__) {
- expect(normalizeCodeLocInfo(ownerStack)).toBe(
- '\n in getData (at **)' +
- '\n in Component (at **)' +
- '\n in App (at **)',
- );
+ if (gate(flags => flags.enableAsyncDebugInfo)) {
+ expect(normalizeCodeLocInfo(ownerStack)).toBe(
+ '' +
+ '\n in getData (at **)' +
+ '\n in Component (at **)' +
+ '\n in App (at **)',
+ );
+ } else {
+ expect(normalizeCodeLocInfo(ownerStack)).toBe(
+ '' + '\n in App (at **)',
+ );
+ }
} else {
expect(ownerStack).toBeNull();
}
});
- // @gate experimental
+ // @gate enableHalt || enablePostpone
// @gate enableHalt
it('can handle an empty prelude when prerendering', async () => {
function App() {
@@ -909,7 +920,7 @@ describe('ReactFlightDOMNode', () => {
const {pendingResult} = await serverAct(async () => {
// destructure trick to avoid the act scope from awaiting the returned value
return {
- pendingResult: ReactServerDOMStaticServer.unstable_prerender(
+ pendingResult: ReactServerDOMStaticServer.prerender(
ReactServer.createElement(App, null),
webpackMap,
{
diff --git a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.browser.js b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.browser.js
index c0860225d7..d8373ec551 100644
--- a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.browser.js
+++ b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.browser.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeAction,
decodeFormState,
diff --git a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.edge.js b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.edge.js
index 9198f9913e..e103ff7619 100644
--- a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.edge.js
+++ b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.edge.js
@@ -9,7 +9,7 @@
export {
renderToReadableStream,
- prerender as unstable_prerender,
+ prerender,
decodeReply,
decodeReplyFromAsyncIterable,
decodeAction,
diff --git a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.js b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.js
index 1e3571a6f2..3c2b9e512c 100644
--- a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.js
+++ b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.js
@@ -10,8 +10,8 @@
export {
renderToReadableStream,
renderToPipeableStream,
- prerender as unstable_prerender,
- prerenderToNodeStream as unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
decodeReply,
decodeReplyFromBusboy,
decodeReplyFromAsyncIterable,
diff --git a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled.js b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled.js
index 1e3571a6f2..3c2b9e512c 100644
--- a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled.js
+++ b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled.js
@@ -10,8 +10,8 @@
export {
renderToReadableStream,
renderToPipeableStream,
- prerender as unstable_prerender,
- prerenderToNodeStream as unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
decodeReply,
decodeReplyFromBusboy,
decodeReplyFromAsyncIterable,
diff --git a/packages/react-server-dom-webpack/static.browser.js b/packages/react-server-dom-webpack/static.browser.js
index 3281fed6ea..2589789163 100644
--- a/packages/react-server-dom-webpack/static.browser.js
+++ b/packages/react-server-dom-webpack/static.browser.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.browser';
+export {prerender} from './src/server/react-flight-dom-server.browser';
diff --git a/packages/react-server-dom-webpack/static.edge.js b/packages/react-server-dom-webpack/static.edge.js
index b1a96317ae..a39d54c73f 100644
--- a/packages/react-server-dom-webpack/static.edge.js
+++ b/packages/react-server-dom-webpack/static.edge.js
@@ -7,4 +7,4 @@
* @flow
*/
-export {unstable_prerender} from './src/server/react-flight-dom-server.edge';
+export {prerender} from './src/server/react-flight-dom-server.edge';
diff --git a/packages/react-server-dom-webpack/static.node.js b/packages/react-server-dom-webpack/static.node.js
index 1b2c11edc1..78e70a1cf4 100644
--- a/packages/react-server-dom-webpack/static.node.js
+++ b/packages/react-server-dom-webpack/static.node.js
@@ -8,6 +8,6 @@
*/
export {
- unstable_prerender,
- unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
} from './src/server/react-flight-dom-server.node';
diff --git a/packages/react-server-dom-webpack/static.node.unbundled.js b/packages/react-server-dom-webpack/static.node.unbundled.js
index be7dbcb721..3f19796a20 100644
--- a/packages/react-server-dom-webpack/static.node.unbundled.js
+++ b/packages/react-server-dom-webpack/static.node.unbundled.js
@@ -8,6 +8,6 @@
*/
export {
- unstable_prerender,
- unstable_prerenderToNodeStream,
+ prerender,
+ prerenderToNodeStream,
} from './src/server/react-flight-dom-server.node.unbundled';
diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js
index f52455c784..a37adfea43 100644
--- a/packages/shared/ReactFeatureFlags.js
+++ b/packages/shared/ReactFeatureFlags.js
@@ -82,7 +82,7 @@ export const enableTaint = __EXPERIMENTAL__;
export const enablePostpone = __EXPERIMENTAL__;
-export const enableHalt = __EXPERIMENTAL__;
+export const enableHalt: boolean = true;
export const enableViewTransition = __EXPERIMENTAL__;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js
index b6cadd1d2e..afecaa685f 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-fb.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js
@@ -44,7 +44,7 @@ export const enableCPUSuspense: boolean = true;
export const enableCreateEventHandleAPI: boolean = false;
export const enableMoveBefore: boolean = true;
export const enableFizzExternalRuntime: boolean = true;
-export const enableHalt: boolean = false;
+export const enableHalt: boolean = true;
export const enableInfiniteRenderLoopDetection: boolean = false;
export const enableLegacyCache: boolean = false;
export const enableLegacyFBSupport: boolean = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js
index 8b39d0cbca..8335ca5857 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-oss.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js
@@ -30,7 +30,7 @@ export const enableCPUSuspense: boolean = false;
export const enableCreateEventHandleAPI: boolean = false;
export const enableMoveBefore: boolean = true;
export const enableFizzExternalRuntime: boolean = true;
-export const enableHalt: boolean = false;
+export const enableHalt: boolean = true;
export const enableHiddenSubtreeInsertionEffectCleanup: boolean = false;
export const enableInfiniteRenderLoopDetection: boolean = false;
export const enableLegacyCache: boolean = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
index c9c1f7fe3b..865fa139af 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
@@ -21,7 +21,7 @@ export const enableLegacyCache: boolean = __EXPERIMENTAL__;
export const enableAsyncIterableChildren: boolean = false;
export const enableTaint: boolean = true;
export const enablePostpone: boolean = false;
-export const enableHalt: boolean = false;
+export const enableHalt: boolean = true;
export const disableCommentsAsDOMContainers: boolean = true;
export const disableInputAttributeSyncing: boolean = false;
export const enableScopeAPI: boolean = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
index 1a46f0d038..eb56da603d 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
@@ -25,7 +25,7 @@ export const enableCPUSuspense = true;
export const enableCreateEventHandleAPI = false;
export const enableMoveBefore = false;
export const enableFizzExternalRuntime = true;
-export const enableHalt = false;
+export const enableHalt = true;
export const enableInfiniteRenderLoopDetection = false;
export const enableHiddenSubtreeInsertionEffectCleanup = true;
export const enableLegacyCache = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
index ecb165af6b..f652ec4047 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
@@ -21,7 +21,7 @@ export const enableLegacyCache: boolean = true;
export const enableAsyncIterableChildren: boolean = false;
export const enableTaint: boolean = true;
export const enablePostpone: boolean = false;
-export const enableHalt: boolean = false;
+export const enableHalt: boolean = true;
export const disableCommentsAsDOMContainers: boolean = true;
export const disableInputAttributeSyncing: boolean = false;
export const enableScopeAPI: boolean = true;
diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js
index 732e4e143e..6ba56d9d54 100644
--- a/packages/shared/forks/ReactFeatureFlags.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.www.js
@@ -73,7 +73,7 @@ export const enableTaint: boolean = false;
export const enablePostpone: boolean = false;
-export const enableHalt: boolean = false;
+export const enableHalt: boolean = true;
// TODO: www currently relies on this feature. It's disabled in open source.
// Need to remove it.