fix(ngcc): support inline export declarations in UMD files (#38959)

Previously, any declarations that were defined "inline" were not
recognised by the `UmdReflectionHost`.

For example, the following syntax was completely unrecognized:

```ts
var Foo_1;
exports.Foo = Foo_1 = (function() {
  function Foo() {}
  return Foo;
})();
exports.Foo = Foo_1 = __decorate(SomeDecorator, Foo);
```

Such inline classes were ignored and not processed by ngcc.

This lack of processing led to failures in Ivy applications that relied
on UMD formats of libraries such as `syncfusion/ej2-angular-ui-components`.

Now all known inline UMD exports are recognized and processed accordingly.

Fixes #38947

PR Close #38959
This commit is contained in:
Pete Bacon Darwin
2020-09-29 20:58:57 +01:00
committed by atscott
parent 47eab61cad
commit f4fee86f77
3 changed files with 2565 additions and 2273 deletions

File diff suppressed because it is too large Load Diff