Change:
Calling results in: (this is on a page internally at Facebook so I assume it's a fairly recent React version)
Are you still experiencing this issue internally? If so, can you create an internal task with details and repro steps? Assign to the oncall, cc the React team. Our internal configuration is a bit different, and we don't want to discuss internal code/details/configurations on github. I'm going to close this out, and we can help you debug using internal tools if you're still running into problems.
Small note for anyone experiencing a similar error message who arrived here by Googling: I got bit by this because I updated and without updating at the same time.
I'm getting this issue after upgrading to react 15.0.1. All my React packages (including perf) is 15.0.1. printExclusive() etc. works, but printWasted gives the exception shown above.
Are you running before using it?
Yes. , and the rest of the Perf API works, for example , but not . I changed over to my 0.14.7 branch, and there everything works like it should, and I double checked that both ReactPerf and React was on 15.0.1. ! I can dig around a bit more if this isn't anything known.
Let’s reopen until we hear more.
I had it working for a few minutes and then it started failing without me doing anything strange.
Thanks for the info, do you also have the same stack trace and error message as the first post?
Yes. I was exposing the object as . I tried again exposing it as and it's working again. Puzzling. I'm using the full 15.0.1 ecosystem, on Babel 6, Webpack and Webpack dev server, testing on Chrome.
Any chance you have a public project where you can more or less consistently reproduce this?
Technically this means there was for which there was no . This code is super fragile so it’s hard to pin it down without having a specific component hierarchy that happens to cause this.
If someone wants to spend some effort tracking it down, I would recommend: just before in . just before in . Then please share the relevant logs that correspond to the ID you see in the message.
Thanks Dan, I'll try setting up that to see if I can help. Unfortunately I cannot share my project right now because of client terms.
Yeah, I thought this might be the case. Thanks for taking the time to investigate.
OK I the lines and I managed to also reproduce the error. . FYI, my app is a SPA, I captured this on a route where I have a long list of items that can be filtered by certain criteria and doing before filtering and after some of those items were removed because of the filtering.
Thank you, this is very helpful! I’ll dig into it and see if I can repro this given the new info.

Discussion:
// the amount of time it took to render the entire subtree. var cleanComponents = {}; var writes = measurement.writes; <ins> var hierarchy = measurement.hierarchy; </ins> var dirtyComposites = {}; Object.keys(writes).forEach(function(id) { writes[id].forEach(function(write) { // Root mounting (innerHTML set) is recorded with an ID of '' <del> if (id !== '') { measurement.hierarchy[id].forEach((c) => dirtyComposites[c] = true); </del> <ins> if (id !== '' && hierarchy.hasOwnProperty(id)) { hierarchy[id].forEach((c) => dirtyComposites[c] = true); </ins> } }); });

expect(summary).toEqual([]); }); <ins> it('should not fail on input change events', function() { var container = document.createElement('div'); var onChange = () => {}; var input = ReactDOM.render( <input checked={true} onChange={onChange} />, container ); expectNoWaste(() => { ReactTestUtils.Simulate.change(input); }); }); </ins> it('should print a table after calling printOperations', function() { var container = document.createElement('div'); var measurements = measure(() => {