@samitouri / QOS-React / commits / 151094ce03

Rely on lazy listeners

Sebastian Markbage committed Nov 15, 2016 at 17:50 UTC 151094ce03bddeb69963257582e57c6616187be5
1 file changed +2 -45
src/renderers/dom/fiber/ReactDOMFiberComponent.js
+2 -45
@@ -20,7 +20,6 @@ var DOMLazyTree = require('DOMLazyTree');
20 var DOMNamespaces = require('DOMNamespaces');
21 var DOMProperty = require('DOMProperty');
22 var DOMPropertyOperations = require('DOMPropertyOperations');
23 -var EventPluginHub = require('EventPluginHub');
23 var EventPluginRegistry = require('EventPluginRegistry');
24 var ReactBrowserEventEmitter = require('ReactBrowserEventEmitter');
25 var ReactDOMComponentTree = require('ReactDOMComponentTree');
@@ -42,7 +41,6 @@ var validateDOMNesting = require('validateDOMNesting');
41 var warning = require('warning');
42 var didWarnShadyDOM = false;
43
45 -var deleteListener = EventPluginHub.deleteListener;
44 var getNode = ReactDOMComponentTree.getNodeFromInstance;
45 var listenTo = ReactBrowserEventEmitter.listenTo;
46 var registrationNameModules = EventPluginRegistry.registrationNameModules;
@@ -204,30 +202,6 @@ function assertValidProps(component, props) {
202 );
203 }
204
207 -function enqueuePutListener(inst, registrationName, listener, transaction) {
208 - if (transaction instanceof ReactServerRenderingTransaction) {
209 - return;
210 - }
211 - if (__DEV__) {
212 - // IE8 has no API for event capturing and the `onScroll` event doesn't
213 - // bubble.
214 - warning(
215 - registrationName !== 'onScroll' || isEventSupported('scroll', true),
216 - 'This browser doesn\'t support the `onScroll` event'
217 - );
218 - }
219 - var containerInfo = inst._hostContainerInfo;
220 - var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;
221 - var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;
222 - listenTo(registrationName, doc);
223 - transaction.getReactMountReady().enqueue(putListener, {
224 - inst: inst,
225 - registrationName: registrationName,
226 - listener: listener,
227 - });
228 -}
229 -
230 -// TODO: This is coming from future #8192. Dedupe this and enqueuePutListener.
205 function ensureListeningTo(inst, registrationName, transaction) {
206 if (transaction instanceof ReactServerRenderingTransaction) {
207 return;
@@ -246,15 +220,6 @@ function ensureListeningTo(inst, registrationName, transaction) {
220 listenTo(registrationName, doc);
221 }
222
249 -function putListener() {
250 - var listenerToPut = this;
251 - EventPluginHub.putListener(
252 - listenerToPut.inst,
253 - listenerToPut.registrationName,
254 - listenerToPut.listener
255 - );
256 -}
257 -
223 function inputPostMount() {
224 var inst = this;
225 ReactDOMFiberInput.postMountWrapper(inst);
@@ -570,12 +535,7 @@ function updateDOMProperties(
535 }
536 workInProgress._previousStyleCopy = null;
537 } else if (registrationNameModules.hasOwnProperty(propKey)) {
573 - if (lastProps[propKey]) {
574 - // Only call deleteListener if there was a listener previously or
575 - // else willDeleteListener gets called when there wasn't actually a
576 - // listener (e.g., onClick={null})
577 - deleteListener(workInProgress, propKey);
578 - }
538 + // Do nothing for deleted listeners.
539 } else if (isCustomComponent(workInProgress._tag, lastProps)) {
540 if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
541 DOMPropertyOperations.deleteValueForAttribute(
@@ -636,9 +596,7 @@ function updateDOMProperties(
596 }
597 } else if (registrationNameModules.hasOwnProperty(propKey)) {
598 if (nextProp) {
639 - enqueuePutListener(workInProgress, propKey, nextProp, transaction);
640 - } else if (lastProp) {
641 - deleteListener(workInProgress, propKey);
599 + ensureListeningTo(workInProgress, propKey, transaction);
600 }
601 } else if (isCustomComponentTag) {
602 if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
@@ -1081,7 +1039,6 @@ var ReactDOMFiberComponent = {
1039
1040 workInProgress.unmountChildren(safely, skipLifecycle);
1041 ReactDOMComponentTree.uncacheNode(workInProgress);
1084 - EventPluginHub.deleteAllListeners(workInProgress);
1042 workInProgress._domID = 0;
1043 workInProgress._wrapperState = null;
1044