{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-stephelm/src/client/dependency-graph/examples.js"],"names":["x","foo","bar","baz","shouldBeOdd","parityHelper","checkParity","y","random","obj","obj1","obj2"],"mappings":"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","file":"examples.js","sourcesContent":["\"use strict\"\n\"enable aexpr\"\n\n/*MD ## Bindings MD*/\n/*MD ### Immediate MD*/\n{\n  let x = 0;\n\n  aexpr(() => x);\n\n  x = 1; // <--\n}\n\n/*MD ### Function result indirection MD*/\n{\n  let x = 0;\n  \n  function foo() {\n    return x;\n  }\n\n  aexpr(() => foo());\n  \n  x = 1; // <--\n}\n\n/*MD ### Function result indirection 2 MD*/\n{\n  let x = 0;\n\n  function bar() {\n    return x;\n  }\n\n  function foo() {\n    return bar();\n  }\n\n  aexpr(() => foo());\n  \n  x = 1; // <--\n}\n\n\n/*MD ### Function result indirection 3 MD*/\n{\n  let x = 0;\n\n  function baz() {\n    return x;\n  }\n\n  function bar() {\n    return baz();\n  }\n\n  function foo() {\n    return bar();\n  }\n\n  aexpr(() => foo());\n\n  x = 1; // <--\n}\n\n/*MD ### Circular function calls MD*/\n{\n  let shouldBeOdd = false;\n\n  function parityHelper(x) {\n    if (x === 0) return !shouldBeOdd;\n    if (x === 1) return shouldBeOdd;\n    return checkParity(x - 1);\n  }\n\n  function checkParity(x) {\n    return parityHelper(x - 1);\n  }\n\n  aexpr(() => checkParity(10));\n  \n  shouldBeOdd = true; // <--\n}\n\n/*MD ### Variables referencing functions (uncalled) MD*/\n{\n  let x = 0;\n  let y = () => x * x;\n\n  aexpr(() => y);\n  \n  x = 1;\n  y = 1; // <--\n}\n\n/*MD ### Variables referencing functions (called) 1 MD*/\n{\n  let x = 0;\n  let y = () => x * x;\n\n  aexpr(() => y());\n  \n  x = 1; // <--\n  y = () => x * x * x; // <--\n}\n\n/*MD ### Variables referencing functions (called) 2 MD*/\n{\n  let x = 0;\n  let y = function foo() {return x}\n\n  aexpr(() => y());\n  \n  x = 1; // <--\n  y = () => x * x * x; // <--\n}\n\n/*MD ### Unclear function resolution MD*/\n{\n  let x = 0;\n  let y = 0;\n  let foo = Math.random() > 0.5\n    ? function() { return x }\n    : function() { return y };\n  \n  aexpr(() => foo());\n  \n  x = 1; // <--\n  y = 1; // <--\n}\n\n/*MD ## Members MD*/\n/*MD ### Immediate MD*/\n{\n  let obj = { x: 0 };\n\n  aexpr(() => obj.x);\n\n  obj.x = 1; // <--\n}\n\n/*MD ### Function result indirection MD*/\n{\n  let obj = { x: 0 };\n\n  function foo() {\n    return obj.x;\n  }\n\n  aexpr(() => foo());\n\n  obj.x = 1; // <--\n}\n\n/*MD ### Function result indirection 2 MD*/\n{\n  let obj = { x: 0 };\n\n  function bar() {\n    return obj.x;\n  }\n\n  function foo() {\n    return bar();\n  }\n\n  aexpr(() => foo());\n  \n  obj.x = 1; // <--\n}\n\n\n/*MD ### Function result indirection 3 MD*/\n{\n  let obj = { x: 0 };\n\n  function baz() {\n    return obj.x;\n  }\n\n  function bar() {\n    return baz();\n  }\n\n  function foo() {\n    return bar();\n  }\n\n  aexpr(() => foo());\n\n  obj.x = 1; // <--\n}\n\n/*MD ### Circular function calls MD*/\n{\n  let obj = { shouldBeOdd: false };\n\n  function parityHelper(x) {\n    if (x === 0) return !obj.shouldBeOdd;\n    if (x === 1) return obj.shouldBeOdd;\n    return checkParity(x - 1);\n  }\n\n  function checkParity(x) {\n    return parityHelper(x - 1);\n  }\n\n  aexpr(() => checkParity(10));\n  \n  obj.shouldBeOdd = true; // <--\n}\n\n/*MD ### Members referencing functions (uncalled) MD*/\n{\n  let x = 0;\n  let obj = {\n    y: () => x * x,\n  }\n\n  aexpr(() => obj.y);\n  \n  x = 1;\n  obj.y = 1; // <--\n}\n\n/*MD ### Variables referencing functions (called) MD*/\n{\n  let x = 0;\n  let obj = {\n    y: () => x * x,\n  }\n\n  aexpr(() => obj.y());\n  \n  x = 1; // <--\n  obj.y = () => x * x * x; // <--\n}\n\n/*MD ### Member changes because object changes MD*/\n{\n  let obj = {\n    x: 0,\n  }\n\n  aexpr(() => obj.x);\n  \n  obj = { x: 1 }; // <--\n}\n\n/*MD ### Unclear function resolution MD*/\n{\n  let obj = {\n    x: 0,\n    y: 0,\n  }\n  \n  let foo = Math.random() > 0.5\n    ? function() { return obj.x }\n    : function() { return obj.y };\n  \n  aexpr(() => foo());\n  \n  obj.x = 1; // <--\n  obj.y = 1; // <--\n}\n\n/*MD ### Unclear object resolution MD*/\n{\n  let obj1 = { x: 0 };\n  let obj2 = { x: 0 };\n  let obj = Math.random() > 0.5 ? obj1 : obj2;\n  \n  aexpr(() => obj.x);\n\n  obj1.x = 1; // <--\n  obj2.x = 1; // <--\n}\n\n/*MD ### Redefined objects MD*/\n{\n  let obj = { x: 0 };\n  \n  aexpr(() => obj.x);\n\n  obj = { x: 0 }; // <--\n  obj.x = 1; // <--\n}\n\n/*MD ## Classes MD*/\n\n\n/*MD ## Misc MD*/\n/*MD ### Irrelevance to expression result MD*/\n{\n  let x = 0;\n  let y = 0;\n\n  function bar() {\n    return y;\n  }\n\n  function foo() {\n    bar(y);\n    return x;\n  }\n\n  aexpr(() => foo());\n  \n  x = 1; // <--\n  y = 1;\n}\n\n\n"]}