export function makeArray(original: Array | null = null): Array { if (original) { let cloned = new Array(original.length); for (let i = 0, k = original.length; i < k; ++i) unchecked(cloned[i] = original[i]); return cloned; } return new Array(); } export function makeSet(original: Set | null = null): Set { if (original) { let cloned = new Set(); for (let v of original) cloned.add(v); return cloned; } return new Set(); } export function makeMap(original: Map | null = null, overrides: Map | null = null): Map { var cloned = new Map(); if (original) { for (let [k, v] of original) cloned.set(k, v); if (overrides) for (let [k, v] of overrides) cloned.set(k, v); } else if (overrides) { for (let [k, v] of overrides) cloned.set(k, v); } return cloned; }