UNPKG

@luma.gl/core

Version:

The luma.gl core Device API

37 lines 1.03 kB
// luma.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import { isNumberArray } from "./is-array.js"; const MAX_ELEMENTWISE_ARRAY_COMPARE_LENGTH = 128; /** Test if two arrays are deep equal, with a small-array length limit that defaults to 16 */ export function arrayEqual(a, b, limit = 16) { if (a === b) { return true; } const arrayA = a; const arrayB = b; if (!isNumberArray(arrayA) || !isNumberArray(arrayB)) { return false; } if (arrayA.length !== arrayB.length) { return false; } const maxCompareLength = Math.min(limit, MAX_ELEMENTWISE_ARRAY_COMPARE_LENGTH); if (arrayA.length > maxCompareLength) { return false; } for (let i = 0; i < arrayA.length; ++i) { if (arrayB[i] !== arrayA[i]) { return false; } } return true; } /** Copy a value */ export function arrayCopy(a) { if (isNumberArray(a)) { return a.slice(); } return a; } //# sourceMappingURL=array-equal.js.map