6f4423895c
This change moves us away from using JavaScript RTTI, by way of `instanceof`, for built-in Pulumi types. If we use `instanceof`, then the same logical type loaded from separate copies of the SDK package -- as will happen in SxS scenarios -- are considered different. This isn't actually what we want. The solution is simple: implement our own quasi-RTTI solution, using __pulumi* properties and manual as* and is* functions. Note that we could have skipped the as* and is* functions, but I found that they led to slightly easier to read code. There is one strange thing in here, which I spoke to @CyrusNajmabadi about: SerializedOutput<T>, because it implements Output<T> as an _interface_, did not previously masquerade as an actual Output<T>. In other words, `instanceof` would have returned false, and indeed a few important properties (like promise) are missing. This change preserves that behavior, although I'll admit that this is slightly odd. I suspect we'll want to revisit this as part of https://github.com/pulumi/pulumi/issues/1074. Fixes https://github.com/pulumi/pulumi/issues/1203. |
||
---|---|---|
.. | ||
langhost | ||
closure.spec.ts | ||
props.spec.ts |