From 7938650ca97bb60516ed2e4c5603f6efaa89f8d4 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sun, 27 Sep 2015 14:26:26 -0700 Subject: [PATCH] Make new perf unit test pass --- .../dom/client/ReactBrowserEventEmitter.js | 6 ++++++ src/renderers/dom/client/ReactDOMIDOperations.js | 1 - src/renderers/dom/client/ReactMount.js | 3 +++ .../dom/client/utils/DOMChildrenOperations.js | 5 +++++ src/renderers/dom/shared/CSSPropertyOperations.js | 5 +++++ src/renderers/dom/shared/DOMPropertyOperations.js | 7 +++++++ src/test/ReactDefaultPerf.js | 14 +++++++++++--- src/test/ReactDefaultPerfAnalysis.js | 4 +++- 8 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/renderers/dom/client/ReactBrowserEventEmitter.js b/src/renderers/dom/client/ReactBrowserEventEmitter.js index 02c9af83fd..6e498ec28a 100644 --- a/src/renderers/dom/client/ReactBrowserEventEmitter.js +++ b/src/renderers/dom/client/ReactBrowserEventEmitter.js @@ -16,6 +16,7 @@ var EventConstants = require('EventConstants'); var EventPluginHub = require('EventPluginHub'); var EventPluginRegistry = require('EventPluginRegistry'); var ReactEventEmitterMixin = require('ReactEventEmitterMixin'); +var ReactPerf = require('ReactPerf'); var ViewportMetrics = require('ViewportMetrics'); var assign = require('Object.assign'); @@ -373,4 +374,9 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { }); +ReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', { + putListener: 'putListener', + deleteListener: 'deleteListener', +}); + module.exports = ReactBrowserEventEmitter; diff --git a/src/renderers/dom/client/ReactDOMIDOperations.js b/src/renderers/dom/client/ReactDOMIDOperations.js index 65b01b1e67..d8630ce0a5 100644 --- a/src/renderers/dom/client/ReactDOMIDOperations.js +++ b/src/renderers/dom/client/ReactDOMIDOperations.js @@ -92,7 +92,6 @@ var ReactDOMIDOperations = { }; ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', { - updatePropertyByID: 'updatePropertyByID', dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID', dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates', }); diff --git a/src/renderers/dom/client/ReactMount.js b/src/renderers/dom/client/ReactMount.js index 899eb879fa..f536bbb6de 100644 --- a/src/renderers/dom/client/ReactMount.js +++ b/src/renderers/dom/client/ReactMount.js @@ -440,6 +440,9 @@ TopLevelWrapper.prototype.render = function() { * Inside of `container`, the first element rendered is the "reactRoot". */ var ReactMount = { + + TopLevelWrapper: TopLevelWrapper, + /** Exposed for debugging purposes **/ _instancesByReactRootID: instancesByReactRootID, diff --git a/src/renderers/dom/client/utils/DOMChildrenOperations.js b/src/renderers/dom/client/utils/DOMChildrenOperations.js index 0d4d4003ac..3fd79c5414 100644 --- a/src/renderers/dom/client/utils/DOMChildrenOperations.js +++ b/src/renderers/dom/client/utils/DOMChildrenOperations.js @@ -14,6 +14,7 @@ var Danger = require('Danger'); var ReactMultiChildUpdateTypes = require('ReactMultiChildUpdateTypes'); +var ReactPerf = require('ReactPerf'); var setInnerHTML = require('setInnerHTML'); var setTextContent = require('setTextContent'); @@ -151,4 +152,8 @@ var DOMChildrenOperations = { }; +ReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', { + updateTextContent: 'updateTextContent', +}); + module.exports = DOMChildrenOperations; diff --git a/src/renderers/dom/shared/CSSPropertyOperations.js b/src/renderers/dom/shared/CSSPropertyOperations.js index 73509ed0ac..7be7cb9a4e 100644 --- a/src/renderers/dom/shared/CSSPropertyOperations.js +++ b/src/renderers/dom/shared/CSSPropertyOperations.js @@ -14,6 +14,7 @@ var CSSProperty = require('CSSProperty'); var ExecutionEnvironment = require('ExecutionEnvironment'); +var ReactPerf = require('ReactPerf'); var camelizeStyleName = require('camelizeStyleName'); var dangerousStyleValue = require('dangerousStyleValue'); @@ -185,4 +186,8 @@ var CSSPropertyOperations = { }; +ReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', { + setValueForStyles: 'setValueForStyles', +}); + module.exports = CSSPropertyOperations; diff --git a/src/renderers/dom/shared/DOMPropertyOperations.js b/src/renderers/dom/shared/DOMPropertyOperations.js index 2e0b00dd6c..7eb8240377 100644 --- a/src/renderers/dom/shared/DOMPropertyOperations.js +++ b/src/renderers/dom/shared/DOMPropertyOperations.js @@ -13,6 +13,7 @@ 'use strict'; var DOMProperty = require('DOMProperty'); +var ReactPerf = require('ReactPerf'); var quoteAttributeValueForBrowser = require('quoteAttributeValueForBrowser'); var warning = require('warning'); @@ -247,4 +248,10 @@ var DOMPropertyOperations = { }; +ReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', { + setValueForProperty: 'setValueForProperty', + setValueForAttribute: 'setValueForAttribute', + deleteValueForProperty: 'deleteValueForProperty', +}); + module.exports = DOMPropertyOperations; diff --git a/src/test/ReactDefaultPerf.js b/src/test/ReactDefaultPerf.js index f051a3ab2d..8930573461 100644 --- a/src/test/ReactDefaultPerf.js +++ b/src/test/ReactDefaultPerf.js @@ -165,7 +165,11 @@ var ReactDefaultPerf = { ].totalTime = performanceNow() - start; return rv; } else if (fnName === '_mountImageIntoNode' || - moduleName === 'ReactDOMIDOperations') { + moduleName === 'ReactBrowserEventEmitter' || + moduleName === 'ReactDOMIDOperations' || + moduleName === 'CSSPropertyOperations' || + moduleName === 'DOMChildrenOperations' || + moduleName === 'DOMPropertyOperations') { start = performanceNow(); rv = func.apply(this, args); totalTime = performanceNow() - start; @@ -198,8 +202,12 @@ var ReactDefaultPerf = { }); } else { // basic format + var id = args[0]; + if (typeof id === 'object') { + id = ReactMount.getID(args[0]); + } ReactDefaultPerf._recordWrite( - args[0], + id, fnName, totalTime, Array.prototype.slice.call(args, 1) @@ -211,7 +219,7 @@ var ReactDefaultPerf = { fnName === 'updateComponent' || // TODO: receiveComponent()? fnName === '_renderValidatedComponent')) { - if (typeof this._currentElement.type === 'string') { + if (this._currentElement.type === ReactMount.TopLevelWrapper) { return func.apply(this, args); } diff --git a/src/test/ReactDefaultPerfAnalysis.js b/src/test/ReactDefaultPerfAnalysis.js index 9a8ad8f812..4806940b7d 100644 --- a/src/test/ReactDefaultPerfAnalysis.js +++ b/src/test/ReactDefaultPerfAnalysis.js @@ -22,7 +22,9 @@ var DOM_OPERATION_TYPES = { REMOVE_NODE: 'remove', SET_MARKUP: 'set innerHTML', TEXT_CONTENT: 'set textContent', - 'updatePropertyByID': 'update attribute', + 'setValueForProperty': 'update attribute', + 'setValueForAttribute': 'update attribute', + 'deleteValueForProperty': 'remove attribute', 'dangerouslyReplaceNodeWithMarkupByID': 'replace', };