angular/packages/compiler-cli
Pete Bacon Darwin 58cdc22791 fix(ngcc): handle UMD factories that do not use all params (#34660)
In some cases, where a module imports a dependency
but does not actually use it, UMD bundlers may remove
the dependency parameter from the UMD factory function
definition.

For example:

```
import * as x from 'x';
import * as z from 'z';
export const y = x;
```

may result in a UMD bundle including:

```
(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ?
        factory(exports, require('x'), require('z')) :
    typeof define === 'function' && define.amd ?
        define(['exports', 'x', 'z'], factory) :
    (global = global || self, factory(global.myBundle = {}, global.x));
}(this, (function (exports, x) { 'use strict';
...
})));
```

Note that while the `z` dependency is provide in the call,
the factory itself only accepts `exports` and `x` as parameters.

Previously ngcc appended new dependencies to the end of the factory
function, but this breaks in the above scenario. Now the new
dependencies are prefixed at the front of parameters/arguments
already in place.

Fixes #34653

PR Close #34660
2020-01-08 15:07:36 -08:00
..
integrationtest refactor(compiler-cli): remove bogus packages/compiler-cli/integrationtest/benchmarks/ (#34142) 2019-12-02 11:22:45 -08:00
ngcc fix(ngcc): handle UMD factories that do not use all params (#34660) 2020-01-08 15:07:36 -08:00
src fix(ngcc): don't crash if symbol has no declarations (#34658) 2020-01-08 15:07:10 -08:00
test fix(ivy): Ensure ngProjectAs marker name appears at even attribute index (#34617) 2020-01-07 10:51:46 -08:00
BUILD.bazel refactor(ivy): include generic type for ModuleWithProviders in .d.ts files (#34235) 2019-12-10 16:34:47 -08:00
index.ts refactor(compiler-cli): Move diagnostics files to language service (#33809) 2019-11-14 09:29:07 -08:00
package.json build: set up all packages to publish via wombot proxy (#33747) 2019-11-13 11:34:33 -08:00
tsconfig-build.json build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
tsconfig.json perf(ivy): ngcc - only find dependencies when targeting a single entry-point (#30525) 2019-07-09 09:40:46 -07:00