From 7d19cf12bcac4561e8bfc0b8554561e5e04c501f Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Tue, 28 Mar 2023 21:44:20 -0400 Subject: [PATCH] Ensure check is a boolean (function/symbol are false) --- packages/react-dom-bindings/src/client/ReactDOMInput.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-dom-bindings/src/client/ReactDOMInput.js b/packages/react-dom-bindings/src/client/ReactDOMInput.js index 6abf032d8c45e..e53567f69ec54 100644 --- a/packages/react-dom-bindings/src/client/ReactDOMInput.js +++ b/packages/react-dom-bindings/src/client/ReactDOMInput.js @@ -103,9 +103,12 @@ export function initWrapperState(element: Element, props: Object) { const node = ((element: any): InputWithWrapperState); const defaultValue = props.defaultValue == null ? '' : props.defaultValue; + const initialChecked = props.checked != null ? props.checked : defaultChecked; node._wrapperState = { initialChecked: - props.checked != null ? props.checked : props.defaultChecked, + typeof initialChecked !== 'function' && + typeof initialChecked !== 'symbol' && + !!initialChecked, initialValue: getToStringValue( props.value != null ? props.value : defaultValue, ),