From a73886456e0cd07d2c9c93459d3f7625876ff7c9 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 13 Aug 2016 19:36:21 +0100 Subject: [PATCH] Fix ReactComponentTreeHook.getRegisteredIDs() to work with inlined content (#7490) I broke this in #7463: parseInt() cuts off #text at the end. Changing to just use negative numbers instead. --- src/renderers/dom/shared/ReactDOMComponent.js | 3 ++- .../hooks/__tests__/ReactComponentTreeHook-test.js | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/renderers/dom/shared/ReactDOMComponent.js b/src/renderers/dom/shared/ReactDOMComponent.js index e97ea68c85..8db1b8f595 100644 --- a/src/renderers/dom/shared/ReactDOMComponent.js +++ b/src/renderers/dom/shared/ReactDOMComponent.js @@ -259,7 +259,8 @@ if (__DEV__) { setContentChildForInstrumentation = function(content) { var hasExistingContent = this._contentDebugID != null; var debugID = this._debugID; - var contentDebugID = debugID + '#text'; + // This ID represents the inlined child that has no backing instance: + var contentDebugID = -debugID; if (content == null) { if (hasExistingContent) { diff --git a/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js b/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js index 28f3d931a1..e2d1ba77e6 100644 --- a/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js +++ b/src/renderers/shared/hooks/__tests__/ReactComponentTreeHook-test.js @@ -1721,6 +1721,16 @@ describe('ReactComponentTreeHook', () => { expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual([]); }); + it('registers inlined text nodes', () => { + var node = document.createElement('div'); + + ReactDOM.render(
hi
, node); + expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual(['div', '#text']); + + ReactDOM.unmountComponentAtNode(node); + expect(ReactComponentTreeTestUtils.getRegisteredDisplayNames()).toEqual([]); + }); + describe('stack addenda', () => { it('gets created', () => { function getAddendum(element) {