@samitouri / QOS-React / commits / 696950aa69

Enable moveBefore in experimental releases (#32549)

Enabling feature detection of early DOM features in a framework is reckless. I'm not judging other frameworks (but also a little bit). Because if you do something like `if (moveBefore) moveBefore(a, b) else insertBefore(a, b)` like we do and then the implementation has to change there are still too many websites out there that it becomes impossible to change it. It would break the web. It would instead have to change to a different name. That's what happened with `contains` -> `includes`. Counter to popular belief it didn't have anything to do with patching prototypes. Therefore, ideally frameworks shouldn't start rely on it until there's two implementations so that there's time for feedback. That's why we didn't immediately enable this even in experimental. However, at this point there's probably enough feature detection and it has shipped long enough in Chrome that it's unlikely to be able to change at this point. We can enable it now. For now just in `@experimental` to see if we can flush out issues with it before bringing it to stable.

Sebastian Markbåge committed Mar 10, 2025 at 15:27 UTC 696950aa69e3f2ef0d720c82705e02b532904d70
1 file changed +1 -1
packages/shared/ReactFeatureFlags.js
+1 -1
@@ -193,7 +193,7 @@ export const disableLegacyContext = true;
193 export const disableLegacyContextForFunctionComponents = true;
194
195 // Enable the moveBefore() alternative to insertBefore(). This preserves states of moves.
196 -export const enableMoveBefore = false;
196 +export const enableMoveBefore = __EXPERIMENTAL__;
197
198 // Disabled caching behavior of `react/cache` in client runtimes.
199 export const disableClientCache = true;