@@ -179,6 +179,10 @@ export default {
179179 // ^^^ true for this reference
180180 // const [state, dispatch] = useReducer() / React.useReducer()
181181 // ^^^ true for this reference
182+ // const [state, dispatch] = useReducer() / React.useActionState()
183+ // ^^^ true for this reference
184+ // const [state, dispatch] = useReducer() / ReactDOM.useFormState()
185+ // ^^^ true for this reference
182186 // const ref = useRef()
183187 // ^^^ true for this reference
184188 // const onStuff = useEffectEvent(() => {})
@@ -232,10 +236,11 @@ export default {
232236 return false ;
233237 }
234238 let callee = init . callee ;
235- // Step into `= React.something` initializer.
239+ // Step into `= React(DOM) .something` initializer.
236240 if (
237241 callee . type === 'MemberExpression' &&
238- callee . object . name === 'React' &&
242+ ( callee . object . name === 'React' ||
243+ callee . object . name === 'ReactDOM' ) &&
239244 callee . property != null &&
240245 ! callee . computed
241246 ) {
@@ -260,7 +265,12 @@ export default {
260265 }
261266 // useEffectEvent() return value is always unstable.
262267 return true ;
263- } else if ( name === 'useState' || name === 'useReducer' ) {
268+ } else if (
269+ name === 'useState' ||
270+ name === 'useReducer' ||
271+ name === 'useFormState' ||
272+ name === 'useActionState'
273+ ) {
264274 // Only consider second value in initializing tuple stable.
265275 if (
266276 id . type === 'ArrayPattern' &&
0 commit comments