123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
-
-
- function sto_evh() {
- clog("sto_evh2",arguments,this)
- }
-
- // clog(getEventListeners())
- // window.addEventListener('storage',sto_evh )
-
-
- function replacer_(){
- clog("r",arguments,this)
- }
- function reviver(){
- clog("rv",arguments,this)
- }
-
- function replacer(key, value) {
- var {gk,gv,gthis,gthats,} = gr
-
- var bv = gr.gv==this
- var bt = gr.gthis==this
- // clog("r",bt,bv,arguments,this)
- var sq = ""
- if(!bt && !bv){
- cx = 0
- if (gr.cnt){
- // clog("CNT!!!!!")
- while(gr.gkeys){
- cx+=1
- if(cx>10){
- break
- }
- kx = gr.gkeys.pop()
- vx = gr.gthats.pop()
- if(vx == this){
- break
- }
- clog(vx == this,kx,vx)
- }
- }
- // clog("FF")
- // clog("FF")
- sq = "FF"
-
- } else if (bt && !bv) {
- // clog("TF")
- sq = "TF"
-
- } else if (!bt && bv) {
- // clog("FT")
- // gr.gthats.push(this)
- // gr.gkeys.push(key)
-
- if (gr.cnt > 1){
- gr.gthats.push(gr.gthis)
- gr.gkeys.push(gr.gk)
- }
- sq = "FT"
-
-
- } else {
- clog("We shouldn't be here")
- }
- // clog(sq,[gr.gk,gr.gv])
-
-
- // Exclude the 'age' property from the JSON string
- // if (key === "age") {
- // return undefined;
- // }
- if (typeof(value) != "object"){
- // clog("leaf",[...gr.gkeys,key],[...gr.gkeys,key].join("."),":",value,deep_prop_v0(gr.o,[...gr.gkeys,key]))
-
- var v3 = deep_prop_v3(gr.o,[...gr.gkeys,key])
- deep_prop_v3(gr.r,[...gr.gkeys,key],v3.v)
- var v0 = deep_prop_v0(gr.o,[...gr.gkeys,key])
- // clog("leaf",[...gr.gkeys,key],[...gr.gkeys,key].join("."),":",value,"!!!",deep_prop_v3(gr.o,[...gr.gkeys,key]),deep_prop_v0(gr.o,[...gr.gkeys,key]))
- clog("leaf",{"":[[...gr.gkeys,key],[...gr.gkeys,key].join("."),":"],value},"!!!",v3.v==v0,v3,v0)
-
-
- } else if (gr.cnt) {
- if (!value){/*null*/} else {
- var v3 = deep_prop_v3(gr.o,[...gr.gkeys,key])
- if (Array.isArray(value)) {
- deep_prop_v3(gr.r,[...gr.gkeys,key],[])
-
- } else {
- deep_prop_v3(gr.r,[...gr.gkeys,key],{})
-
- }
-
- }
- }
-
- gr.cnt +=1
- gr.gthis = this
- gr.gv = value
- gr.gk = key
-
- // clog("~",[value])
- return value;
- }
-
- // const jsonString = '{"name": "Alice", "age": 25, "birthdate": "1998-02-11T00:00:00Z"}';
-
- // Default reviver function to handle date strings
- function defaultReviver(key, value) {
- // clog()
- clog("rv",arguments,this)
- // Check if the value is a date string
- const dateFormat = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
- if (typeof value === 'string' && dateFormat.test(value)) {
- return new Date(value);
- }
-
- return value;
- }
- function deep_prop_v0(o,p){
- try {
- var arr = jc(p)
- var ret = o
- while (arr.length){
- ret = ret[arr.shift()]
- }
- return ret
- } catch(err){console.error("DEEP_PROP ERR:",err)}
- }
-
- function deep_prop_v3(o,p,set_val="DEFAULT_VAL"){
- // clog("deep_prop_v3",{o,p,set_val})
- try {
- var arr = jc(p)
- var ret = o
- var retm = {}
- var key
-
- if (typeof(arr)=="string"){
- arr = arr.split(".")
- }
-
- retm.arr = arr
- retm.arr0 = p
-
- while (arr.length){
- // clog("deep_prop",arr,ret)
- key = arr.shift()
- if (!arr.length){
- retm.v_exist = key in ret
- }
-
- if (!arr.length && set_val!="DEFAULT_VAL" ){
- retm.orig_val = ret[key]
-
- ret[key] = set_val
-
- }
- ret = ret[key]
- retm.v = ret
- // clog("arr_len:",arr.length)
- // set_val=="DEFAULT_VAL"
-
- }
- if (set_val!="DEFAULT_VAL"){
- // ret[key] = set_val
-
- retm.valset=true
- }
- // clog("deep_prop ret",ret)
- // return retm
- } catch(err){
- retm.err=err
- retm.key=key
- retm.v="ERR"
- // console.error("DEEP_PROP ERR:",err)
- }
- // clog("deep_prop_v3<",{o,p,set_val,retm})
- return retm
- }
-
-
- function o3_jdb0(o){
-
- // clo
- // gk = []
- // gv = "???"
- // gthis = ""
- // gthats = []
-
- y = {a:1,b:2,c:3,o:{arr:[1,2],z:{q:1}},"qqq":"///",
- o1:{a:"123"},
- }
- x = {c:"s",o:"","c2":1,b:{q:{"A":"????","B":{"~~":"~~~"},C:":"},"a00":""},"a0":1,"a":null,
- o1:{a:"ooo"},
- }
- // x = {c:"s",o:"","c2":1,b:{q:{"A":"????","B":{}}},"a0":1,"a":null}
-
-
- gr = {
- cnt:0,
- gkeys:[],
- gk:"init",
- gv:"init",
- gthis:"init",
- gthats:[],
- r:{},
- // r:jc(y),
- o:y,
- }
-
-
- var k,v
- // for
- s=JSON.stringify(x,replacer)
- clog(":",s)
- clog("~")
- // ox=JSON.parse(s,defaultReviver)
- // clog("~",ox)
- return gr
-
- }
-
- function t3_info(){
- var o,en,k,v,j,i
- for (o of z.scene.children){
- clog(o)
- }
- }
- t3_info()
-
-
- function o3_jdb(){
- var o3t = {
- uuid:"",id:"",type:"",name:"",
- geometry:{type:""},
- material:{
- color:{r:"",g:"",b:"",isColor:""}
- }
- }
-
- var o
- msto.o3 = []
- var ret = {arr:[]}
- for (o of z.scene.children){
- gr = {
- cnt:0,
- gkeys:[],
- gk:"init",
- gv:"init",
- gthis:"init",
- gthats:[],
- r:{},
- o,
- // r:jc(y),
- }
-
- var k,v
- // for
- s=JSON.stringify(o3t,replacer)
-
- ret.arr.push(gr)
- msto.o3.push(gr.r)
-
- }
- return ret
-
- }
-
- // geometry:{type:""},
|