UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

46 lines (34 loc) 1.09 kB
import { isImageBitmap } from "../../../engine/graphics/texture/isImageBitmap.js"; import { array_push_if_unique } from "../../collection/array/array_push_if_unique.js"; /** * * @param {*} value * @param {Array} result * @returns {number} number of elements added to result array * @preserve */ export function extractTransferables(value, result) { let count = 0; if (typeof value !== "object") { // not an object, skip } else if (value instanceof ArrayBuffer) { if (array_push_if_unique(result, value)) { count++; } } else if (value.buffer instanceof ArrayBuffer) { if (array_push_if_unique(result, value.buffer)) { count++; } } else if (isImageBitmap(value)) { if (array_push_if_unique(result, value)) { count++; } } else { for (let i in value) { if (value.hasOwnProperty(i)) { count += extractTransferables(value[i], result); } } } return count; }