{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-active-expression-proxies/src/client/reactive/test/active-groups/expr.js"],"names":["trackInstance","untrackInstance","NumExpr","constructor","val","call","destroy","toString","result","NegExpr","expr","AddExpr","expr1","expr2","result1","result2"],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAESA,mB,gBAAAA,a;AAAeC,qB,gBAAAA,e;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjB,YAAMC,OAAN,CAAc;AACnBC,oBAAYC,GAAZ,EAAiB;AAAA;;AACf,8GAAWA,GAAX;AADe;AAEf,wHAAcC,IAAd,qFAAmBH,OAAnB,GAA4B,IAA5B;AACD;AACDI,kBAAU;AAAA;;AACR,8HAAgBD,IAAhB,qFAAqBH,OAArB,GAA8B,IAA9B;AACD;;AAEDK,mBAAW;AACT,8CAAO,IAAP;AACD;;AAEDC,iBAAS;AACP,4BAAO,IAAP;AACD;AAfkB;;;;;;;;;;;;;;;;;;;AAkBd,YAAMC,OAAN,CAAc;AACnBN,oBAAYO,IAAZ,EAAkB;AAAA;;AAChB,iHAAYA,IAAZ;AADgB;AAEhB,wHAAcL,IAAd,qFAAmBI,OAAnB,GAA4B,IAA5B;AACD;AACDH,kBAAU;AAAA;;AACR,8HAAgBD,IAAhB,qFAAqBI,OAArB,GAA8B,IAA9B;AACD;;AAEDF,mBAAW;AACT,iBAAO,oCAAO,IAAP,6BAA8B,GAArC;AACD;;AAEDC,iBAAS;AACP,iBAAO,CAAC,CAAD,gCAAK,IAAL,wBAAP;AACD;AAfkB;;;;;;;;;;;;;;;;;;;AAkBd,YAAMG,OAAN,CAAc;AACnBR,oBAAYS,KAAZ,EAAmBC,KAAnB,EAA0B;AAAA;;AACxB,qHAAaD,KAAb;AACA,qHAAaC,KAAb;AAFwB;AAGxB,wHAAcR,IAAd,sFAAmBM,OAAnB,GAA4B,IAA5B;AACD;AACDL,kBAAU;AAAA;;AACR,8HAAgBD,IAAhB,sFAAqBM,OAArB,GAA8B,IAA9B;AACD;;AAEDJ,mBAAW;AACT,iBAAO,mCAAM,IAAN,8BAA8B,KAA9B,gCAAsC,IAAtC,8BAA8D,GAArE;AACD;;AAEDC,iBAAS;AAAA;;AACP,cAAIM,uCAAU,IAAV,yBAAJ;AAAA,cACIC,uCAAU,IAAV,yBADJ;AAEA,iBAAO,qLAAUA,OAAV,CAAP;AACD;AAlBkB","file":"expr.js","sourcesContent":["\"enable aexpr\";\n\nimport { trackInstance, untrackInstance } from 'active-group';\n\nexport class NumExpr {\n  constructor(val) {\n    this.val = val;\n    trackInstance.call(NumExpr, this);\n  }\n  destroy() {\n    untrackInstance.call(NumExpr, this);\n  }\n\n  toString() {\n    return this.val.toString();\n  }\n\n  result() {\n    return this.val;\n  }\n}\n\nexport class NegExpr {\n  constructor(expr) {\n    this.expr = expr;\n    trackInstance.call(NegExpr, this);\n  }\n  destroy() {\n    untrackInstance.call(NegExpr, this);\n  }\n\n  toString() {\n    return '(-' + this.expr.toString() + ')';\n  }\n\n  result() {\n    return -1 * this.expr.result();\n  }\n}\n\nexport class AddExpr {\n  constructor(expr1, expr2) {\n    this.expr1 = expr1;\n    this.expr2 = expr2;\n    trackInstance.call(AddExpr, this);\n  }\n  destroy() {\n    untrackInstance.call(AddExpr, this);\n  }\n\n  toString() {\n    return '(' + this.expr1.toString() + ' + ' + this.expr2.toString() + ')';\n  }\n\n  result() {\n    var result1 = this.expr1.result(),\n        result2 = this.expr2.result();\n    return result1 + result2;\n  }\n}\n"]}