Skip to content

Commit 6ef1f75

Browse files
MaxGraeydcodeIO
authored andcommitted
Improve ArrayBuffer.isView (#930)
1 parent 98c0bb7 commit 6ef1f75

13 files changed

+760
-714
lines changed

std/assembly/arraybuffer.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,21 @@ export abstract class ArrayBufferView {
3232
@sealed export class ArrayBuffer {
3333

3434
static isView<T>(value: T): bool {
35-
if (value) {
36-
if (value instanceof Int8Array) return true;
37-
if (value instanceof Uint8Array) return true;
38-
if (value instanceof Uint8ClampedArray) return true;
39-
if (value instanceof Int16Array) return true;
40-
if (value instanceof Uint16Array) return true;
41-
if (value instanceof Int32Array) return true;
42-
if (value instanceof Uint32Array) return true;
43-
if (value instanceof Int64Array) return true;
44-
if (value instanceof Uint64Array) return true;
45-
if (value instanceof Float32Array) return true;
46-
if (value instanceof Float64Array) return true;
47-
if (value instanceof DataView) return true;
35+
if (isNullable<T>()) {
36+
if (value === null) return false;
4837
}
38+
if (value instanceof Int8Array) return true;
39+
if (value instanceof Uint8Array) return true;
40+
if (value instanceof Uint8ClampedArray) return true;
41+
if (value instanceof Int16Array) return true;
42+
if (value instanceof Uint16Array) return true;
43+
if (value instanceof Int32Array) return true;
44+
if (value instanceof Uint32Array) return true;
45+
if (value instanceof Int64Array) return true;
46+
if (value instanceof Uint64Array) return true;
47+
if (value instanceof Float32Array) return true;
48+
if (value instanceof Float64Array) return true;
49+
if (value instanceof DataView) return true;
4950
return false;
5051
}
5152

0 commit comments

Comments
 (0)