From 7ae8909504667629a5f5ae1459664d57893a03ed Mon Sep 17 00:00:00 2001 From: Andrew Rasmussen Date: Wed, 10 Sep 2014 13:33:23 -0700 Subject: [PATCH] Move IE8 onscroll check Rather than checking if document.onscroll exists in EventPluginHub (which is agnostic of the DOM) do it in ReactDOMComponent --- src/browser/ui/ReactDOMComponent.js | 11 +++++++++++ src/event/EventPluginHub.js | 11 ----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/browser/ui/ReactDOMComponent.js b/src/browser/ui/ReactDOMComponent.js index 70c0ceb9e0..276be2e93b 100644 --- a/src/browser/ui/ReactDOMComponent.js +++ b/src/browser/ui/ReactDOMComponent.js @@ -31,9 +31,11 @@ var ReactPerf = require('ReactPerf'); var escapeTextForBrowser = require('escapeTextForBrowser'); var invariant = require('invariant'); +var isEventSupported = require('isEventSupported'); var keyOf = require('keyOf'); var merge = require('merge'); var mixInto = require('mixInto'); +var monitorCodeUse = require('monitorCodeUse'); var deleteListener = ReactBrowserEventEmitter.deleteListener; var listenTo = ReactBrowserEventEmitter.listenTo; @@ -66,6 +68,15 @@ function assertValidProps(props) { } function putListener(id, registrationName, listener, transaction) { + if (__DEV__) { + // IE8 has no API for event capturing and the `onScroll` event doesn't + // bubble. + if (registrationName === 'onScroll' && + !isEventSupported('scroll', true)) { + monitorCodeUse('react_no_scroll_event'); + console.warn('This browser doesn\'t support the `onScroll` event'); + } + } var container = ReactMount.findReactContainerForID(id); if (container) { var doc = container.nodeType === ELEMENT_NODE_TYPE ? diff --git a/src/event/EventPluginHub.js b/src/event/EventPluginHub.js index 6ba02942f4..b86ad6bb3f 100644 --- a/src/event/EventPluginHub.js +++ b/src/event/EventPluginHub.js @@ -24,8 +24,6 @@ var EventPluginUtils = require('EventPluginUtils'); var accumulateInto = require('accumulateInto'); var forEachAccumulated = require('forEachAccumulated'); var invariant = require('invariant'); -var isEventSupported = require('isEventSupported'); -var monitorCodeUse = require('monitorCodeUse'); /** * Internal store for event listeners @@ -159,15 +157,6 @@ var EventPluginHub = { registrationName, typeof listener ); - if (__DEV__) { - // IE8 has no API for event capturing and the `onScroll` event doesn't - // bubble. - if (registrationName === 'onScroll' && - !isEventSupported('scroll', true)) { - monitorCodeUse('react_no_scroll_event'); - console.warn('This browser doesn\'t support the `onScroll` event'); - } - } var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); bankForRegistrationName[id] = listener;