|
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