@samitouri / QOS-React-1 / commits / 09d8283599

[ez] Rewrite optional chaining and nullish coalescing syntax (#30982)

Rewrite `containerInfo?.ownerDocument?.defaultView ?? window` to instead use a ternary. This changes the compilation output (see [bundle changes from #30951](https://github.com/facebook/react/commit/d65fb06955e9f32e6a40d1c7177d77893dff95b9)). ```js // compilation of containerInfo?.ownerDocument?.defaultView ?? window var $jscomp$optchain$tmpm1756096108$1, $jscomp$nullish$tmp0; containerInfo = null != ($jscomp$nullish$tmp0 = null == containerInfo ? void 0 : null == ($jscomp$optchain$tmpm1756096108$1 = containerInfo.ownerDocument) ? void 0 : $jscomp$optchain$tmpm1756096108$1.defaultView) ? $jscomp$nullish$tmp0 : window; // compilation of ternary expression containerInfo = null != containerInfo && null != containerInfo.ownerDocument && null != containerInfo.ownerDocument.defaultView ? containerInfo.ownerDocument.defaultView : window; ``` This also reduces the number of no-op bundle syncs for Meta. Note that Closure compiler's `jscomp$optchain$tmp<HASH>` identifiers change when we rebuild (likely due to version number changes). See [workflow](https://github.com/facebook/react/actions/runs/10891164281/job/30221518374) for a PR that was synced despite making no changes to the runtime.

mofeiZ committed Sep 18, 2024 at 14:39 UTC 09d82835993b16cd5dc8350c03627f9573354a25
1 file changed +6 -1
packages/react-dom-bindings/src/client/ReactInputSelection.js
+6 -1
@@ -57,7 +57,12 @@ function isSameOriginFrame(iframe) {
57 }
58
59 function getActiveElementDeep(containerInfo) {
60 - let win = containerInfo?.ownerDocument?.defaultView ?? window;
60 + let win =
61 + containerInfo != null &&
62 + containerInfo.ownerDocument != null &&
63 + containerInfo.ownerDocument.defaultView != null
64 + ? containerInfo.ownerDocument.defaultView
65 + : window;
66 let element = getActiveElement(win.document);
67 while (element instanceof win.HTMLIFrameElement) {
68 if (isSameOriginFrame(element)) {