diff --git a/extensions/typescript-language-features/src/utils/arrays.ts b/extensions/typescript-language-features/src/utils/arrays.ts index bf403c3afeb..b8431b0b660 100644 --- a/extensions/typescript-language-features/src/utils/arrays.ts +++ b/extensions/typescript-language-features/src/utils/arrays.ts @@ -2,18 +2,19 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -export function equals(one: ReadonlyArray, other: ReadonlyArray, itemEquals: (a: T, b: T) => boolean = (a, b) => a === b): boolean { - if (one.length !== other.length) { + +export function equals( + a: ReadonlyArray, + b: ReadonlyArray, + itemEquals: (a: T, b: T) => boolean = (a, b) => a === b +): boolean { + if (a === b) { + return true; + } + if (a.length !== b.length) { return false; } - - for (let i = 0, len = one.length; i < len; i++) { - if (!itemEquals(one[i], other[i])) { - return false; - } - } - - return true; + return a.every((x, i) => itemEquals(x, b[i])); } export function flatten(arr: ReadonlyArray[]): T[] {