npm / react-dom / 19.3.0-canary-ba39b32a-20261019

react-dom 19.3.0-canary-ba39b32a-20261019

Source
https://github.com/react/react
Commit scanned
ba39b32a467e (recorded by npm)
Directory
packages/react-dom (only this part of the repository was scanned)
Compared with
b740af2510de (0 signals introduced since)
Files
227 scanned, 0 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 8 info
Scan time
6.6 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 2 of 2 warn and critical signals; 2 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-20 10:45

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info critical → info by review dynamic-execution packages/react-dom/src/__tests__/ReactDOMForm-test.js:963:20

    `Function(...)` called with a non-literal body (ast pass, confidence 0.75)

              // eslint-disable-next-line no-new-func
              result = Function(action.slice(11))();
            }
          } catch (x) {
    likely benign LLM, confidence 0.85 Test code that evaluates the body of a javascript:-prefixed form action string via Function(...) to exercise React form action handling.
    Reasoning

    The Function(...) call sits in a test file, has an eslint-disable no-new-func comment, and evaluates the remainder of an action string after a fixed 'javascript:' style prefix (slice(11)). That reads as a test harness simulating javascript: URL form actions so React's handling can be checked. The code is deliberate and scoped to a test, not a dropper, though the snippet alone does not show where action comes from.

  2. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

            'keypress',
            {which: keyCode('X'), char: '\uD83D\uDE0A'},
          ],
        },
  3. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

          eventSimulator: simulateEvent,
          eventSimulatorArgs: ['textInput', {data: '\uD83D\uDE0A'}],
        },
        {
  4. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  5. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  6. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  7. surrogate pair \uD83D\uDE0A (non-scalar Unicode codepoints in string literal) (token pass, confidence 0.70)

                expect(beforeInputEvent.type).toBe('beforeinput');
                expect(beforeInputEvent.data).toBe('\uD83D\uDE0A');
              },
            },
  8. info warn → info by review dynamic-import packages/react-dom/src/test-utils/FizzTestUtils.js:99:7

    `require` called with a non-literal specifier (ast pass, confidence 0.60)

          // $FlowFixMe[unsupported-syntax]
          require(scriptSrc);
        } catch (x) {
          const event = new window.ErrorEvent('error', {error: x});
    likely benign LLM, confidence 0.85 Test utility that dynamically requires a script by variable path inside a try/catch and reports failures as window error events.
    Reasoning

    The require(scriptSrc) call is inside a try/catch in a React test utility that loads a script from a source path, most likely to run server-rendered or inline script content under test. The specifier is controlled by the test harness rather than external input, and the catch path dispatches an ErrorEvent, which is consistent with testing error handling. The FlowFixMe comment shows it is an intentional, typed-around pattern.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/react/react react && cd react
git checkout ba39b32a467ea462ffb06db242da2bfc09e23af8
disclude scan --severity info --diff b740af2510de1e19fcb399abb862af26ff95ac80 packages/react-dom