hasCoadjacentSameStateCells checks

This commit is contained in:
Azgaar 2022-05-14 14:34:21 +03:00 committed by Peter
parent 6fc9b75e00
commit fd450a20c1

View file

@ -65,12 +65,12 @@ function unique(array) {
// deep copy for Arrays (and other objects)
function deepCopy(obj) {
const id = x=>x;
const id = x => x;
const dcTArray = a => a.map(id);
const dcObject = x => Object.fromEntries(Object.entries(x).map(([k,d])=>[k,dcAny(d)]));
const dcAny = x => x instanceof Object ? (cf.get(x.constructor)||id)(x) : x;
const dcObject = x => Object.fromEntries(Object.entries(x).map(([k, d]) => [k, dcAny(d)]));
const dcAny = x => (x instanceof Object ? (cf.get(x.constructor) || id)(x) : x);
// don't map keys, probably this is what we would expect
const dcMapCore = m => [...m.entries()].map(([k,v])=>[k, dcAny(v)]);
const dcMapCore = m => [...m.entries()].map(([k, v]) => [k, dcAny(v)]);
const cf = new Map([
[Int8Array, dcTArray],
@ -89,7 +89,7 @@ function deepCopy(obj) {
[Array, a => a.map(dcAny)],
[Set, s => [...s.values()].map(dcAny)],
[Date, d => new Date(d.getTime())],
[Object, dcObject],
[Object, dcObject]
// other types will be referenced
// ... extend here to implement their custom deep copy
]);