From d79c6ab995cc28868fd44ae46a792d624cb73edc Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Mon, 6 Mar 2017 16:21:43 -0800 Subject: [PATCH] Fiber DOM async feature flag (#9127) D4662171 --- src/renderers/dom/fiber/ReactDOMFiber.js | 2 +- src/renderers/dom/shared/ReactDOMFeatureFlags.js | 1 + src/renderers/shared/shared/event/EventPluginHub.js | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/renderers/dom/fiber/ReactDOMFiber.js b/src/renderers/dom/fiber/ReactDOMFiber.js index cd0988f512..f1f61f1eb4 100644 --- a/src/renderers/dom/fiber/ReactDOMFiber.js +++ b/src/renderers/dom/fiber/ReactDOMFiber.js @@ -330,7 +330,7 @@ var DOMRenderer = ReactFiberReconciler({ scheduleDeferredCallback: ReactDOMFrameScheduling.rIC, - useSyncScheduling: true, + useSyncScheduling: !ReactDOMFeatureFlags.fiberAsyncScheduling, }); diff --git a/src/renderers/dom/shared/ReactDOMFeatureFlags.js b/src/renderers/dom/shared/ReactDOMFeatureFlags.js index 5e9d93267c..a53cc0dff5 100644 --- a/src/renderers/dom/shared/ReactDOMFeatureFlags.js +++ b/src/renderers/dom/shared/ReactDOMFeatureFlags.js @@ -12,6 +12,7 @@ 'use strict'; var ReactDOMFeatureFlags = { + fiberAsyncScheduling: false, useCreateElement: true, useFiber: false, }; diff --git a/src/renderers/shared/shared/event/EventPluginHub.js b/src/renderers/shared/shared/event/EventPluginHub.js index 6c4235ea42..179e89d651 100644 --- a/src/renderers/shared/shared/event/EventPluginHub.js +++ b/src/renderers/shared/shared/event/EventPluginHub.js @@ -126,9 +126,12 @@ var EventPluginHub = { // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not // live here; needs to be moved to a better place soon if (typeof inst.tag === 'number') { - const props = EventPluginUtils.getFiberCurrentPropsFromNode( - inst.stateNode - ); + const stateNode = inst.stateNode; + if (!stateNode) { + // Work in progress (ex: onload events in incremental mode). + return null; + } + const props = EventPluginUtils.getFiberCurrentPropsFromNode(stateNode); if (!props) { // Work in progress. return null;