{"version":3,"names":["ExpressionAnalysis","Dependency","DependencyKey","Hook","SourceCodeHook","DataStructureHook","PropertyWrappingHook","MutationObserverHook","EventBasedHook","FrameBasedHook","RewritingActiveExpression","DependencyAPI","DependencyManager","TracingHandler","__SystemJSRewritingHack","analysisStack","expressionAnalysisMode","DependenciesToAExprs","ContextAndIdentifierToDependencies","DataStructureHookByDataStructure","PropertyWrappingHookByProperty","MutationObserverHookByHTMLElement","EventBasedHookByHTMLElement","globalRef","notificationQueue","getAEDataForFile","url","result","Map","ae","AExprRegistry","getLocationCache","getAEsInFile","set","getDependenciesAndHooksForAE","hook","getHooksInFile","dependency","getDependencies","getAExprsForDep","location","meta","get","file","includes","getOrCreate","push","getKey","getDepsForAExpr","getHooks","allHooks","allValues","flatMap","dep","hooksWithLocations","Promise","all","map","getLocations","then","locations","filter","some","loc","aexpr","func","args","reset","clear","traceMember","obj","prop","associateMember","getMember","getAndCallMember","updateMember","memberUpdated","setMember","val","setMemberAddition","setMemberSubtraction","setMemberMultiplication","setMemberDivision","setMemberRemainder","setMemberExponentiation","setMemberLeftShift","setMemberRightShift","setMemberUnsignedRightShift","setMemberBitwiseAND","setMemberBitwiseXOR","setMemberBitwiseOR","deleteMember","getLocal","scope","varName","value","associateLocal","setLocal","localUpdated","getGlobal","globalName","associateGlobal","setGlobal","globalUpdated","_export","setters","_lang","_activeExpression","BaseActiveExpression","_activeExpressionFrameBased","frameBasedAExpr","_utilsStackJs","Stack","default","_compositeKeyJs","CompositeKey","_injectiveMapJs","InjectiveMap","_bidirectionalMultiMapJs","BidirectionalMultiMap","_dualKeyMapJs","DualKeyMap","_utils","isFunction","isFunctionALT","_srcClientLivelyJs","lively","_srcExternalLodashLodashJs","_","_srcClientReactiveActiveExpressionAeRegistryJs","_srcClientReactiveActiveExpressionAeDebuggingCacheJs","DebuggingCache","_srcClientPreferencesJs","Preferences","execute","_recorder_","_src_client_reactive_active_expression_rewriting_active_expression_rewriting_js","Object","defineProperty","thisIsVererySecretVariableName","enumerable","configurable","window","__expressionAnalysisMode__","recalculateDependencies","findUp","currentAExpr","Error","withElement","dependencies","Set","isError","evaluateToCurrentValue","e","console","error","message","applyDependencies","top","associateDependency","add","currentDependencies","currentSet","removedDependencies","has","newDependencies","forEach","disassociate","associate","matching","index","findIndex","dependency2","equalish","removed","added","currentVersion","splice","length","logEvent","d","d1","d2","type","isEqual","getOrCreateFor","context","identifier","constructor","_type","isTracked","hooks","updateTracking","hasAExprsForDep","untrack","track","updateFiles","contextIdentifierValue","isGlobal","isGlobalDependency","sourceCodeHook","associateWithHook","dataStructure","Array","getOrCreateForDataStructure","wrappingHook","getOrCreateForProperty","HTMLElement","tagName","endsWith","getOrCreateForElement","instance","addDependency","removeSecondary","removeDependency","undefined","notifyAExprs","aexprs","checkAndNotifyAExprs","isMemberDependency","isLocalDependency","self","getName","toString","name","getAsDependencyDescription","object","property","_depsToAExprs","remove","disconnectAllForAExpr","deps","removeAllLeftFor","hasLeft","from","getRightsFor","hasRight","getLeftsFor","hasDepsForAExpr","getAllLeft","getDependency","equals","other","isArray","getCurrentVersion","getValue","identifer","WeakMap","installed","locationPromises","addLocation","addToMember","l","resolved","delete","informationString","notifyDependencies","debugging","findRegistrationLocation","install","uninstall","monitorProperties","getPrototypeDescriptors","proto","prototype","descriptors","getOwnPropertyDescriptors","entries","key","desc","wrapProperty","descriptor","after","assign","apply","call","myself","prototypeDescriptors","ignoredDescriptorKeys","addDescriptor","__compareAExprResults__","getOwnPropertyDescriptor","element","_element","o","MutationObserver","mutations","observer","changeHappened","observe","attributes","attributeFilter","attributeOldValue","characterData","characterDataOldValue","childList","subtree","addEventListener","editor","on","_instance","initializeAe","x","isMeta","onChange","strategy","updateDependencies","dispose","disconnectAllFor","asAExpr","isDisabled","supportsDependencies","getDataBindingDependencyKey","isDataBinding","dataBindingDependencyKey","sharedDependenciesWith","otherAExpr","ownDependencies","otherDependencies","own","shared","computeDiff","_aexpr","locals","members","globals","global","cbStack","callbackStack","cbTop","info","resolve","resolvedLoc","parentAE","parentCallback","callback","slice","reverse","evaluationStack","infos","stackItem","sort","a","b","id","checkAndNotify","stack","frames","frame","getSourceLocBabelStyle","notificationFrame"],"sources":["active-expression-rewriting.js"],"sourcesContent":["import 'lang';\n\n/*HTML \n<img src=\"https://lively-kernel.org/lively4/lively4-core/media/lively4_logo_smooth_100.png\"></img>'s Implementation of AExprs\nHTML*/\n\nimport { BaseActiveExpression } from 'active-expression';\nimport * as frameBasedAExpr from \"active-expression-frame-based\";\n\nimport Stack from './../utils/stack.js';\nimport CompositeKey from './composite-key.js';\nimport InjectiveMap from './injective-map.js';\nimport BidirectionalMultiMap from './bidirectional-multi-map.js';\nimport DualKeyMap from './dual-key-map.js';\nimport { isFunctionALT as isFunction } from 'utils';\nimport lively from \"src/client/lively.js\";\nimport _ from 'src/external/lodash/lodash.js';\nimport { AExprRegistry } from 'src/client/reactive/active-expression/ae-registry.js';\n\nimport { DebuggingCache } from 'src/client/reactive/active-expression/ae-debugging-cache.js';\nimport Preferences from 'src/client/preferences.js';\n/*MD # Dependency Analysis MD*/\n\nconst analysisStack = new Stack();\n\nlet expressionAnalysisMode = false;\nwindow.__expressionAnalysisMode__ = false;\n\nclass ExpressionAnalysis {\n\n  static recalculateDependencies(aexpr) {\n    if (analysisStack.findUp(({ currentAExpr }) => currentAExpr === aexpr)) {\n      throw new Error('Attempt to recalculate an Active Expression while it is already recalculating dependencies');\n    }\n\n    try {\n      expressionAnalysisMode = true;\n      window.__expressionAnalysisMode__ = expressionAnalysisMode;\n\n      // Do the function execution in ExpressionAnalysisMode\n      analysisStack.withElement({ currentAExpr: aexpr, dependencies: new Set() }, () => {\n        try {\n          const { value, isError } = aexpr.evaluateToCurrentValue();\n        } catch(e) {\n          console.error(\"Error during AE Dependency Calculation\", e.message);\n        }finally {\n          this.applyDependencies();\n        }\n      });\n    } finally {\n      expressionAnalysisMode = !!analysisStack.top();\n      window.__expressionAnalysisMode__ = expressionAnalysisMode;\n    }\n  }\n\n  static associateDependency(dependency) {\n    const { dependencies } = analysisStack.top();\n    dependencies.add(dependency);\n  }\n\n  static applyDependencies() {\n    const { currentAExpr, dependencies } = analysisStack.top();\n    \n    const currentDependencies = currentAExpr.dependencies().all();\n    const currentSet = new Set(currentDependencies);\n    let removedDependencies = currentDependencies\n      .filter(dependency => !dependencies.has(dependency));\n    const newDependencies = [...dependencies]\n      .filter(dependency => !currentSet.has(dependency));\n    \n    removedDependencies\n      .forEach(dependency => DependenciesToAExprs.disassociate(dependency, currentAExpr));\n    dependencies.forEach(dependency => {\n      DependenciesToAExprs.associate(dependency, currentAExpr);\n    });\n    \n    const matching = [];\n    removedDependencies = removedDependencies.filter((dependency) => {\n      const index = newDependencies.findIndex((dependency2 => this.equalish(dependency, dependency2)));\n      if(index >= 0) {\n        matching.push({removed: dependency.getKey(), added: newDependencies[index].getKey()});\n        dependency.currentVersion = newDependencies[index];\n        newDependencies.splice(index, 1);\n        return false;\n      }\n      return true;\n    });\n    if(newDependencies.length > 0 || removedDependencies.length > 0 || matching.length > 0) {\n      currentAExpr.logEvent('dependencies changed', { added: newDependencies.map(d => d.getKey()), removed: removedDependencies.map(d => d.getKey()), matching});\n    }\n  }\n\n  static equalish(d1, d2) {\n    if(d1.type() !== d2.type()) return false;\n    return _.isEqual(d1.getKey(), d2.getKey());\n  }\n  \n}\n\nclass Dependency {\n  static getOrCreateFor(context, identifier, type) {\n    return ContextAndIdentifierToDependencies.getOrCreate(context, identifier, () => new Dependency(context, identifier, type));\n  }\n  \n  // Generates a key for this dependency. This allows this dependency to be found again at a later time, after the originial dependency might have already been deleted.\n  getKey() {\n    return new DependencyKey(this.context, this.identifier);\n  }\n\n  // #TODO: compute and cache isGlobal\n  constructor(context, identifier, type) {\n    this._type = type;\n    // this.classFilePath = context.__classFilePath__;\n    this.isTracked = false;\n    this.hooks = [];\n    this.context = context;\n    this.identifier = identifier;\n  }\n\n  updateTracking() {\n    if (this.isTracked === DependenciesToAExprs.hasAExprsForDep(this)) {\n      return;\n    }\n    if (this.isTracked) {\n      this.untrack();\n    } else {\n      this.track();\n    }\n    for (const hook of this.getHooks()) {\n      hook.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));\n    }\n    for (const ae of DependenciesToAExprs.getAExprsForDep(this)) {\n      if (ae.meta().has(\"location\")) {\n        DebuggingCache.updateFiles([ae.meta().get(\"location\").file]);\n      }\n    }\n  }\n\n  track() {\n    this.isTracked = true;\n\n    const [context, identifier, value] = this.contextIdentifierValue();\n    const isGlobal = this.isGlobalDependency();\n\n    /*HTML <span style=\"font-weight: bold;\">Source Code Hook</span>: for anything <span style=\"color: green; font-weight: bold;\">members or locals</span> HTML*/\n    // always employ the source code hook\n    this.sourceCodeHook = new SourceCodeHook(context, identifier);\n    this.associateWithHook(this.sourceCodeHook);\n\n    /*HTML <span style=\"font-weight: bold;\">Data Structure Hook</span>: for <span style=\"color: green; font-weight: bold;\">Sets, Arrays, Maps</span> HTML*/\n    let dataStructure;\n    if (this._type === 'member') {\n      dataStructure = context;\n    } else if (this._type === 'local') {\n      dataStructure = value;\n    }\n    if (dataStructure instanceof Array || dataStructure instanceof Set || dataStructure instanceof Map) {\n      this.associateWithHook(DataStructureHook.getOrCreateForDataStructure(dataStructure));\n    }\n\n    /*HTML <span style=\"font-weight: bold;\">Wrapping Hook</span>: only for <span style=\"color: green; font-weight: bold;\">\"that\"</span> HTML*/\n    if (isGlobal && identifier === 'that') {\n      const wrappingHook = PropertyWrappingHook.getOrCreateForProperty(identifier);\n      this.associateWithHook(wrappingHook);\n    }\n\n    /*HTML <span style=\"font-weight: bold;\">Mutation Observer Hook</span>: handling <span style=\"color: green; font-weight: bold;\">HTMLElements</span> HTML*/\n    if (this._type === 'member' && context instanceof HTMLElement) {\n      // #HACK #TODO: for now, ignore Knotview if unused for Mutations -> need to better separate those hooks, e.g. do not recursively check ALL attribute change, etc.\n      if (context.tagName !== 'LIVELY-TABLE' && !(context.tagName === 'KNOT-VIEW' && (identifier === 'knot' || identifier === 'knotLabel')) && !context.tagName.endsWith('-rp19')) {\n        // TODO: the member also influences what kind of observer we want to use!\n        this.associateWithHook(MutationObserverHook.getOrCreateForElement(context));\n      }\n    }\n\n    /*HTML <span style=\"font-weight: bold;\">Event-based Change Hook</span>: handling <span style=\"color: green; font-weight: bold;\">HTMLElements</span> HTML*/\n    if (this._type === 'member' && context instanceof HTMLElement) {\n      // #TODO: we have to acknowledge that different properties require different events to listen on\n      //  e.g. code-mirror might have 'value' (so need to listen for 'change') or 'getCursor' (so need to listen for 'cursorActivity')\n      // eventBasedHook.listenFor(identifier);\n      this.associateWithHook(EventBasedHook.getOrCreateForElement(context));\n    }\n\n    /*HTML <span style=\"font-weight: bold;\">Frame-based Change Hook</span>: handling <span style=\"color: green; font-weight: bold;\">Date</span> HTML*/\n    // -    if ((this._type === 'member' && context === Date && identifier === 'now') ||\n    if (isGlobal && identifier === 'Date') {\n      //TODO: This violates the each Hook belongs to one Dependency Rule\n      this.associateWithHook(FrameBasedHook.instance);\n    }\n  }\n\n  associateWithHook(hook) {\n    this.hooks.push(hook);\n    hook.addDependency(this);\n  }\n\n  untrack() {\n    this.isTracked = false;\n    ContextAndIdentifierToDependencies.removeSecondary(this.context, this.identifier);\n\n    // Track affected files\n    for (const hook of this.hooks) {\n      hook.removeDependency(this);\n      hook.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));\n    }\n    for (const ae of DependenciesToAExprs.getAExprsForDep(this)) {\n      if (ae.meta().has(\"location\")) {\n        DebuggingCache.updateFiles([ae.meta().get(\"location\").file]);\n      }\n    }\n  }\n\n  //Todo: Replace\n  contextIdentifierValue() {\n    const value = this.context !== undefined ? this.context[this.identifier] : undefined;\n\n    return [this.context, this.identifier, value];\n  }\n\n  notifyAExprs(location, hook) {\n    const aexprs = DependenciesToAExprs.getAExprsForDep(this);\n    DependencyManager.checkAndNotifyAExprs(aexprs, location, this, hook);\n  }\n\n  type() {\n    if (this.isGlobal()) return \"global\";\n    return this._type;\n  }\n\n  isMemberDependency() {\n    return this._type === 'member' && !this.isGlobal();\n  }\n  isGlobalDependency() {\n    return this._type === 'member' && this.isGlobal();\n  }\n  isLocalDependency() {\n    return this._type === 'local';\n  }\n  isGlobal() {\n    return this.context === self;\n  }\n\n  getHooks() {\n    return this.hooks;\n  }\n\n  getName() {\n    const [context, identifier] = this.contextIdentifierValue();\n\n    if (this.isGlobalDependency()) {\n      return identifier.toString();\n    }\n    return (context ? context.constructor.name : \"\") + \".\" + identifier;\n  }\n\n  getAsDependencyDescription() {\n    const [context, identifier, value] = this.contextIdentifierValue();\n\n    if (this.isMemberDependency()) {\n      return {\n        object: context,\n        property: identifier,\n        value\n      };\n    }\n\n    if (this.isGlobalDependency()) {\n      return {\n        name: identifier,\n        value\n      };\n    }\n\n    if (this.isLocalDependency()) {\n      return {\n        scope: context,\n        name: identifier,\n        value\n      };\n    }\n\n    throw new Error('Dependency is neighter local, member, nor global.');\n  }\n\n}\n\n\nconst DependenciesToAExprs = {\n  _depsToAExprs: new BidirectionalMultiMap(),\n\n  associate(dep, aexpr) {\n    if(this._depsToAExprs.has(dep, aexpr)) return;\n    const location = aexpr.meta().get(\"location\");\n    if (location && location.file) {\n      DebuggingCache.updateFiles([location.file]);\n    } \n    this._depsToAExprs.associate(dep, aexpr);\n    dep.updateTracking();\n\n    // Track affected files\n    for (const hook of dep.getHooks()) {\n      hook.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));\n    }\n  },\n  \n  disassociate(dep, aexpr) {\n    this._depsToAExprs.remove(dep, aexpr);\n    dep.updateTracking();\n    for (const hook of dep.getHooks()) {\n      hook.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));\n    }\n    //TODO: Remove AE from assiciated file, if it was the last dependency?\n  },\n\n  disconnectAllForAExpr(aexpr) {\n    const location = aexpr.meta().get(\"location\");\n    const deps = [...this.getDepsForAExpr(aexpr)];\n    this._depsToAExprs.removeAllLeftFor(aexpr);\n    deps.forEach(dep => {      \n      dep.updateTracking()\n    });\n    if(deps.length > 0) {\n      aexpr.logEvent('dependencies changed', { added: [], removed: deps.map(d => d.getKey()), matching: []});\n    }\n    if (location && location.file) {\n      DebuggingCache.updateFiles([location.file]);\n    }\n\n    // Track affected files\n    for (const dep of deps) {\n      for (const hook of dep.getHooks()) {\n        hook.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));\n      }\n    }\n  },\n\n  getAExprsForDep(dep) {\n    if (!this._depsToAExprs.hasLeft(dep)) return [];\n    return Array.from(this._depsToAExprs.getRightsFor(dep));\n  },\n  getDepsForAExpr(aexpr) {\n    if (!this._depsToAExprs.hasRight(aexpr)) return [];\n    return Array.from(this._depsToAExprs.getLeftsFor(aexpr));\n  },\n\n  hasAExprsForDep(dep) {\n    return this.getAExprsForDep(dep).length >= 1;\n  },\n  hasDepsForAExpr(aexpr) {\n    return this.getDepsForAExpr(aexpr).length >= 1;\n  },\n\n  /*\n   * Removes all associations.\n   */\n  clear() {\n    this._depsToAExprs.clear();\n    this._depsToAExprs.getAllLeft().forEach(dep => dep.updateTracking());\n  }\n};\n\n\nexport async function getAEDataForFile(url) {\n  let result = new Map();\n  for (const ae of AExprRegistry.getLocationCache().getAEsInFile(url)) {\n    result.set(ae, getDependenciesAndHooksForAE(ae));\n  }\n  for (const hook of await getHooksInFile(url)) {\n    for(const dependency of hook.getDependencies()) {\n      for (const ae of DependenciesToAExprs.getAExprsForDep(dependency)) {\n        const location = ae.meta().get(\"location\");\n        if(!location) continue; // maybe if the ae has no location, we actually want to add it here?\n        const file = location.file;\n        // if the AE is also in this file, we already covered it with the previous loop\n        if (!file.includes(url)) {\n          result.getOrCreate(ae, () => []).push({ hook, dependency: dependency.getKey()})\n        }\n      }\n    }\n  }\n  return result;\n}\n\nfunction getDependenciesAndHooksForAE(ae) {\n  const result = [];\n  for (const dependency of DependenciesToAExprs.getDepsForAExpr(ae)) {\n    for (const hook of dependency.getHooks()) {\n      result.push({ hook, dependency: dependency.getKey()});\n    }\n  }\n  return result;\n}\n\nexport async function getHooksInFile(url) {\n  const allHooks = ContextAndIdentifierToDependencies.allValues().flatMap(dep => dep.getHooks());\n  const hooksWithLocations = await Promise.all(allHooks.map(hook => {\n    return hook.getLocations().then(locations => {\n      return { hook, locations };\n    });\n  }));\n  return hooksWithLocations.filter(({ hook, locations }) => {\n    return locations.some(loc => loc && loc.file && loc.file.includes(url));\n  }).map(({ hook, locations }) => hook);\n}\n\n\nexport class DependencyKey {\n  constructor(context, identifier) {\n    this.context = context;\n    this.identifier = identifier;\n  }\n  \n  getDependency() {    \n    return ContextAndIdentifierToDependencies.get(this.context, this.identifier);\n  }\n  \n  equals(other) {\n    if(other.context === this.context) {\n      // Handle weird edgecase to deal with array[0] being the same as array[\"0\"]\n      if(Array.isArray(this.context)) {\n        if(typeof this.identifier !== typeof other.identifier) {\n          if(typeof this.identifier === \"string\") {\n            return this.identifier === (other.identifier + \"\");\n          }\n          if(typeof other.identifier === \"string\") {\n            return other.identifier === (this.identifier + \"\");\n          }\n        }\n      }\n      return other.identifier === this.identifier;\n    }\n    return false;\n  }\n  \n  getCurrentVersion() {\n    if(!this.currentVersion) {\n      return this;\n    } else {\n      this.currentVersion = this.currentVersion.getCurrentVersion();\n    }\n    return this.currentVersion;\n  }\n  \n  getValue() {\n    if(this.context instanceof Map) {\n      return this.context.get(this.identifier);      \n    } else if (this.context instanceof Set) {\n      return [...this.context][this.identifer];\n    } else {\n      return this.context[this.identifier];\n    }\n  }\n}\n\n// 1. Two step map with (obj|scope) as primary key and (prop|name) as secondary key mapping to the dependencies\nconst ContextAndIdentifierToDependencies = new DualKeyMap();\n\n//const ContextToIdentifier = new MultiMap();\n//const IdentifierToDependency = new InjectiveMap();\n// 1. (obj, prop) or (scope, name) -> ContextAndIdentifierCompositeKey\n// - given via ContextAndIdentifierCompositeKey\n\n// 2.1. ContextAndIdentifierCompositeKey 1<->1 Dependency\n// - CompositeKeyToDependencies\n//const CompositeKeyToDependencies = new InjectiveMap();\n// 2.2. Dependency *<->* AExpr\n// - DependenciesToAExprs\n\n/** Source Code Hooks */\n// 3.1. ContextAndIdentifierCompositeKey 1<->1 SourceCodeHook\n// - CompositeKeyToSourceCodeHook\n//const CompositeKeyToSourceCodeHook = new InjectiveMap();\n// 3.2. SourceCodeHook *<->* Dependency\n// - HooksToDependencies\n\n/** Data Structure Hooks */\n// 4.1 DataStructureHookByDataStructure\nconst DataStructureHookByDataStructure = new WeakMap(); // WeakMap<(Set/Array/Map), DataStructureHook>\n/** Wrapping Hooks */\n// 4.2 PropertyWrappingHookByProperty\nconst PropertyWrappingHookByProperty = new Map(); // Map<(String/Symbol), PropertyWrappingHook>\n/** Mutation Observer Hooks */\n// 4.3 DataStructureHookByDataStructure\nconst MutationObserverHookByHTMLElement = new WeakMap(); // WeakMap<HTMLElement, MutationObserverHook>\n/** XXX */\n// 4.4 XXX\nconst EventBasedHookByHTMLElement = new WeakMap(); // WeakMap<HTMLElement, EventBasedHook>\n\nclass Hook {\n  constructor() {\n    this.dependencies = new Set();\n    this.installed = false;\n    this.locations = [];\n    this.locationPromises = new Set();\n  }\n\n  addLocation(location) {\n    if (!location) return;\n    const addToMember = (l) => {\n      if (l && !this.locations.some(loc => _.isEqual(loc, l))) {\n        this.locations.push(l);\n      }\n    };\n    if(location.then) {\n      this.locationPromises.add(location);\n      location.then((resolved) => {\n        this.locationPromises.delete(location);\n        addToMember(resolved);\n      });\n    } else {\n      addToMember(location);\n    }\n  }\n  \n  getDependencies() {\n    return this.dependencies;\n  }\n\n  addDependency(dependency) {\n    this.dependencies.add(dependency);\n  }\n\n  removeDependency(dependency) {\n    this.dependencies.delete(dependency);\n  }\n\n  async getLocations() {\n    await Promise.all(this.locationPromises);\n    return this.locations;\n  }\n\n  informationString() {\n    return \"Generic Hook\";\n  }\n\n  notifyDependencies(location) {\n    const debugging = Preferences.get(\"EnableAEDebugging\");\n    let loc;\n    if(debugging) {\n      loc = location || TracingHandler.findRegistrationLocation();\n      this.addLocation(loc);\n\n      this.getLocations().then(locations => DebuggingCache.updateFiles(locations.map(loc => loc.file)));      \n    }\n    for(const dep of [...this.dependencies]) {\n      if(debugging) {        \n        for (const ae of DependenciesToAExprs.getAExprsForDep(dep)) {\n          if (ae.meta().has(\"location\")) {\n            DebuggingCache.updateFiles([ae.meta().get(\"location\").file]);\n          }\n        }\n      }\n      dep.notifyAExprs(loc, this);\n    }\n  }\n}\n\nclass SourceCodeHook extends Hook {\n\n  informationString() {\n    return \"SourceCodeHook: \" + this.context + \".\" + this.identifier;\n  }\n\n  constructor(context, identifier) {\n    super();\n\n    this.context = context;\n    this.identifier = identifier;\n  }\n\n  install() {}\n  uninstall() {}\n}\n\nclass DataStructureHook extends Hook {\n  static getOrCreateForDataStructure(dataStructure) {\n    return DataStructureHookByDataStructure.getOrCreate(dataStructure, () => new DataStructureHook(dataStructure));\n  }\n  constructor(dataStructure) {\n    super();\n    this.monitorProperties(dataStructure);\n\n    // set.add = function add(...args) {\n    //   const result = Set.prototype.add.call(this, ...args);\n    //   hook.notifyDependencies();\n    //   return result;\n    // }\n  }\n\n  getPrototypeDescriptors(obj) {\n    const proto = obj.constructor.prototype;\n\n    const descriptors = Object.getOwnPropertyDescriptors(proto);\n    return Object.entries(descriptors).map(([key, desc]) => (desc.key = key, desc));\n  }\n\n  wrapProperty(obj, descriptor, after) {\n    Object.defineProperty(obj, descriptor.key, Object.assign({}, descriptor, {\n      value(...args) {\n        try {\n          return descriptor.value.apply(this, args);\n        } finally {\n          after.call(this, ...args);\n        }\n      }\n    }));\n  }\n\n  monitorProperties(obj) {\n    const myself = this;\n    const prototypeDescriptors = this.getPrototypeDescriptors(obj);\n    Object.entries(Object.getOwnPropertyDescriptors(obj)); // unused -> need for array\n\n    // the property constructor needs to be a constructor if called (as in cloneDeep in lodash);\n    // We can also leave out functions that do not change the state\n    const ignoredDescriptorKeys = new Set([\"at\", \"get\", \"constructor\", \"concat\", \"entries\", \"every\", \"filter\", \"find\", \"findIndex\", \"forEach\", \"includes\", \"indexOf\", \"join\", \"keys\", \"lastIndexOf\", \"reduce\", \"reduceRight\", \"slice\", \"toString\", \"toLocaleString\", \"values\"]);\n    \n    prototypeDescriptors\n      .filter(descriptor => !ignoredDescriptorKeys.has(descriptor.key))\n      .forEach(addDescriptor => {\n      // var addDescriptor = prototypeDescriptors.find(d => d.key === 'add')\n      if (addDescriptor.value) {\n        if (isFunction(addDescriptor.value)) {\n          this.wrapProperty(obj, addDescriptor, function () {\n            // #HACK #TODO we need an `withoutLayer` equivalent here\n            if (window.__compareAExprResults__) {\n              return;\n            }\n\n            this; // references the modified container\n            myself.notifyDependencies();\n          });\n        } else {\n          // console.warn(`Property ${addDescriptor.key} has a value that is not a function, but ${addDescriptor.value}.`)\n        }\n      } else {\n          // console.warn(`Property ${addDescriptor.key} has no value.`)\n        }\n    });\n  }\n\n  informationString() {\n    return \"DataStructureHook\";\n  }\n}\n\nclass PropertyWrappingHook extends Hook {\n  static getOrCreateForProperty(property) {\n    return PropertyWrappingHookByProperty.getOrCreate(property, () => new PropertyWrappingHook(property));\n  }\n\n  constructor(property) {\n    super();\n    this.property = property;\n    this.value = self[property];\n    const { configurable, enumerable } = Object.getOwnPropertyDescriptor(self, property);\n\n    // #TODO: keep old property accessors if present (otherwise, we do not interact with COP and ourselves, i.e. other property wrappers)\n    Object.defineProperty(self, property, {\n      configurable,\n      enumerable,\n\n      get: () => this.value,\n      set: value => {\n        const result = this.value = value;\n        this.notifyDependencies();\n        return result;\n      }\n    });\n  }\n\n  informationString() {\n    return \"PropertyWrappingHook: \" + this.property;\n  }\n}\n\nclass MutationObserverHook extends Hook {\n  static getOrCreateForElement(element) {\n    return MutationObserverHookByHTMLElement.getOrCreate(element, () => new MutationObserverHook(element));\n  }\n  constructor(element) {\n    super();\n\n    this._element = element;\n\n    const o = new MutationObserver((mutations, observer) => {\n      // const mutationRecords = o.takeRecords();\n      // lively.notify(`mutation on ${this._element.tagName}; ${mutations\n      //               .filter(m => m.type === \"attributes\")\n      //               .map(m => m.attributeName).join(', ')}.`)\n      this.changeHappened();\n      // mutations.forEach(mutation => {\n      //   if(mutation.type == \"attributes\") {\n      //     lively.notify(\n      //       `${mutation.oldValue} -> ${mutation.target.getAttribute(mutation.attributeName)}`,\n      //       `attribute: ${mutation.attributeName}`\n      //     );\n      //   }\n      //   if(mutation.type == \"characterData\") {\n      //     lively.notify(\n      //       `${mutation.oldValue}}`,\n      //       `characterData`\n      //     );\n      //   }\n      //   if(mutation.type == \"childList\") {\n      //     lively.success(\n      //       `${mutation.addedNodes.length} added, ${mutation.removedNodes.length} removed`,\n      //       `childList`\n      //     );\n      //   }\n      // });\n    });\n\n    o.observe(this._element, {\n      attributes: true,\n      attributeFilter: undefined,\n      attributeOldValue: true,\n\n      characterData: true,\n      characterDataOldValue: true,\n\n      childList: true,\n\n      subtree: true\n    });\n\n    // o.disconnect();\n  }\n\n  changeHappened() {\n    this.notifyDependencies();\n  }\n\n  informationString() {\n    return \"MutationObserverHook: \" + this._element;\n  }\n}\n\nclass EventBasedHook extends Hook {\n  static getOrCreateForElement(element) {\n    return EventBasedHookByHTMLElement.getOrCreate(element, () => new EventBasedHook(element));\n  }\n  \n  constructor(element) {\n    super();\n\n    this._element = element;\n\n    // #TODO: when the type of an input element changes, 'value' or 'checked' become unavailable\n    if (this._element.tagName === 'INPUT' || this._element.tagName === 'TEXTAREA') {\n      this._element.addEventListener('input', () => {\n        this.changeHappened();\n      });\n    } else if (this._element.tagName === 'LIVELY-CODE-MIRROR') {\n      this._element.editor.on('changes', () => {\n        this.changeHappened();\n      });\n    }\n  }\n\n  changeHappened() {\n    this.notifyDependencies();\n  }\n\n  informationString() {\n    return \"EventBasedHook: \" + this._element;\n  }\n}\n\nclass FrameBasedHook extends Hook {\n  static get instance() {\n    if (!this._instance) {\n      this._instance = new FrameBasedHook();\n      //Initialization is split to avoid endless recursion\n      this._instance.initializeAe();\n    }\n    return this._instance;\n  }\n\n  initializeAe() {\n    let x = 0;\n    // #TODO: caution, we currently use a side-effect function! How can we mitigate this? E.g. using `Date.now()` as expression\n    let ae = frameBasedAExpr.aexpr(() => x++);\n    ae.isMeta(true);\n    ae.onChange(() => {\n      this.changeHappened();\n    });\n  }\n\n  changeHappened() {\n    this.notifyDependencies();\n  }\n\n  informationString() {\n    return \"FrameBasedHook\";\n  }\n}\n\nexport class RewritingActiveExpression extends BaseActiveExpression {\n  constructor(func, ...args) {\n    super(func, ...args);\n    this.meta({ strategy: 'Rewriting' });\n    this.updateDependencies();\n  }\n\n  dispose() {\n    DependencyManager.disconnectAllFor(this);\n    super.dispose();\n  }\n\n  // #TODO: why is this defined here, and not in the superclass?\n  asAExpr() {\n    return this;\n  }\n\n  updateDependencies() {\n    if (this.isDisabled()) {\n      return;\n    }\n\n    ExpressionAnalysis.recalculateDependencies(this);\n  }\n  supportsDependencies() {\n    return true;\n  }\n\n  dependencies() {\n    return new DependencyAPI(this);\n  }\n  \n  getDataBindingDependencyKey() {\n    if(!this.isDataBinding()) return undefined;\n    \n    if(!this.dataBindingDependencyKey) {\n      const {context, identifier} = this.meta().get('conceptInfo');\n      this.dataBindingDependencyKey = new DependencyKey(context, identifier);\n    }\n    return this.dataBindingDependencyKey;\n  }\n\n  sharedDependenciesWith(otherAExpr) {\n    const ownDependencies = this.dependencies().all();\n    const otherDependencies = otherAExpr.dependencies().all();\n    const [own, shared, other] = ownDependencies.computeDiff(otherDependencies);\n    return shared;\n  }\n}\n\nclass DependencyAPI {\n  constructor(aexpr) {\n    this._aexpr = aexpr;\n  }\n\n  getDependencies() {\n    return DependenciesToAExprs.getDepsForAExpr(this._aexpr);\n  }\n\n  all() {\n    return Array.from(this.getDependencies());\n  }\n\n  locals() {\n    return this.getDependencies().filter(dependency => dependency.isLocalDependency()).map(dependency => dependency.getAsDependencyDescription());\n  }\n\n  members() {\n    return this.getDependencies().filter(dependency => dependency.isMemberDependency()).map(dependency => dependency.getAsDependencyDescription());\n  }\n\n  globals() {\n    return this.getDependencies().filter(dependency => dependency.isGlobalDependency()).map(dependency => dependency.getAsDependencyDescription());\n  }\n}\n\nexport function aexpr(func, ...args) {\n  return new RewritingActiveExpression(func, ...args);\n}\n\nconst globalRef = typeof window !== \"undefined\" ? window : // browser tab\ntypeof self !== \"undefined\" ? self : // web worker\nglobal; // node.js\n\nconst notificationQueue = [];\nclass DependencyManager {\n  // #TODO, #REFACTOR: extract into own method; remove from this class\n  static disconnectAllFor(aexpr) {\n    DependenciesToAExprs.disconnectAllForAExpr(aexpr);\n  }\n\n  // #TODO, #REFACTOR: extract into configurable dispatcher class\n  static checkAndNotifyAExprs(aexprs, location, dependency, hook) {\n    const cbStack = AExprRegistry.callbackStack;\n    const cbTop = cbStack[cbStack.length - 1];\n    const info = Promise.resolve(location).then((resolvedLoc) => {return {location: resolvedLoc, dependency: dependency.getKey(), hook, parentAE: cbTop && cbTop.ae, parentCallback: cbTop && cbTop.callback }});\n    aexprs.slice().reverse().forEach(ae => {\n      if(new Set(AExprRegistry.evaluationStack).has(ae)) return;\n      const infos = [info];\n      const index = notificationQueue.findIndex((stackItem) => stackItem.ae === ae);\n      if (index > -1) {\n        infos.push(...notificationQueue[index].infos);\n        notificationQueue.splice(index, 1);\n      }\n      //#ToDo: Insert in order of AE creation, to guarantee a topologically sorted graph for Signals. Signals before everything else?\n      notificationQueue.push({ae, infos});\n      notificationQueue.sort((a, b) => {      \n        if (a.ae.isDataBinding() !== b.ae.isDataBinding()) {\n          return b.ae.isDataBinding() ? 1 : -1;\n        } else {\n          return a.ae.id > b.ae.id ? 1 : -1;\n        }\n      });\n    });\n    \n    while(notificationQueue.length > 0) {\n      const {ae, infos} = notificationQueue[0];\n      //if(!aexprs.includes(ae)) return;\n      notificationQueue.splice(0, 1);\n      if(new Set(AExprRegistry.evaluationStack).has(ae)) continue;\n      ae.updateDependencies();\n      ae.checkAndNotify(infos);\n    }\n  }\n\n  /**\n   * **************************************************************\n   * ********************** associate *****************************\n   * **************************************************************\n   */\n  static associateMember(obj, prop) {\n    const dependency = Dependency.getOrCreateFor(obj, prop, 'member');\n    ExpressionAnalysis.associateDependency(dependency);\n  }\n\n  static associateGlobal(globalName) {\n    const dependency = Dependency.getOrCreateFor(globalRef, globalName, 'member');\n    ExpressionAnalysis.associateDependency(dependency);\n  }\n\n  static associateLocal(scope, varName) {\n    const dependency = Dependency.getOrCreateFor(scope, varName, 'local');\n    ExpressionAnalysis.associateDependency(dependency);\n  }\n\n}\n\nclass TracingHandler {\n\n  /**\n   * **************************************************************\n   * ********************** update ********************************\n   * **************************************************************\n   */\n  static memberUpdated(obj, prop, location) {\n    const dependency = ContextAndIdentifierToDependencies.get(obj, prop);\n    if (!dependency || !dependency.sourceCodeHook) return;\n    dependency.sourceCodeHook.notifyDependencies(location);\n  }\n\n  static globalUpdated(globalName, location) {\n    const dependency = ContextAndIdentifierToDependencies.get(globalRef, globalName);\n    if (!dependency || !dependency.sourceCodeHook) return;\n    dependency.sourceCodeHook.notifyDependencies(location);\n  }\n\n  static localUpdated(scope, varName, location) {\n    const dependency = ContextAndIdentifierToDependencies.get(scope, varName);\n    if (!dependency || !dependency.sourceCodeHook) return;\n    dependency.sourceCodeHook.notifyDependencies(location);\n  }\n\n  static async findRegistrationLocation() {\n    if (lively === undefined) return undefined;\n    const stack = lively.stack();\n    const frames = stack.frames;\n\n    for (let frame of frames.slice()) {\n      if (!frame.file.includes(\"active-expression\") && !frame.file.includes(\"ContextJS\") && !frame.file.includes(\"<anonymous>\")) {\n        return await frame.getSourceLocBabelStyle();\n      }\n    }\n\n    const notificationFrame = frames.findIndex(frame => frame.func.includes(\".notifyDependencies\"));\n    if(notificationFrame >= 0 && notificationFrame < frames.length - 1) {      \n      return await frames[notificationFrame + 1].getSourceLocBabelStyle();\n    }\n    // lively.warn(\"findRegistrationLocation problem\", stack);\n    return frames[0];\n  }\n\n}\n\n/*\n * Disconnects all associations between active expressions and object properties\n * As a result no currently enable active expression will be notified again,\n * effectively removing them from the system.\n *\n * #TODO: Caution, this might break with some semantics, if we still have references to an aexpr!\n */\nexport function reset() {\n  ContextAndIdentifierToDependencies.clear();\n  DependenciesToAExprs.clear();\n}\n\n/*MD # Source Code Point Cuts MD*/\n/**\n * (C)RUD for member attributes\n */\nexport function traceMember(obj, prop) {\n  if (expressionAnalysisMode) {\n    DependencyManager.associateMember(obj, prop);\n  }\n}\n\nexport function getMember(obj, prop) {\n  if (expressionAnalysisMode) {\n    DependencyManager.associateMember(obj, prop);\n  }\n  const result = obj[prop];\n  return result;\n}\n\nexport function getAndCallMember(obj, prop, args = []) {\n  if (expressionAnalysisMode) {\n    DependencyManager.associateMember(obj, prop);\n  }\n  const result = obj[prop](...args);\n  return result;\n}\n\nexport function updateMember(obj, prop, location) {\n  TracingHandler.memberUpdated(obj, prop, location);  \n}\n\nexport function setMember(obj, prop, val, location) {\n  const result = obj[prop] = val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberAddition(obj, prop, val, location) {\n  const result = obj[prop] += val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberSubtraction(obj, prop, val, location) {\n  const result = obj[prop] -= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberMultiplication(obj, prop, val, location) {\n  const result = obj[prop] *= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberDivision(obj, prop, val, location) {\n  const result = obj[prop] /= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberRemainder(obj, prop, val, location) {\n  const result = obj[prop] %= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberExponentiation(obj, prop, val, location) {\n  const result = obj[prop] **= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberLeftShift(obj, prop, val, location) {\n  const result = obj[prop] <<= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberRightShift(obj, prop, val, location) {\n  const result = obj[prop] >>= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberUnsignedRightShift(obj, prop, val, location) {\n  const result = obj[prop] >>>= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberBitwiseAND(obj, prop, val, location) {\n  const result = obj[prop] &= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberBitwiseXOR(obj, prop, val, location) {\n  const result = obj[prop] ^= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function setMemberBitwiseOR(obj, prop, val, location) {\n  const result = obj[prop] |= val;\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function deleteMember(obj, prop, location) {\n  const result = delete obj[prop];\n  TracingHandler.memberUpdated(obj, prop, location);\n  return result;\n}\n\nexport function getLocal(scope, varName, value) {\n  if (expressionAnalysisMode) {\n    scope[varName] = value;\n    DependencyManager.associateLocal(scope, varName);\n  }\n}\n\nexport function setLocal(scope, varName, value, location) {\n  scope[varName] = value;\n  TracingHandler.localUpdated(scope, varName, location);\n}\n\nexport function getGlobal(globalName) {\n  if (expressionAnalysisMode) {\n    DependencyManager.associateGlobal(globalName);\n  }\n}\n\nexport function setGlobal(globalName, location) {\n  TracingHandler.globalUpdated(globalName, location);\n}\n\nexport default aexpr;"],"mappings":"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"}