All files / src/internal/client/reactivity lazy.js

32% Statements 8/25
100% Branches 0/0
0% Functions 0/1
29.16% Lines 7/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 252x 2x 2x 2x 2x 2x 2x                                    
import { is_array } from '../utils';
 
/**
 * @param {Array<unknown[] | { get: () => unknown, set: (v: unknown) => unknown }>} parts
 * @returns {unknown[]}
 */
export function lazy_array(...parts) {
	const arr = [];

	for (var i = 0; i < parts.length; i++) {
		var part = parts[i];

		if (is_array(part)) {
			arr.push(...part);
		} else {
			Object.defineProperty(arr, arr.length, {
				enumerable: true,
				...part
			});
		}
	}

	return arr;
}