|
1 | | -export function isAnyArrayBuffer(value: unknown): value is ArrayBuffer { |
2 | | - return ( |
3 | | - typeof value === 'object' && |
4 | | - value != null && |
5 | | - Symbol.toStringTag in value && |
6 | | - (value[Symbol.toStringTag] === 'ArrayBuffer' || |
7 | | - value[Symbol.toStringTag] === 'SharedArrayBuffer') |
8 | | - ); |
9 | | -} |
| 1 | +const TypedArrayPrototypeGetSymbolToStringTag = (() => { |
| 2 | + // eslint-disable-next-line @typescript-eslint/unbound-method -- the intention is to call this method with a bound value |
| 3 | + const g = Object.getOwnPropertyDescriptor( |
| 4 | + Object.getPrototypeOf(Uint8Array.prototype), |
| 5 | + Symbol.toStringTag |
| 6 | + )!.get!; |
10 | 7 |
|
11 | | -export function isUint8Array(value: unknown): value is Uint8Array { |
12 | | - return ( |
13 | | - typeof value === 'object' && |
14 | | - value != null && |
15 | | - Symbol.toStringTag in value && |
16 | | - value[Symbol.toStringTag] === 'Uint8Array' |
17 | | - ); |
18 | | -} |
| 8 | + return (value: unknown) => g.call(value); |
| 9 | +})(); |
19 | 10 |
|
20 | | -export function isBigInt64Array(value: unknown): value is BigInt64Array { |
21 | | - return ( |
22 | | - typeof value === 'object' && |
23 | | - value != null && |
24 | | - Symbol.toStringTag in value && |
25 | | - value[Symbol.toStringTag] === 'BigInt64Array' |
26 | | - ); |
| 11 | +export function isUint8Array(value: unknown): value is Uint8Array { |
| 12 | + return TypedArrayPrototypeGetSymbolToStringTag(value) === 'Uint8Array'; |
27 | 13 | } |
28 | 14 |
|
29 | | -export function isBigUInt64Array(value: unknown): value is BigUint64Array { |
| 15 | +export function isAnyArrayBuffer(value: unknown): value is ArrayBuffer { |
30 | 16 | return ( |
31 | 17 | typeof value === 'object' && |
32 | 18 | value != null && |
33 | 19 | Symbol.toStringTag in value && |
34 | | - value[Symbol.toStringTag] === 'BigUint64Array' |
| 20 | + (value[Symbol.toStringTag] === 'ArrayBuffer' || |
| 21 | + value[Symbol.toStringTag] === 'SharedArrayBuffer') |
35 | 22 | ); |
36 | 23 | } |
37 | 24 |
|
|
0 commit comments