( token: ProviderToken<any> | string, )
| 823 | * When the returned value is negative then it represents special values such as `Injector`. |
| 824 | */ |
| 825 | export function bloomHashBitOrFactory( |
| 826 | token: ProviderToken<any> | string, |
| 827 | ): number | Function | undefined { |
| 828 | ngDevMode && assertDefined(token, 'token must be defined'); |
| 829 | if (typeof token === 'string') { |
| 830 | return token.charCodeAt(0) || 0; |
| 831 | } |
| 832 | const tokenId: number | undefined = |
| 833 | // First check with `hasOwnProperty` so we don't get an inherited ID. |
| 834 | token.hasOwnProperty(NG_ELEMENT_ID) ? (token as any)[NG_ELEMENT_ID] : undefined; |
| 835 | // Negative token IDs are used for special objects such as `Injector` |
| 836 | if (typeof tokenId === 'number') { |
| 837 | if (tokenId >= 0) { |
| 838 | return tokenId & BLOOM_MASK; |
| 839 | } else { |
| 840 | ngDevMode && |
| 841 | assertEqual(tokenId, InjectorMarkers.Injector, 'Expecting to get Special Injector Id'); |
| 842 | return createNodeInjector; |
| 843 | } |
| 844 | } else { |
| 845 | return tokenId; |
| 846 | } |
| 847 | } |
| 848 | |
| 849 | export function bloomHasToken( |
| 850 | bloomHash: number, |
no test coverage detected
searching dependent graphs…