From c8a7988bf9e59df6db89192f87c22a550fc10d49 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Wed, 11 May 2016 23:27:45 +0100 Subject: [PATCH] Add a failing test case for #6742 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getOperations() blows up when replacing null with a native because the null component has debugID of 0 that isn’t registered in the component tree. --- src/isomorphic/__tests__/ReactPerf-test.js | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/isomorphic/__tests__/ReactPerf-test.js b/src/isomorphic/__tests__/ReactPerf-test.js index 98df00938b..456ce9011e 100644 --- a/src/isomorphic/__tests__/ReactPerf-test.js +++ b/src/isomorphic/__tests__/ReactPerf-test.js @@ -67,6 +67,13 @@ describe('ReactPerf', function() { ReactPerf.start(); fn(); ReactPerf.stop(); + + // Make sure none of the methods crash. + ReactPerf.getWasted(); + ReactPerf.getInclusive(); + ReactPerf.getExclusive(); + ReactPerf.getOperations(); + return ReactPerf.getLastMeasurements(); } @@ -208,6 +215,32 @@ describe('ReactPerf', function() { }); }); + it('should not count replacing null with a native as waste', function() { + var element = null; + function Foo () { + return element; + } + var container = document.createElement('div'); + ReactDOM.render(, container); + expectNoWaste(() => { + element =
; + ReactDOM.render(, container); + }); + }); + + it('should not count replacing a native with null as waste', function() { + var element =
; + function Foo () { + return element; + } + var container = document.createElement('div'); + ReactDOM.render(, container); + expectNoWaste(() => { + element = null; + ReactDOM.render(, container); + }); + }); + it('warns once when using getMeasurementsSummaryMap', function() { var measurements = measure(() => {}); spyOn(console, 'error');