8
8
*/
9
9
10
10
import LRU from 'lru-cache' ;
11
- import {
12
- isElement ,
13
- typeOf ,
14
- ContextConsumer ,
15
- ContextProvider ,
16
- ForwardRef ,
17
- Fragment ,
18
- Lazy ,
19
- Memo ,
20
- Portal ,
21
- Profiler ,
22
- StrictMode ,
23
- Suspense ,
24
- } from 'react-is' ;
25
11
import {
26
12
REACT_CONSUMER_TYPE ,
27
13
REACT_CONTEXT_TYPE ,
28
14
REACT_FORWARD_REF_TYPE ,
29
15
REACT_FRAGMENT_TYPE ,
30
16
REACT_LAZY_TYPE ,
17
+ REACT_ELEMENT_TYPE ,
31
18
REACT_LEGACY_ELEMENT_TYPE ,
32
19
REACT_MEMO_TYPE ,
33
20
REACT_PORTAL_TYPE ,
34
21
REACT_PROFILER_TYPE ,
35
22
REACT_PROVIDER_TYPE ,
36
23
REACT_STRICT_MODE_TYPE ,
37
24
REACT_SUSPENSE_LIST_TYPE ,
38
- REACT_SUSPENSE_LIST_TYPE as SuspenseList ,
39
25
REACT_SUSPENSE_TYPE ,
40
- REACT_TRACING_MARKER_TYPE as TracingMarker ,
26
+ REACT_TRACING_MARKER_TYPE ,
41
27
} from 'shared/ReactSymbols' ;
42
28
import { enableRenderableContext } from 'shared/ReactFeatureFlags' ;
43
29
import {
@@ -632,10 +618,6 @@ export function getDataType(data: Object): DataType {
632
618
return 'undefined ';
633
619
}
634
620
635
- if ( isElement ( data ) ) {
636
- return 'react_element ';
637
- }
638
-
639
621
if ( typeof HTMLElement !== 'undefined ' && data instanceof HTMLElement ) {
640
622
return 'html_element ';
641
623
}
@@ -657,6 +639,12 @@ export function getDataType(data: Object): DataType {
657
639
return 'number' ;
658
640
}
659
641
case 'object':
642
+ if (
643
+ data.$$typeof === REACT_ELEMENT_TYPE ||
644
+ data.$$typeof === REACT_LEGACY_ELEMENT_TYPE
645
+ ) {
646
+ return 'react_element' ;
647
+ }
660
648
if (isArray(data)) {
661
649
return 'array' ;
662
650
} else if (ArrayBuffer.isView(data)) {
@@ -717,6 +705,7 @@ function typeOfWithLegacyElementSymbol(object: any): mixed {
717
705
if ( typeof object === 'object' && object !== null ) {
718
706
const $$typeof = object . $$typeof ;
719
707
switch ( $$typeof ) {
708
+ case REACT_ELEMENT_TYPE :
720
709
case REACT_LEGACY_ELEMENT_TYPE :
721
710
const type = object . type ;
722
711
@@ -761,31 +750,33 @@ function typeOfWithLegacyElementSymbol(object: any): mixed {
761
750
export function getDisplayNameForReactElement (
762
751
element : React$Element < any > ,
763
752
): string | null {
764
- const elementType = typeOf ( element ) || typeOfWithLegacyElementSymbol ( element ) ;
753
+ const elementType = typeOfWithLegacyElementSymbol ( element ) ;
765
754
switch ( elementType ) {
766
- case ContextConsumer :
755
+ case REACT_CONSUMER_TYPE :
767
756
return 'ContextConsumer' ;
768
- case ContextProvider :
757
+ case REACT_PROVIDER_TYPE :
769
758
return 'ContextProvider' ;
770
- case ForwardRef :
759
+ case REACT_CONTEXT_TYPE :
760
+ return 'Context' ;
761
+ case REACT_FORWARD_REF_TYPE :
771
762
return 'ForwardRef' ;
772
- case Fragment :
763
+ case REACT_FRAGMENT_TYPE :
773
764
return 'Fragment' ;
774
- case Lazy :
765
+ case REACT_LAZY_TYPE :
775
766
return 'Lazy' ;
776
- case Memo :
767
+ case REACT_MEMO_TYPE :
777
768
return 'Memo' ;
778
- case Portal :
769
+ case REACT_PORTAL_TYPE :
779
770
return 'Portal' ;
780
- case Profiler :
771
+ case REACT_PROFILER_TYPE :
781
772
return 'Profiler' ;
782
- case StrictMode :
773
+ case REACT_STRICT_MODE_TYPE :
783
774
return 'StrictMode' ;
784
- case Suspense :
775
+ case REACT_SUSPENSE_TYPE :
785
776
return 'Suspense' ;
786
- case SuspenseList :
777
+ case REACT_SUSPENSE_LIST_TYPE :
787
778
return 'SuspenseList' ;
788
- case TracingMarker :
779
+ case REACT_TRACING_MARKER_TYPE :
789
780
return 'TracingMarker' ;
790
781
default :
791
782
const { type} = element ;
0 commit comments