123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
-
-
-
-
-
-
-
-
- o = {a:2,b:3}
-
- // Object.defineProperties()
- Object.defineProperty(o,"b",{
- enumerable:false,
- })
- Object.defineProperty(o,"c",{
- enumerable:false,
- })
- Object.defineProperty(o,"d",{
- // enumerable:false,
- })
-
- zxc2 = Object.getOwnPropertyDescriptors (o)
- // zxc2.a.enumerable=false
-
-
-
-
- function okv(obj) {
- var k,v
- for ([k,v] of Object.entries(obj))
- // body...
- clog("!",k,v)
- }
-
- cnt = 0
-
-
-
- prxt = {
- set:function(obj, prop, val,receiver){
- clog("prxt set ",obj, prop, val,receiver)
- return
-
- return Reflect.set(...arguments)
- },
- get:function(obj, prop,receiver){
-
-
-
-
-
-
- if (window.cnt){
- window.cnt+=1
- clog("prxt get ret",cnt,prop)
- return
- }
- window.cnt+=1
- clog("prxt get",obj, prop,receiver)
- // clog("prxt get",prop)
- // clog("prxt get")
- return
-
- return Reflect.get(...arguments)
- },
- // __prx:true,
- // rec:
-
- }
-
-
-
-
- delete obsObj
- {
-
- class obsObj {
- constructor(o){
- this.db = o
- }
- _pub_msg(m){
- clog("ixi PUB MSG",m)
- }
- _rec_msg(that,m){
- clog("ixi REC MSG2",m)
- }
- __noSuchMethod__(){
- clog("__lookupGetter__~",arguments)
- }
- }
- window.obsObj = obsObj
- glob_mx.obsobj =new obsObj({})
- glob_mx.obsobj2 =new obsObj({})
- }
-
-
- glob_mx.obsobj.__proto__ = new Proxy(glob_mx.obsobj.__proto__,prxt)
-
- delete Magic
- {
-
- class Magic {
- constructor () {
- return new Proxy(this, this);
- }
- get (target, prop) {
- return this[prop] || 'MAGIC';
- }
- }
- window.Magic = Magic
- glob_mx.magic =new Magic({})
- glob_mx.magic2 =new Magic({})
- // glob_mx.magic3 =new Magic({})
- }
- // __lookupGetter__
-
- // function replacer(a0,a1,a2,a3,a4){
- hdn = [
- "__path_arr",
- "__path",
- "__dpth",
- ]
-
- function replacer(key,val){
- // clog("REP",key,val,this)
- var v,k
- if (typeof(val) == "object" && val != null){
- // val._add="Z"
- v = Object.assign({},val)
- for (k of hdn){
- v[k] = val[k]
- }
- return v
- }
- return val
- // return a0
- }
-
-
- function jh(o){
- return JSON.parse(JSON.stringify(o, replacer))
- }
-
-
- s1 ={a:{b:{c:3}}}
- // JSON.stringify({a:{b:{c:3}}}, replacer)
- // JSON.stringify({}, replacer)
- // JSON.stringify({a:{b:{c:3}}}, replacer)
- // JSON.stringify({}, replacer[, space]])
- //
- m = {}
- m.m0 = {
- // k:["z2"]
- }
- m.m1 = {
- k:["z2","z3"]
- }
- m.m2 = {
- k:["z3"]
- }
- // m.
-
-
- function isSubset(subset,superset){
- for (var elem of subset) {
- if (!superset.includes(elem)) {
- return false;
- }
- }
- return true;
- }
-
- function isSubset_arr(subset,superset){
- for (var elem of subset) {
- if (Array.isArray(elem)){
-
- if (!new Set(elem).intersection(superset).size){
- return false
- }
- } else if (!superset.includes(elem)) {
- return false;
- }
- }
- return true;
- }
-
-
- function sym_info(o){
- var k,v
- for ([k,v] of Object.entries(syms)){
- // clog(k,v)
- clog(k,o[v])
- }
- }
-
- function art(m,o){
- var k,v
- var r = 0
- var ret = {}
- var md =Object.getOwnPropertyDescriptors(m)
-
- for ([k,v] of Object.entries(md)){
- if (typeof(v.value) == "symbol"){
- r+=1
- ret[k]=v.value
- }
-
-
- // for ([k,v] in m){
- // case
- clog(k,typeof(v.value),v.value,[v])
- }
- return {cnt:r,o:ret}
- }
- syms = art(Symbol).o
-
- function match(mx,m,o){
- var k,v,k2,v2
- var r = 0
- // clog("@",mx,m,o)
- for ([k,v] of Object.entries(m || {})){
- v2 = o[k]
- // clog("M~",k,typeof(v),typeof(v2),v,v2)
- if (typeof(v) == "string" && typeof(v2) == "string") {
- r += !(v==v2)
- } else if (Array.isArray(v) && Array.isArray(v2)){
- r += !(isSubset_arr(v,v2))
- } else if (Array.isArray(v) && typeof(v2) == "string"){
- // r += !(isSubset_arr(v2,v))
- // r += !(isSubset_arr(v2,v))
- r += !v.includes(v2)
- // clog("!!!!!!!!!!!!!",v,v2,isSubset_arr(v2,v))
- } else if (Array.isArray(v2) && typeof(v) == "string"){
- r += !(v2.includes(v))
- }
- if (r){
- return !r
- }
- }
- return !r
- }
-
-
- // clog("m1,m2",match({},m.m1,m.m2))
- // clog("m2,m1",match({},m.m2,m.m1))
-
- // clog("m2,m0",match({},m.m2,m.m0))
- // clog("m0,m2",match({},m.m0,m.m2))
-
-
- a = ["A","B","C"]
- a1 = ["A","B",,"D"]
- a1[-1]="z"
- a1["q"]="z2"
- s2 = "str2"
-
- r1 = [/a\d/,/b[a-z]\d/]
-
- delete Str
- {
-
- class Str extends String {
- // constructor(o){
- // super(o)
- // }
- /*
- this.db = o
- }
- _pub_msg(m){
- clog("ixi PUB MSG",m)
- }
- _rec_msg(that,m){
- clog("ixi REC MSG2",m)
- }
- */
- }
- window.Str = Str
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function gpt(){
- try {
- clog("gx gpt",get_participants)
- clog("gx gpt2",get_participants())
-
- } catch (err) {
-
- clog("gx gpt err:",err)
- }
- }
-
- gpt()
-
-
-
- {
-
- class QString extends String {
- isEmpty() {
- return this.length === 0;
- }
- concat(){
- return new QString(this + Array.prototype.join.call(arguments, ''));
- }
- }
-
- var testQStr1 = new QString("abc");
- var testQStr2 = new QString("as easy as");
- var testQStr3 = new QString("123");
- var testStr3 = new String("123");
-
- console.log(testQStr1,testQStr1 == "abc");
- test1 = testQStr1.concat(testQStr2,testQStr3);
- console.log(test1,test1=="abcas easy as123");
-
-
-
-
- }
-
-
-
-
-
-
-
-
-
-
- function switch_t(m,o){
- // var t
- // var flags = {
- // leaf:"??",
- // prx:"??",
- // }
- // t = typeof(o)
- // t=o
- // var s1 = t
- // var s2 = 2
- // var s0 = [s1,s2]
- // switch (...s0){
- switch (o[0],o[1]){
- case m[0][0],m[0][1]:
- clog("m0")
- break;
- case m[1][0],m[1][1]:
- clog("m1")
- clog(m[1][0],m[1][1],":",o[0],o[1])
- // clog("~MX~","tlu")
- break;
- default:
- clog("default")
-
- }
- }
- o1 = []
- m1 = [[],[]]
- function wait(ms) {
- return new Promise(r => setTimeout(r, ms));
- }
- pfn1= async function(resolve, reject) {
- clog("RESV")
- // resolve('Success!');
- window.pfn1_cb = function(/*resolve, reject*/) {
- resolve('Success!');
- }
- await wait(3000)
-
- reject("TIMED_OUT")
- }
- pfn2= function(resolve, reject) {
- clog("RESV")
- resolve({zzz:'Success!'});
-
-
- }
-
- prm ={}
-
- // prm.resolve("zzz")
- // promise1 = new Promise(pfn1);
-
-
- promise1 = new Promise(pfnf(prm));
-
- setTimeout(prm.reject,3000,"ST REJ")
-
- clog("and then")
- promise1.then(function(value) {
- console.log(this,value,arguments);
- // expected output: "Success!"
- });
-
- promise1.then(function(value) {
- console.log("this,value,arguments");
- // expected output: "Success!"
- });
-
- promise1.catch(function(value) {
- console.log("REJECT",this,value,arguments);
- // expected output: "Success!"
- });
- clog("and then...")
-
-
- prm.resolve("11111zzz","zzzzzzz")
|