diff --git a/compiled/facebook-www/REVISION b/compiled/facebook-www/REVISION index 1f6c862ab8..748afefe9b 100644 --- a/compiled/facebook-www/REVISION +++ b/compiled/facebook-www/REVISION @@ -1 +1 @@ -1d3ffd9d9addb4aa0988b92ee6917c07c3c261ae +cdf4588242e1dc0c9b29f7539d9ae97d216d03d4 diff --git a/compiled/facebook-www/ReactFlightDOMRelayServer-dev.classic.js b/compiled/facebook-www/ReactFlightDOMRelayServer-dev.classic.js index e74a394fc3..2a9435b294 100644 --- a/compiled/facebook-www/ReactFlightDOMRelayServer-dev.classic.js +++ b/compiled/facebook-www/ReactFlightDOMRelayServer-dev.classic.js @@ -189,246 +189,6 @@ function getIteratorFn(maybeIterable) { return null; } -// Re-export dynamic flags from the www version. -require("ReactFeatureFlags"); - -// A simple string attribute. -// Attributes that aren't in the filter are presumed to have this type. -var STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called -// "enumerated" attributes with "true" and "false" as possible values. -// When true, it should be set to a "true" string. -// When false, it should be set to a "false" string. - -var BOOLEANISH_STRING = 2; // A real boolean attribute. -// When true, it should be present (set either to an empty string or its name). -// When false, it should be omitted. - -var BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value. -// When true, it should be present (set either to an empty string or its name). -// When false, it should be omitted. -// For any other value, should be present with that value. - -var OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric. -// When falsy, it should be removed. - -var NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric. - -function PropertyInfoRecord( - type, - attributeName, - attributeNamespace, - sanitizeURL, - removeEmptyString -) { - this.acceptsBooleans = - type === BOOLEANISH_STRING || - type === BOOLEAN || - type === OVERLOADED_BOOLEAN; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.type = type; - this.sanitizeURL = sanitizeURL; - this.removeEmptyString = removeEmptyString; -} // When adding attributes to this list, be sure to also add them to -// In React, we let users pass `true` and `false` even though technically -// these aren't boolean attributes (they are coerced to strings). - -["contentEditable", "draggable", "spellCheck", "value"].forEach(function ( - name -) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - BOOLEANISH_STRING, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These are "enumerated" SVG attributes that accept "true" and "false". - -[ - "allowFullScreen", - "async", // Note: there is a special case that prevents it from being written to the DOM - // on the client side because the browsers are inconsistent. Instead we call focus(). - "autoFocus", - "autoPlay", - "controls", - "default", - "defer", - "disabled", - "disablePictureInPicture", - "disableRemotePlayback", - "formNoValidate", - "hidden", - "loop", - "noModule", - "noValidate", - "open", - "playsInline", - "readOnly", - "required", - "reversed", - "scoped", - "seamless", // Microdata - "itemScope" -].forEach(function (name) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - BOOLEAN, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These are HTML attributes that are "overloaded booleans": they behave like - -["rowSpan", "start"].forEach(function (name) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - NUMERIC, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); -var CAMELIZE = /[\-\:]([a-z])/g; - -var capitalize = function (token) { - return token[1].toUpperCase(); -}; // This is a list of all SVG attributes that need special casing, namespacing, -// or boolean value assignment. Regular attributes that just accept strings -// and have the same names are omitted, just like in the HTML attribute filter. -// Some of these attributes can be hard to find. This list was created by -// scraping the MDN documentation. - -[ - "accent-height", - "alignment-baseline", - "arabic-form", - "baseline-shift", - "cap-height", - "clip-path", - "clip-rule", - "color-interpolation", - "color-interpolation-filters", - "color-profile", - "color-rendering", - "dominant-baseline", - "enable-background", - "fill-opacity", - "fill-rule", - "flood-color", - "flood-opacity", - "font-family", - "font-size", - "font-size-adjust", - "font-stretch", - "font-style", - "font-variant", - "font-weight", - "glyph-name", - "glyph-orientation-horizontal", - "glyph-orientation-vertical", - "horiz-adv-x", - "horiz-origin-x", - "image-rendering", - "letter-spacing", - "lighting-color", - "marker-end", - "marker-mid", - "marker-start", - "overline-position", - "overline-thickness", - "paint-order", - "panose-1", - "pointer-events", - "rendering-intent", - "shape-rendering", - "stop-color", - "stop-opacity", - "strikethrough-position", - "strikethrough-thickness", - "stroke-dasharray", - "stroke-dashoffset", - "stroke-linecap", - "stroke-linejoin", - "stroke-miterlimit", - "stroke-opacity", - "stroke-width", - "text-anchor", - "text-decoration", - "text-rendering", - "transform-origin", - "underline-position", - "underline-thickness", - "unicode-bidi", - "unicode-range", - "units-per-em", - "v-alphabetic", - "v-hanging", - "v-ideographic", - "v-mathematical", - "vector-effect", - "vert-adv-y", - "vert-origin-x", - "vert-origin-y", - "word-spacing", - "writing-mode", - "xmlns:xlink", - "x-height" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // String SVG attributes with the xlink namespace. - -[ - "xlink:actuate", - "xlink:arcrole", - "xlink:role", - "xlink:show", - "xlink:title", - "xlink:type" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // String SVG attributes with the xml namespace. - -[ - "xml:base", - "xml:lang", - "xml:space" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // These attribute exists both in HTML and SVG. -// The attribute name is case-sensitive in SVG so we can't just use -// the React name like we do for attributes that exist only in HTML. - -["tabIndex", "crossOrigin"].forEach(function (attributeName) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - STRING, - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These attributes accept URLs. These must not allow javascript: URLS. -["src", "href", "action"].forEach(function (attributeName) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - STRING, - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - true, // sanitizeURL - true - ); -}); - var rendererSigil; { @@ -637,6 +397,9 @@ function readContext$1(context) { return value; } +// Re-export dynamic flags from the www version. +require("ReactFeatureFlags"); + // Corresponds to ReactFiberWakeable and ReactFizzWakeable modules. Generally, // changes to one module should be reflected in the others. // TODO: Rename this module and the corresponding Fiber one to "Thenable" diff --git a/compiled/facebook-www/ReactFlightDOMRelayServer-dev.modern.js b/compiled/facebook-www/ReactFlightDOMRelayServer-dev.modern.js index e74a394fc3..2a9435b294 100644 --- a/compiled/facebook-www/ReactFlightDOMRelayServer-dev.modern.js +++ b/compiled/facebook-www/ReactFlightDOMRelayServer-dev.modern.js @@ -189,246 +189,6 @@ function getIteratorFn(maybeIterable) { return null; } -// Re-export dynamic flags from the www version. -require("ReactFeatureFlags"); - -// A simple string attribute. -// Attributes that aren't in the filter are presumed to have this type. -var STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called -// "enumerated" attributes with "true" and "false" as possible values. -// When true, it should be set to a "true" string. -// When false, it should be set to a "false" string. - -var BOOLEANISH_STRING = 2; // A real boolean attribute. -// When true, it should be present (set either to an empty string or its name). -// When false, it should be omitted. - -var BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value. -// When true, it should be present (set either to an empty string or its name). -// When false, it should be omitted. -// For any other value, should be present with that value. - -var OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric. -// When falsy, it should be removed. - -var NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric. - -function PropertyInfoRecord( - type, - attributeName, - attributeNamespace, - sanitizeURL, - removeEmptyString -) { - this.acceptsBooleans = - type === BOOLEANISH_STRING || - type === BOOLEAN || - type === OVERLOADED_BOOLEAN; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.type = type; - this.sanitizeURL = sanitizeURL; - this.removeEmptyString = removeEmptyString; -} // When adding attributes to this list, be sure to also add them to -// In React, we let users pass `true` and `false` even though technically -// these aren't boolean attributes (they are coerced to strings). - -["contentEditable", "draggable", "spellCheck", "value"].forEach(function ( - name -) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - BOOLEANISH_STRING, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These are "enumerated" SVG attributes that accept "true" and "false". - -[ - "allowFullScreen", - "async", // Note: there is a special case that prevents it from being written to the DOM - // on the client side because the browsers are inconsistent. Instead we call focus(). - "autoFocus", - "autoPlay", - "controls", - "default", - "defer", - "disabled", - "disablePictureInPicture", - "disableRemotePlayback", - "formNoValidate", - "hidden", - "loop", - "noModule", - "noValidate", - "open", - "playsInline", - "readOnly", - "required", - "reversed", - "scoped", - "seamless", // Microdata - "itemScope" -].forEach(function (name) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - BOOLEAN, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These are HTML attributes that are "overloaded booleans": they behave like - -["rowSpan", "start"].forEach(function (name) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - NUMERIC, - name.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); -var CAMELIZE = /[\-\:]([a-z])/g; - -var capitalize = function (token) { - return token[1].toUpperCase(); -}; // This is a list of all SVG attributes that need special casing, namespacing, -// or boolean value assignment. Regular attributes that just accept strings -// and have the same names are omitted, just like in the HTML attribute filter. -// Some of these attributes can be hard to find. This list was created by -// scraping the MDN documentation. - -[ - "accent-height", - "alignment-baseline", - "arabic-form", - "baseline-shift", - "cap-height", - "clip-path", - "clip-rule", - "color-interpolation", - "color-interpolation-filters", - "color-profile", - "color-rendering", - "dominant-baseline", - "enable-background", - "fill-opacity", - "fill-rule", - "flood-color", - "flood-opacity", - "font-family", - "font-size", - "font-size-adjust", - "font-stretch", - "font-style", - "font-variant", - "font-weight", - "glyph-name", - "glyph-orientation-horizontal", - "glyph-orientation-vertical", - "horiz-adv-x", - "horiz-origin-x", - "image-rendering", - "letter-spacing", - "lighting-color", - "marker-end", - "marker-mid", - "marker-start", - "overline-position", - "overline-thickness", - "paint-order", - "panose-1", - "pointer-events", - "rendering-intent", - "shape-rendering", - "stop-color", - "stop-opacity", - "strikethrough-position", - "strikethrough-thickness", - "stroke-dasharray", - "stroke-dashoffset", - "stroke-linecap", - "stroke-linejoin", - "stroke-miterlimit", - "stroke-opacity", - "stroke-width", - "text-anchor", - "text-decoration", - "text-rendering", - "transform-origin", - "underline-position", - "underline-thickness", - "unicode-bidi", - "unicode-range", - "units-per-em", - "v-alphabetic", - "v-hanging", - "v-ideographic", - "v-mathematical", - "vector-effect", - "vert-adv-y", - "vert-origin-x", - "vert-origin-y", - "word-spacing", - "writing-mode", - "xmlns:xlink", - "x-height" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // String SVG attributes with the xlink namespace. - -[ - "xlink:actuate", - "xlink:arcrole", - "xlink:role", - "xlink:show", - "xlink:title", - "xlink:type" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // String SVG attributes with the xml namespace. - -[ - "xml:base", - "xml:lang", - "xml:space" // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. -].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions -}); // These attribute exists both in HTML and SVG. -// The attribute name is case-sensitive in SVG so we can't just use -// the React name like we do for attributes that exist only in HTML. - -["tabIndex", "crossOrigin"].forEach(function (attributeName) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - STRING, - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - false, // sanitizeURL - false - ); -}); // These attributes accept URLs. These must not allow javascript: URLS. -["src", "href", "action"].forEach(function (attributeName) { - // $FlowFixMe[invalid-constructor] Flow no longer supports calling new on functions - new PropertyInfoRecord( - STRING, - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - true, // sanitizeURL - true - ); -}); - var rendererSigil; { @@ -637,6 +397,9 @@ function readContext$1(context) { return value; } +// Re-export dynamic flags from the www version. +require("ReactFeatureFlags"); + // Corresponds to ReactFiberWakeable and ReactFizzWakeable modules. Generally, // changes to one module should be reflected in the others. // TODO: Rename this module and the corresponding Fiber one to "Thenable" diff --git a/compiled/facebook-www/ReactFlightDOMRelayServer-prod.classic.js b/compiled/facebook-www/ReactFlightDOMRelayServer-prod.classic.js index 359bf28963..411eddc6b9 100644 --- a/compiled/facebook-www/ReactFlightDOMRelayServer-prod.classic.js +++ b/compiled/facebook-www/ReactFlightDOMRelayServer-prod.classic.js @@ -60,59 +60,8 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.element"), "react.default_value" ), REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), - MAYBE_ITERATOR_SYMBOL = Symbol.iterator; -require("ReactFeatureFlags"); -function PropertyInfoRecord( - type, - attributeName, - attributeNamespace, - sanitizeURL, - removeEmptyString -) { - this.acceptsBooleans = 2 === type || 3 === type || 4 === type; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.type = type; - this.sanitizeURL = sanitizeURL; - this.removeEmptyString = removeEmptyString; -} -["contentEditable", "draggable", "spellCheck", "value"].forEach(function ( - name -) { - new PropertyInfoRecord(2, name.toLowerCase(), null, !1, !1); -}); -"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope" - .split(" ") - .forEach(function (name) { - new PropertyInfoRecord(3, name.toLowerCase(), null, !1, !1); - }); -["rowSpan", "start"].forEach(function (name) { - new PropertyInfoRecord(5, name.toLowerCase(), null, !1, !1); -}); -var CAMELIZE = /[\-:]([a-z])/g; -function capitalize(token) { - return token[1].toUpperCase(); -} -"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering transform-origin underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height" - .split(" ") - .forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); - }); -"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type" - .split(" ") - .forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); - }); -["xml:base", "xml:lang", "xml:space"].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); -}); -["tabIndex", "crossOrigin"].forEach(function (attributeName) { - new PropertyInfoRecord(1, attributeName.toLowerCase(), null, !1, !1); -}); -["src", "href", "action"].forEach(function (attributeName) { - new PropertyInfoRecord(1, attributeName.toLowerCase(), null, !0, !0); -}); -var currentActiveSnapshot = null; + MAYBE_ITERATOR_SYMBOL = Symbol.iterator, + currentActiveSnapshot = null; function popToNearestCommonAncestor(prev, next) { if (prev !== next) { prev.context._currentValue = prev.parentValue; @@ -192,6 +141,7 @@ function pushProvider(context, nextValue) { value: nextValue }); } +require("ReactFeatureFlags"); var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ); diff --git a/compiled/facebook-www/ReactFlightDOMRelayServer-prod.modern.js b/compiled/facebook-www/ReactFlightDOMRelayServer-prod.modern.js index 359bf28963..411eddc6b9 100644 --- a/compiled/facebook-www/ReactFlightDOMRelayServer-prod.modern.js +++ b/compiled/facebook-www/ReactFlightDOMRelayServer-prod.modern.js @@ -60,59 +60,8 @@ var REACT_ELEMENT_TYPE = Symbol.for("react.element"), "react.default_value" ), REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), - MAYBE_ITERATOR_SYMBOL = Symbol.iterator; -require("ReactFeatureFlags"); -function PropertyInfoRecord( - type, - attributeName, - attributeNamespace, - sanitizeURL, - removeEmptyString -) { - this.acceptsBooleans = 2 === type || 3 === type || 4 === type; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.type = type; - this.sanitizeURL = sanitizeURL; - this.removeEmptyString = removeEmptyString; -} -["contentEditable", "draggable", "spellCheck", "value"].forEach(function ( - name -) { - new PropertyInfoRecord(2, name.toLowerCase(), null, !1, !1); -}); -"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope" - .split(" ") - .forEach(function (name) { - new PropertyInfoRecord(3, name.toLowerCase(), null, !1, !1); - }); -["rowSpan", "start"].forEach(function (name) { - new PropertyInfoRecord(5, name.toLowerCase(), null, !1, !1); -}); -var CAMELIZE = /[\-:]([a-z])/g; -function capitalize(token) { - return token[1].toUpperCase(); -} -"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering transform-origin underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height" - .split(" ") - .forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); - }); -"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type" - .split(" ") - .forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); - }); -["xml:base", "xml:lang", "xml:space"].forEach(function (attributeName) { - attributeName.replace(CAMELIZE, capitalize); -}); -["tabIndex", "crossOrigin"].forEach(function (attributeName) { - new PropertyInfoRecord(1, attributeName.toLowerCase(), null, !1, !1); -}); -["src", "href", "action"].forEach(function (attributeName) { - new PropertyInfoRecord(1, attributeName.toLowerCase(), null, !0, !0); -}); -var currentActiveSnapshot = null; + MAYBE_ITERATOR_SYMBOL = Symbol.iterator, + currentActiveSnapshot = null; function popToNearestCommonAncestor(prev, next) { if (prev !== next) { prev.context._currentValue = prev.parentValue; @@ -192,6 +141,7 @@ function pushProvider(context, nextValue) { value: nextValue }); } +require("ReactFeatureFlags"); var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" );