300c2fec9c
Commit 24b2f1da2b introduced an `NgCompiler` which operates on a `ts.Program` independently of the `NgtscProgram`. The NgCompiler got its `IncrementalDriver` (for incremental reuse of Angular compilation results) by looking at a monkey-patched property on the `ts.Program`. This monkey-patching operation causes problems with the Angular indexer (specifically, it seems to cause the indexer to retain too much of prior programs, resulting in OOM issues). To work around this, `IncrementalDriver` reuse is now handled by a dedicated `IncrementalBuildStrategy`. One implementation of this interface is used by the `NgtscProgram` to perform the old-style reuse, relying on the previous instance of `NgtscProgram` instead of monkey-patching. Only for `NgTscPlugin` is the monkey-patching strategy used, as the plugin sits behind an interface which only provides access to the `ts.Program`, not a prior instance of the plugin. PR Close #37339