diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.expect.md b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.expect.md
new file mode 100644
index 0000000000..221790fc43
--- /dev/null
+++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.expect.md
@@ -0,0 +1,55 @@
+
+## Input
+
+```javascript
+import { mutate, useNoAlias } from "shared-runtime";
+
+function Component(props) {
+ // Here `x` cannot be memoized bc its mutable range spans a hook call:
+ const x = [];
+ useNoAlias();
+ mutate(x);
+
+ // However, `x` is non-reactive. It cannot semantically change, so we
+ // exclude it as a dependency of the JSX element:
+ return
{x}
;
+}
+
+export const FIXTURE_ENTRYPOINT = {
+ fn: Component,
+ params: [{ value: 42 }],
+};
+
+```
+
+## Code
+
+```javascript
+import { unstable_useMemoCache as useMemoCache } from "react";
+import { mutate, useNoAlias } from "shared-runtime";
+
+function Component(props) {
+ const $ = useMemoCache(1);
+
+ const x = [];
+ useNoAlias();
+ mutate(x);
+ let t0;
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
+ t0 = {x}
;
+ $[0] = t0;
+ } else {
+ t0 = $[0];
+ }
+ return t0;
+}
+
+export const FIXTURE_ENTRYPOINT = {
+ fn: Component,
+ params: [{ value: 42 }],
+};
+
+```
+
+### Eval output
+(kind: ok)
\ No newline at end of file
diff --git a/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.js b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.js
new file mode 100644
index 0000000000..d2d39122a8
--- /dev/null
+++ b/compiler/packages/babel-plugin-react-forget/src/__tests__/fixtures/compiler/unmemoized-nonreactive-dependency-is-pruned-as-dependency.js
@@ -0,0 +1,17 @@
+import { mutate, useNoAlias } from "shared-runtime";
+
+function Component(props) {
+ // Here `x` cannot be memoized bc its mutable range spans a hook call:
+ const x = [];
+ useNoAlias();
+ mutate(x);
+
+ // However, `x` is non-reactive. It cannot semantically change, so we
+ // exclude it as a dependency of the JSX element:
+ return {x}
;
+}
+
+export const FIXTURE_ENTRYPOINT = {
+ fn: Component,
+ params: [{ value: 42 }],
+};