function jclone(obj){ return Array.isArray(obj) ? $.extend(true,[],obj) : $.extend(true,{},obj) } function jx(obj){ return JSON.parse(JSON.stringify(obj)) } window.jc = jclone function rcom2(){ var k,v var k2,v2 for ([k,v] of Object.entries(rldi.files) ){ // clog(k,v.cached == rls[k],v.cached,rls[k]) clog(k) } clog(Object.entries(rldi.files).length) } function deep_prop(o,p){ try { var arr = jc(p) var ret = o var retm = {} retm.arr = arr retm.arr0 = p while (arr.length){ // clog("deep_prop",arr,ret) ret = ret[arr.shift()] retm.v = ret } // clog("deep_prop ret",ret) return retm } catch(err){ retm.err=err console.error("DEEP_PROP ERR:",err) return retm } }