@@ -142,6 +142,10 @@ function installGlobalHook(window: Object) {
142
142
return 'production' ;
143
143
}
144
144
function isReactDOM ( renderer ) {
145
+ if ( renderer . id === 'react-dom' ) {
146
+ return true ;
147
+ }
148
+ // Try to detect old versions without id injected
145
149
try {
146
150
var toString = Function . prototype . toString ;
147
151
if ( typeof renderer . version === 'string' ) {
@@ -154,29 +158,29 @@ function installGlobalHook(window: Object) {
154
158
renderer . Mount . _renderNewRootComponent
155
159
) ;
156
160
157
- // Check for React DOM 15.*
161
+ // React DOM 15.*
158
162
if (
159
163
renderRootCode . indexOf ( 'ensureScrollValueMonitoring' ) !== - 1 &&
160
164
renderRootCode . indexOf ( '37' ) !== - 1
161
165
) {
162
166
return true ;
163
167
}
164
- // Check for React DOM Stack 0.13.*/0.14.*
168
+ // React DOM Stack 0.13.*/0.14.*
165
169
if ( renderRootCode . indexOf ( '_registerComponent' ) !== - 1 ) {
166
170
return true ;
167
171
}
168
- // It's something we aren't aware of => not ReactDOM
172
+ // Something we're not aware of => not ReactDOM
169
173
return false ;
170
174
}
171
175
} catch ( err ) {
172
- // TODO: Mirrors error handling of detectDuplicatedReact ()
176
+ // TODO: Mirrors error handling of detectReactBuildType ()
173
177
}
174
178
return false ;
175
179
}
176
180
function detectDuplicatedReact ( renderers ) {
177
181
// Detect if we have more than one ReactDOM instance
178
182
return (
179
- Object . keys ( renderers ) . filter ( key => isReactDOM ( renderers [ key ] ) ) . length > 1
183
+ Object . keys ( renderers ) . filter ( id => isReactDOM ( renderers [ id ] ) ) . length > 1
180
184
) ;
181
185
}
182
186
const hook = ( {
@@ -186,10 +190,10 @@ function installGlobalHook(window: Object) {
186
190
inject : function ( renderer ) {
187
191
var id = Math . random ( ) . toString ( 16 ) . slice ( 2 ) ;
188
192
hook . _renderers [ id ] = renderer ;
189
- var duplicatedReact = detectDuplicatedReact ( hook . _renderers ) ;
190
- // FIXME: Do we need to report buildType of smth other than ReactDOM?
193
+ var isReactDuplicated = detectDuplicatedReact ( hook . _renderers ) ;
194
+
191
195
// Currently we overwrite buildType with each injected renderer's type
192
- var reactBuildType = duplicatedReact
196
+ var reactBuildType = isReactDuplicated
193
197
? 'duplicated'
194
198
: detectReactBuildType ( renderer ) ;
195
199
0 commit comments