helloadhavan/github_issues huggingface dataset:
Repository: facebook/react
Pull request: Convert ReactErrorLoggingRecovery to createRoot


Changed files:
filename: packages/react-dom/src/__tests__/ReactErrorLoggingRecovery-test.js
patch: @@ -17,7 +17,8 @@ if (global.window) {
 
 // The issue only reproduced when React was loaded before JSDOM.
 const React = require('react');
-const ReactDOM = require('react-dom');
+const ReactDOMClient = require('react-dom/client');
+const act = require('internal-test-utils').act;
 
 // Initialize JSDOM separately.
 // We don't use our normal JSDOM setup because we want to load React first.
@@ -43,13 +44,6 @@ describe('ReactErrorLoggingRecovery', () => {
 
   beforeEach(() => {
     console.error = error => {
-      if (
-        typeof error === 'string' &&
-        error.includes('ReactDOM.render is no longer supported in React 18')
-      ) {
-        // Ignore legacy root deprecation warning
-        return;
-      }
       throw new Error('Buggy console.error');
     };
   });
@@ -58,23 +52,23 @@ describe('ReactErrorLoggingRecovery', () => {
     console.error = originalConsoleError;
   });
 
-  it('should recover from errors in console.error', function () {
+  it('should recover from errors in console.error', async function () {
     const div = document.createElement('div');
-    let didCatch = false;
-    try {
-      ReactDOM.render(<Bad />, div);
-      ReactDOM.render(<Bad />, div);
-    } catch (e) {
-      expect(e.message).toBe('no');
-      didCatch = true;
-    }
-    expect(didCatch).toBe(true);
-    ReactDOM.render(<span>Hello</span>, div);
-    expect(div.firstChild.textContent).toBe('Hello');
+    const root = ReactDOMClient.createRoot(div);
+    await expect(async () => {
+      await act(() => {
+        root.render(<Bad />);
+      });
+      await act(() => {
+        root.render(<Bad />);
+      });
+    }).rejects.toThrow('no');
 
-    // Verify the console.error bug is surfaced
-    expect(() => {
-      jest.runAllTimers();
-    }).toThrow('Buggy console.error');
+    await expect(async () => {
+      await act(() => {
+        root.render(<span>Hello</span>);
+      });
+    }).rejects.toThrow('Buggy console.error');
+    expect(div.firstChild.textContent).toBe('Hello');
   });
 });
Repository: electron/electron
Pull request: feat: allow setting `roundedCorners` on Windows

Backport of #45594

See that PR for details.


Notes: Added support for `roundedCorners` BrowserWindow constructor option on Windows.


Changed files:
filename: docs/api/structures/base-window-options.md
patch: @@ -97,9 +97,10 @@
   * `height` Integer (optional) - The height of the title bar and Window Controls Overlay in pixels. Default is system height.
 * `trafficLightPosition` [Point](point.md) (optional) _macOS_ -
   Set a custom position for the traffic light buttons in frameless windows.
-* `roundedCorners` boolean (optional) _macOS_ - Whether frameless window
-  should have rounded corners on macOS. Default is `true`. Setting this property
-  to `false` will prevent the window from being fullscreenable.
+* `roundedCorners` boolean (optional) _macOS_ _Windows_ - Whether frameless window
+  should have rounded corners. Default is `true`. Setting this property
+  to `false` will prevent the window from being fullscreenable on macOS.
+  On Windows versions older than Windows 11 Build 22000 this property has no effect, and frameless windows will not have rounded corners.
 * `thickFrame` boolean (optional) - Use `WS_THICKFRAME` style for frameless windows on
   Windows, which adds standard window frame. Setting it to `false` will remove
   window shadow and window animations. Default is `true`.

filename: shell/browser/native_window_views.cc
patch: @@ -377,6 +377,11 @@ NativeWindowViews::NativeWindowViews(const gin_helper::Dictionary& options,
     if (!thick_frame_)
       frame_style &= ~(WS_THICKFRAME | WS_CAPTION);
     ::SetWindowLong(GetAcceleratedWidget(), GWL_STYLE, frame_style);
+
+    bool rounded_corner = true;
+    options.Get(options::kRoundedCorners, &rounded_corner);
+    if (!rounded_corner)
+      SetRoundedCorners(false);
   }
 
   LONG ex_style = ::GetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE);
Repository: vercel/next.js
Pull request: Fail task if one of the parallel ones fails

I expect `await task.parallel` to work like `await Promise.all` but `task.parallel` actually resolved even if one of its task fails. 

This leads to bad results like https://github.com/vercel/next.js/actions/runs/16171524278/job/45646032904#step:7:717

Changed files:
filename: package.json
patch: @@ -306,7 +306,8 @@
       "webpack-sources@3.2.3": "patches/webpack-sources@3.2.3.patch",
       "stacktrace-parser@0.1.10": "patches/stacktrace-parser@0.1.10.patch",
       "@ampproject/toolbox-optimizer@2.8.3": "patches/@ampproject__toolbox-optimizer@2.8.3.patch",
-      "@types/node@20.17.6": "patches/@types__node@20.17.6.patch"
+      "@types/node@20.17.6": "patches/@types__node@20.17.6.patch",
+      "taskr@1.1.0": "patches/taskr@1.1.0.patch"
     }
   }
 }

filename: patches/taskr@1.1.0.patch
patch: @@ -0,0 +1,17 @@
+diff --git a/lib/taskr.js b/lib/taskr.js
+index c961a997bfb5791383173e3444d18aed4194b21b..3810e74562d17abda9603080fcdbf2d230dc7fe0 100644
+--- a/lib/taskr.js
++++ b/lib/taskr.js
+@@ -115,11 +115,7 @@ class Taskr extends Emitter {
+ 	}
+ 
+ 	*parallel(tasks, opts) {
+-		try {
+-			yield Promise.all(tasks.map(t => this.start(t, opts)));
+-		} catch (err) {
+-			//
+-		}
++		yield Promise.all(tasks.map(t => this.start(t, opts)));
+ 	}
+ 
+ 	*serial(tasks, opts) {

filename: pnpm-lock.yaml
patch: @@ -32,6 +32,9 @@ patchedDependencies:
   stacktrace-parser@0.1.10:
     hash: misknddihoqkqinipod62zbcj4
     path: patches/stacktrace-parser@0.1.10.patch
+  taskr@1.1.0:
+    hash: utitb3olraq7egc3hk7waltisu
+    path: patches/taskr@1.1.0.patch
   webpack-sources@3.2.3:
     hash: jbynf5dc46ambamq3wuyho6hkq
     path: patches/webpack-sources@3.2.3.patch
@@ -576,7 +579,7 @@ importers:
         version: 3.2.7(postcss@8.4.31)
       taskr:
         specifier: 1.1.0
-        version: 1.1.0
+        version: 1.1.0(patch_hash=utitb3olraq7egc3hk7waltisu)
       tree-kill:
         specifier: 1.2.2
         version: 1.2.2
@@ -1539,7 +1542,7 @@ importers:
         version: 6.1.15
       taskr:
         specifier: 1.1.0
-        version: 1.1.0
+        version: 1.1.0(patch_hash=utitb3olraq7egc3hk7waltisu)
       terser:
         specifier: 5.27.0
         version: 5.27.0
@@ -34150,7 +34153,7 @@ snapshots:
       mkdirp: 3.0.1
       yallist: 5.0.0
 
-  taskr@1.1.0:
+  taskr@1.1.0(patch_hash=utitb3olraq7egc3hk7waltisu):
     dependencies:
       bluebird: 3.7.2
       clor: 5.2.0
Repository: electron/electron
Pull request: feat: allow setting `roundedCorners` on Windows

#### Description of Change

Refs https://github.com/electron/electron/pull/45456.

Allows removing rounded corners for frameless windows on Windows. Improved `BrowserWindow` ctor option platform parity just a bit.

<details><summary> roundedCorners enabled </summary>
<p>

<img width="807" alt="Screenshot 2025-02-12 at 9 41 39 AM" src="https://github.com/user-attachments/assets/11573eac-c97b-44e5-9603-b9a2c77047c2" />

</p>
</details> 

<details><summary>roundedCorners disabled</summary>
<p>

<img width="812" alt="Screenshot 2025-02-12 at 9 41 24 AM" src="https://github.com/user-attachments/assets/16b7db3e-5ba8-4db8-b0fb-ea6d85ca335f" />

</p>
</details> 

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] relevant documentation, tutorials, templates and examples are changed or added
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: Added support for `roundedCorners` BrowserWindow constructor option on Windows.


Changed files:
filename: docs/api/structures/base-window-options.md
patch: @@ -97,9 +97,10 @@
   * `height` Integer (optional) - The height of the title bar and Window Controls Overlay in pixels. Default is system height.
 * `trafficLightPosition` [Point](point.md) (optional) _macOS_ -
   Set a custom position for the traffic light buttons in frameless windows.
-* `roundedCorners` boolean (optional) _macOS_ - Whether frameless window
-  should have rounded corners on macOS. Default is `true`. Setting this property
-  to `false` will prevent the window from being fullscreenable.
+* `roundedCorners` boolean (optional) _macOS_ _Windows_ - Whether frameless window
+  should have rounded corners. Default is `true`. Setting this property
+  to `false` will prevent the window from being fullscreenable on macOS.
+  On Windows versions older than Windows 11 Build 22000 this property has no effect, and frameless windows will not have rounded corners.
 * `thickFrame` boolean (optional) - Use `WS_THICKFRAME` style for frameless windows on
   Windows, which adds standard window frame. Setting it to `false` will remove
   window shadow and window animations. Default is `true`.

filename: shell/browser/native_window_views.cc
patch: @@ -378,6 +378,11 @@ NativeWindowViews::NativeWindowViews(const gin_helper::Dictionary& options,
     if (!thick_frame_)
       frame_style &= ~(WS_THICKFRAME | WS_CAPTION);
     ::SetWindowLong(GetAcceleratedWidget(), GWL_STYLE, frame_style);
+
+    bool rounded_corner = true;
+    options.Get(options::kRoundedCorners, &rounded_corner);
+    if (!rounded_corner)
+      SetRoundedCorners(false);
   }
 
   LONG ex_style = ::GetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE);
Repository: denoland/deno
Pull request: fix(ext/node): use primordials in ext/node/polyfills/_fs/_fs_mkdtemp.ts

Towards #24236

Changed files:
filename: ext/node/polyfills/_fs/_fs_mkdtemp.ts
patch: @@ -1,9 +1,6 @@
 // Copyright 2018-2025 the Deno authors. MIT license.
 // Copyright Node.js contributors. All rights reserved. MIT License.
 
-// TODO(petamoriken): enable prefer-primordials for node polyfills
-// deno-lint-ignore-file prefer-primordials
-
 import { TextDecoder, TextEncoder } from "ext:deno_web/08_text_encoding.js";
 import { existsSync } from "ext:deno_node/_fs/_fs_exists.ts";
 import { mkdir, mkdirSync } from "ext:deno_node/_fs/_fs_mkdir.ts";
@@ -12,6 +9,18 @@ import {
   ERR_INVALID_OPT_VALUE_ENCODING,
 } from "ext:deno_node/internal/errors.ts";
 import { promisify } from "ext:deno_node/internal/util.mjs";
+import { primordials } from "ext:core/mod.js";
+
+const {
+  ObjectPrototypeIsPrototypeOf,
+  Array,
+  SafeArrayIterator,
+  MathRandom,
+  MathFloor,
+  ArrayPrototypeJoin,
+  ArrayPrototypeMap,
+  ObjectPrototype,
+} = primordials;
 
 export type mkdtempCallback = (
   err: Error | null,
@@ -70,10 +79,13 @@ function parseEncoding(
   optionsOrCallback?: { encoding: string } | string | mkdtempCallback,
 ): string | undefined {
   let encoding: string | undefined;
-  if (typeof optionsOrCallback == "function") encoding = undefined;
-  else if (optionsOrCallback instanceof Object) {
-    encoding = optionsOrCallback?.encoding;
-  } else encoding = optionsOrCallback;
+  if (typeof optionsOrCallback === "function") {
+    encoding = undefined;
+  } else if (isOptionsObject(optionsOrCallback)) {
+    encoding = optionsOrCallback.encoding;
+  } else {
+    encoding = optionsOrCallback;
+  }
 
   if (encoding) {
     try {
@@ -97,9 +109,13 @@ function decode(str: string, encoding?: string): string {
 
 const CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 function randomName(): string {
-  return [...Array(6)].map(() =>
-    CHARS[Math.floor(Math.random() * CHARS.length)]
-  ).join("");
+  return ArrayPrototypeJoin(
+    ArrayPrototypeMap(
+      [...new SafeArrayIterator(Array(6))],
+      () => CHARS[MathFloor(MathRandom() * CHARS.length)],
+    ),
+    "",
+  );
 }
 
 function tempDirPath(prefix: string): string {
@@ -110,3 +126,11 @@ function tempDirPath(prefix: string): string {
 
   return path;
 }
+
+function isOptionsObject(value: unknown): value is { encoding: string } {
+  return (
+    value !== null &&
+    typeof value === "object" &&
+    ObjectPrototypeIsPrototypeOf(ObjectPrototype, value)
+  );
+}
Repository: electron/electron
Pull request: feat: allow setting `roundedCorners` on Windows

Backport of #45594

See that PR for details.


Notes: Added support for `roundedCorners` BrowserWindow constructor option on Windows.


Changed files:
filename: docs/api/structures/base-window-options.md
patch: @@ -97,9 +97,10 @@
   * `height` Integer (optional) - The height of the title bar and Window Controls Overlay in pixels. Default is system height.
 * `trafficLightPosition` [Point](point.md) (optional) _macOS_ -
   Set a custom position for the traffic light buttons in frameless windows.
-* `roundedCorners` boolean (optional) _macOS_ - Whether frameless window
-  should have rounded corners on macOS. Default is `true`. Setting this property
-  to `false` will prevent the window from being fullscreenable.
+* `roundedCorners` boolean (optional) _macOS_ _Windows_ - Whether frameless window
+  should have rounded corners. Default is `true`. Setting this property
+  to `false` will prevent the window from being fullscreenable on macOS.
+  On Windows versions older than Windows 11 Build 22000 this property has no effect, and frameless windows will not have rounded corners.
 * `thickFrame` boolean (optional) - Use `WS_THICKFRAME` style for frameless windows on
   Windows, which adds standard window frame. Setting it to `false` will remove
   window shadow and window animations. Default is `true`.

filename: shell/browser/native_window_views.cc
patch: @@ -378,6 +378,11 @@ NativeWindowViews::NativeWindowViews(const gin_helper::Dictionary& options,
     if (!thick_frame_)
       frame_style &= ~(WS_THICKFRAME | WS_CAPTION);
     ::SetWindowLong(GetAcceleratedWidget(), GWL_STYLE, frame_style);
+
+    bool rounded_corner = true;
+    options.Get(options::kRoundedCorners, &rounded_corner);
+    if (!rounded_corner)
+      SetRoundedCorners(false);
   }
 
   LONG ex_style = ::GetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE);
Repository: denoland/deno
Pull request: fix(ext/os): Fix duplicate 'openbsd' cfg attribute

Use FreeBSD instead as it needs the same fix.


Changed files:
filename: ext/os/signal.rs
patch: @@ -8,7 +8,7 @@ pub struct InvalidSignalStrError(pub String);
 #[cfg(any(
   target_os = "android",
   target_os = "linux",
-  target_os = "openbsd",
+  target_os = "freebsd",
   target_os = "openbsd",
   target_os = "macos",
   target_os = "solaris",
@@ -26,7 +26,7 @@ pub struct InvalidSignalIntError(pub libc::c_int);
 #[cfg(any(
   target_os = "android",
   target_os = "linux",
-  target_os = "openbsd",
+  target_os = "freebsd",
   target_os = "openbsd",
   target_os = "macos",
   target_os = "solaris",
Repository: electron/electron
Pull request: fix: crash parsing CLSID in `shell.readShortcutLink()`

Backport of #45195

See that PR for details.


Notes: Fixed a crash when calling `shell.readShortcutLink` caused by `PKEY_AppUserModel_ToastActivatorCLSID` sometimes being represented by a string uuid.

Changed files:
filename: patches/chromium/.patches
patch: @@ -141,3 +141,4 @@ feat_add_signals_when_embedder_cleanup_callbacks_run_for.patch
 feat_separate_content_settings_callback_for_sync_and_async_clipboard.patch
 cherry-pick-dd8e2822e507.patch
 fix_osr_stutter_in_both_cpu_and_gpu_capture_when_page_has_animation.patch
+ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch

filename: patches/chromium/ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch
patch: @@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?David=20L=C3=B6nnhager?= <dv.lnh.d@gmail.com>
+Date: Fri, 17 Jan 2025 14:30:48 +0100
+Subject: Ignore parse errors for PKEY_AppUserModel_ToastActivatorCLSID
+
+Some shortcuts store this as a string UUID as opposed to VT_CLSID,
+hitting NOTREACHED() and sometimes breaking parsing in Electron.
+Ignore this error instead.
+
+Bug: N/A
+Change-Id: I9fc472212b2d3afac2c8e18a2159bc2d50bbdf98
+
+diff --git a/AUTHORS b/AUTHORS
+index 55dc38c1448c1960b802c136018c8be22ed61c18..5cd195df3650331fbfd62b2f964368b5f3217f3c 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -337,6 +337,7 @@ David Futcher <david.mike.futcher@gmail.com>
+ David Jin <davidjin@amazon.com>
+ David Lechner <david@pybricks.com>
+ David Leen <davileen@amazon.com>
++David Lönnhager <dv.lnh.d@gmail.com>
+ David Manouchehri <david@davidmanouchehri.com>
+ David McAllister <mcdavid@amazon.com>
+ David Michael Barr <david.barr@samsung.com>
+diff --git a/base/win/shortcut.cc b/base/win/shortcut.cc
+index e790adb2f1d6529ac0dd77145f5da2796264c7ae..8a7edcfaf9af963468b4b42fe55a771fb31f13a2 100644
+--- a/base/win/shortcut.cc
++++ b/base/win/shortcut.cc
+@@ -342,8 +342,9 @@ bool ResolveShortcutProperties(const FilePath& shortcut_path,
+               *(pv_toast_activator_clsid.get().puuid));
+           break;
+         default:
+-          NOTREACHED() << "Unexpected variant type: "
+-                       << pv_toast_activator_clsid.get().vt;
++          // Shortcuts may use strings to represent the CLSID. This case is
++          // ignored.
++          break;
+       }
+     }
+   }

filename: shell/common/api/electron_api_shell.cc
patch: @@ -163,7 +163,8 @@ v8::Local<v8::Value> ReadShortcutLink(gin_helper::ErrorThrower thrower,
   options.Set("icon", properties.icon);
   options.Set("iconIndex", properties.icon_index);
   options.Set("appUserModelId", properties.app_id);
-  options.Set("toastActivatorClsid", properties.toast_activator_clsid);
+  if (properties.options & ShortcutProperties::PROPERTIES_TOAST_ACTIVATOR_CLSID)
+    options.Set("toastActivatorClsid", properties.toast_activator_clsid);
   return gin::ConvertToV8(thrower.isolate(), options);
 }
 #endif
Repository: nodejs/node
Pull request: doc: sort --report-exclude alphabetically

Refs: https://github.com/nodejs/node/pull/55697#discussion_r1834454585

Changed files:
filename: doc/api/cli.md
patch: @@ -1992,6 +1992,26 @@ changes:
 
 Location at which the report will be generated.
 
+### `--report-exclude-env`
+
+<!-- YAML
+added: REPLACEME
+-->
+
+When `--report-exclude-env` is passed the diagnostic report generated will not
+contain the `environmentVariables` data.
+
+### `--report-exclude-network`
+
+<!-- YAML
+added:
+  - v22.0.0
+  - v20.13.0
+-->
+
+Exclude `header.networkInterfaces` from the diagnostic report. By default
+this is not set and the network interfaces are included.
+
 ### `--report-filename=filename`
 
 <!-- YAML
@@ -2056,15 +2076,6 @@ Enables report to be generated upon receiving the specified (or predefined)
 signal to the running Node.js process. The signal to trigger the report is
 specified through `--report-signal`.
 
-### `--report-exclude-env`
-
-<!-- YAML
-added: REPLACEME
--->
-
-When `--report-exclude-env` is passed the diagnostic report generated will not
-contain the `environmentVariables` data.
-
 ### `--report-signal=signal`
 
 <!-- YAML
@@ -2109,17 +2120,6 @@ Enables report to be generated when the process exits due to an uncaught
 exception. Useful when inspecting the JavaScript stack in conjunction with
 native stack and other runtime environment data.
 
-### `--report-exclude-network`
-
-<!-- YAML
-added:
-  - v22.0.0
-  - v20.13.0
--->
-
-Exclude `header.networkInterfaces` from the diagnostic report. By default
-this is not set and the network interfaces are included.
-
 ### `-r`, `--require module`
 
 <!-- YAML
Repository: facebook/react
Pull request: Fix: useOptimistic should return passthrough value when there are no updates pending

This fixes a bug that happened when the canonical value passed to useOptimistic without an accompanying call to setOptimistic. In this scenario, useOptimistic should pass through the new canonical value.

I had written tests for the more complicated scenario, where a new value is passed while there are still pending optimistic updates, but not this simpler one.

Changed files:
filename: packages/react-reconciler/src/ReactFiberHooks.js
patch: @@ -1256,10 +1256,19 @@ function updateReducerImpl<S, A>(
     queue.pending = null;
   }
 
-  if (baseQueue !== null) {
+  const baseState = hook.baseState;
+  if (baseQueue === null) {
+    // If there are no pending updates, then the memoized state should be the
+    // same as the base state. Currently these only diverge in the case of
+    // useOptimistic, because useOptimistic accepts a new baseState on
+    // every render.
+    hook.memoizedState = baseState;
+    // We don't need to call markWorkInProgressReceivedUpdate because
+    // baseState is derived from other reactive values.
+  } else {
     // We have a queue to process.
     const first = baseQueue.next;
-    let newState = hook.baseState;
+    let newState = baseState;
 
     let newBaseState = null;
     let newBaseQueueFirst = null;

filename: packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js
patch: @@ -818,6 +818,52 @@ describe('ReactAsyncActions', () => {
     );
   });
 
+  // @gate enableAsyncActions
+  test(
+    'regression: when there are no pending transitions, useOptimistic should ' +
+      'always return the passthrough value',
+    async () => {
+      let setCanonicalState;
+      function App() {
+        const [canonicalState, _setCanonicalState] = useState(0);
+        const [optimisticState] = useOptimistic(canonicalState);
+        setCanonicalState = _setCanonicalState;
+
+        return (
+          <>
+            <div>
+              <Text text={'Canonical: ' + canonicalState} />
+            </div>
+            <div>
+              <Text text={'Optimistic: ' + optimisticState} />
+            </div>
+          </>
+        );
+      }
+
+      const root = ReactNoop.createRoot();
+      await act(() => root.render(<App />));
+      assertLog(['Canonical: 0', 'Optimistic: 0']);
+      expect(root).toMatchRenderedOutput(
+        <>
+          <div>Canonical: 0</div>
+          <div>Optimistic: 0</div>
+        </>,
+      );
+
+      // Update the canonical state. The optimistic state should update, too,
+      // even though there was no transition, and no call to setOptimisticState.
+      await act(() => setCanonicalState(1));
+      assertLog(['Canonical: 1', 'Optimistic: 1']);
+      expect(root).toMatchRenderedOutput(
+        <>
+          <div>Canonical: 1</div>
+          <div>Optimistic: 1</div>
+        </>,
+      );
+    },
+  );
+
   // @gate enableAsyncActions
   test('regression: useOptimistic during setState-in-render', async () => {
     // This is a regression test for a very specific case where useOptimistic is