{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-core/src/babylonian-programming-editor/utils/default-dict.js"],"names":["DefaultDict","constructor","defaultVal","Proxy","get","target","name"],"mappings":";;;;;;;;AAAA;;;;AAIe,YAAMA,WAAN,CAAkB;AAC/BC,oBAAYC,UAAZ,EAAwB;AACtB,iBAAO,IAAIC,KAAJ,CAAU,EAAV,EAAc;AACnBC,iBAAK,CAACC,MAAD,EAASC,IAAT,KAAkB;AACrB,kBAAG,EAAEA,QAAQD,MAAV,CAAH,EAAsB;AACpB,oBAAG,OAAOH,UAAP,KAAsB,UAAzB,EAAqC;AACnCG,yBAAOC,IAAP,IAAeJ,YAAf;AACD,iBAFD,MAEO;AACLG,yBAAOC,IAAP,IAAeJ,UAAf;AACD;AACF;AACD,qBAAOG,OAAOC,IAAP,CAAP;AACD;AAVkB,WAAd,CAAP;AAYD;AAd8B;;yBAAZN,W;;;;;;;;6BAAAA,4C","file":"default-dict.js","sourcesContent":["/**\n * A python-style DefaultDict container.\n * Creates, adds and returns a new object for undefined keys\n */\nexport default class DefaultDict {\n  constructor(defaultVal) {\n    return new Proxy({}, {\n      get: (target, name) => {\n        if(!(name in target)) {\n          if(typeof defaultVal === \"function\") {\n            target[name] = defaultVal();\n          } else {\n            target[name] = defaultVal;\n          }\n        }\n        return target[name];\n      }\n    });\n  }\n}"]}