diff --git a/packages/format/src/types/materials/index.ts b/packages/format/src/types/materials/index.ts index db3b25133..6c7def411 100644 --- a/packages/format/src/types/materials/index.ts +++ b/packages/format/src/types/materials/index.ts @@ -74,7 +74,7 @@ export namespace Materials { "version" in value.compiler && typeof value.compiler.version === "string" && "sources" in value && - value.sources instanceof Array && + Array.isArray(value.sources) && value.sources.every(isSource); export interface Source { diff --git a/packages/format/src/types/pointer/pointer.ts b/packages/format/src/types/pointer/pointer.ts index 23f030518..1b4930ec8 100644 --- a/packages/format/src/types/pointer/pointer.ts +++ b/packages/format/src/types/pointer/pointer.ts @@ -128,7 +128,7 @@ export namespace Pointer { typeof value === "object" && Object.keys(value).length === 1 && "group" in value && - value.group instanceof Array && + Array.isArray(value.group) && value.group.length >= 1 && value.group.every(isPointer); @@ -290,7 +290,7 @@ export namespace Pointer { export type Operands = Expression[]; export const isOperands = (value: unknown): value is Expression[] => - value instanceof Array && value.every(isExpression); + Array.isArray(value) && value.every(isExpression); export namespace Arithmetic { export type Operation = @@ -472,7 +472,7 @@ export namespace Pointer { typeof value === "object" && Object.keys(value).length === 2 && "expect" in value && - value.expect instanceof Array && + Array.isArray(value.expect) && value.expect.every(isIdentifier) && "for" in value && isPointer(value.for); diff --git a/packages/format/src/types/program/context.ts b/packages/format/src/types/program/context.ts index 104f27196..b9ec6fc4f 100644 --- a/packages/format/src/types/program/context.ts +++ b/packages/format/src/types/program/context.ts @@ -45,7 +45,7 @@ export namespace Context { typeof value === "object" && !!value && "variables" in value && - value.variables instanceof Array && + Array.isArray(value.variables) && value.variables.length > 0 && value.variables.every(Variables.isVariable); diff --git a/packages/format/src/types/program/instruction.ts b/packages/format/src/types/program/instruction.ts index 005d8c8e6..ff34af555 100644 --- a/packages/format/src/types/program/instruction.ts +++ b/packages/format/src/types/program/instruction.ts @@ -28,6 +28,5 @@ export namespace Instruction { "mnemonic" in value && typeof value.mnemonic === "string" && (!("arguments" in value) || - (value.arguments instanceof Array && - value.arguments.every(Data.isValue))); + (Array.isArray(value.arguments) && value.arguments.every(Data.isValue))); } diff --git a/packages/format/src/types/program/program.ts b/packages/format/src/types/program/program.ts index fdbd4c119..62ff41ae4 100644 --- a/packages/format/src/types/program/program.ts +++ b/packages/format/src/types/program/program.ts @@ -23,7 +23,7 @@ export const isProgram = (value: unknown): value is Program => "environment" in value && Program.isEnvironment(value.environment) && "instructions" in value && - value.instructions instanceof Array && + Array.isArray(value.instructions) && value.instructions.every(Program.isInstruction) && (!("compilation" in value) || Materials.isReference(value.compilation)) && diff --git a/packages/format/src/types/type/base.ts b/packages/format/src/types/type/base.ts index add55ef48..ff0f2d98b 100644 --- a/packages/format/src/types/type/base.ts +++ b/packages/format/src/types/type/base.ts @@ -36,7 +36,7 @@ export const isComplex = (value: unknown): value is Complex => "contains" in value && !!value.contains && (isWrapper(value.contains) || - (value.contains instanceof Array && value.contains.every(isWrapper)) || + (Array.isArray(value.contains) && value.contains.every(isWrapper)) || (typeof value.contains === "object" && Object.values(value.contains).every(isWrapper))); diff --git a/packages/format/src/types/type/index.ts b/packages/format/src/types/type/index.ts index 066f3a6d5..7d0649749 100644 --- a/packages/format/src/types/type/index.ts +++ b/packages/format/src/types/type/index.ts @@ -27,8 +27,7 @@ export namespace Type { "class" in value && (!("contains" in value) || Type.isWrapper(value.contains) || - (value.contains instanceof Array && - value.contains.every(Type.isWrapper)) || + (Array.isArray(value.contains) && value.contains.every(Type.isWrapper)) || (typeof value.contains === "object" && Object.values(value.contains).every(Type.isWrapper))); @@ -262,7 +261,7 @@ export namespace Type { mayHaveClass(value, "elementary") && hasKind(value, "enum") && "values" in value && - value.values instanceof Array && + Array.isArray(value.values) && (!("definition" in value) || isDefinition(value.definition)); } @@ -330,7 +329,7 @@ export namespace Type { mayHaveClass(value, "complex") && hasKind(value, "tuple") && "contains" in value && - value.contains instanceof Array && + Array.isArray(value.contains) && value.contains.every( (element) => isWrapper(element) && @@ -386,7 +385,7 @@ export namespace Type { mayHaveClass(value, "complex") && hasKind(value, "struct") && "contains" in value && - value.contains instanceof Array && + Array.isArray(value.contains) && value.contains.every( (field) => isWrapper(field) &&