function compute() {} function mutate() {} function foo() {} function Foo() {} /** * Should produce 3 scopes: * * a: inputs=props.a & props.c; outputs=a * a = compute(props.a); * if (props.c) * mutate(a) * b: inputs=props.b & props.c; outputs=b * b = compute(props.b); * if (props.c) * mutate(b) * return: inputs=a, b outputs=return * return = */ function Component(props) { const a = compute(props.a); const b = compute(props.b); if (props.c) { mutate(a); mutate(b); } return ; }