This change implements recursive closure captures. This permits cases like the following { function f() { g(); } function g() { f(); } } and the slightly more useful class C { this.x = 42; this.f = () => x; } To do this requires caching the environment objects and permitting cycles in the resulting environment graph. The closure emitter code already knows how to handle this. In addition, we must mark captures of `this` as free variables. This resolves pulumi/pulumi-fabric#333. |
||
---|---|---|
.. | ||
langhost | ||
closure.spec.ts | ||
computed.spec.ts |