2017-11-18 15:26:33 -05:00
{
2018-01-05 19:15:14 -05:00
"cli-hello-world" : {
"master" : {
"uncompressed" : {
2021-04-12 03:16:27 -04:00
"runtime-es2015" : 1170 ,
2021-03-30 05:26:54 -04:00
"main-es2015" : 138718 ,
2020-09-19 01:10:32 -04:00
"polyfills-es2015" : 36964
2018-01-05 19:15:14 -05:00
}
}
} ,
2019-01-28 10:04:38 -05:00
"cli-hello-world-ivy-minimal" : {
"master" : {
"uncompressed" : {
2021-04-12 05:22:24 -04:00
"runtime-es2015" : 1190 ,
fix(core): Access injected parent values using SelfSkip (#39464)
In ViewEngine, SelfSkip would navigate up the tree to get tokens from
the parent node, skipping the child. This restores that functionality in
Ivy. In ViewEngine, if a special token (e.g. ElementRef) was not found
in the NodeInjector tree, the ModuleInjector was also used to lookup
that token. While special tokens like ElementRef make sense only in a
context of a NodeInjector, we preserved ViewEngine logic for now to
avoid breaking changes.
We identified 4 scenarios related to @SkipSelf and special tokens where
ViewEngine behavior was incorrect and is likely due to bugs. In Ivy this
is implemented to provide a more intuitive API. The list of scenarios
can be found below.
1. When Injector is used in combination with @Host and @SkipSelf on the
first Component within a module and the injector is defined in the
module, ViewEngine will get the injector from the module. In Ivy, it
does not do this and throws instead.
2. When retrieving a @ViewContainerRef while @SkipSelf and @Host are
present, in ViewEngine, it throws an exception. In Ivy it returns the
host ViewContainerRef.
3. When retrieving a @ViewContainerRef on an embedded view and @SkipSelf
is present, in ViewEngine, the ref is null. In Ivy it returns the parent
ViewContainerRef.
4. When utilizing viewProviders and providers, a child component that is
nested within a parent component that has @SkipSelf on a viewProvider
value, if that provider is provided by the parent component's
viewProviders and providers, ViewEngine will return that parent's
viewProviders value, which violates how viewProviders' visibility should
work. In Ivy, it retrieves the value from providers, as it should.
These discrepancies all behave as they should in Ivy and are likely bugs
in ViewEngine.
PR Close #39464
2020-10-27 19:07:08 -04:00
"main-es2015" : 17597 ,
2020-10-29 14:14:33 -04:00
"polyfills-es2015" : 36709
2019-01-28 10:04:38 -05:00
}
}
} ,
2019-01-28 09:54:34 -05:00
"cli-hello-world-ivy-compat" : {
2018-12-21 13:00:16 -05:00
"master" : {
"uncompressed" : {
2021-04-12 05:22:24 -04:00
"runtime-es2015" : 1190 ,
2021-03-23 05:28:54 -04:00
"main-es2015" : 144579 ,
2020-09-19 01:10:32 -04:00
"polyfills-es2015" : 36964
2018-12-21 13:00:16 -05:00
}
}
} ,
2019-08-12 15:52:58 -04:00
"cli-hello-world-ivy-i18n" : {
"master" : {
"uncompressed" : {
2021-04-12 05:22:24 -04:00
"runtime-es2015" : 1190 ,
2021-03-30 05:26:54 -04:00
"main-es2015" : 137087 ,
2020-09-19 01:10:32 -04:00
"polyfills-es2015" : 37641
2019-08-12 15:52:58 -04:00
}
}
} ,
2019-10-02 08:09:42 -04:00
"cli-hello-world-lazy" : {
"master" : {
"uncompressed" : {
2021-04-12 05:22:24 -04:00
"runtime-es2015" : 3354 ,
2021-03-30 05:26:54 -04:00
"main-es2015" : 295755 ,
refactor(compiler): move factory out of injector definition (#41022)
Previously, injector definitions contained a `factory` property that
was used to create a new instance of the associated NgModule class.
Now this factory has been moved to its own `ɵfac` static property on the
NgModule class itself. This is inline with how directives, components and
pipes are created.
There is a small size increase to bundle sizes for each NgModule class,
because the `ɵfac` takes up a bit more space:
Before:
```js
let a = (() => {
class n {}
return n.\u0275mod = c.Cb({type: n}),
n.\u0275inj = c.Bb({factory: function(t) { return new (t || n) }, imports: [[e.a.forChild(s)], e.a]}),
n
})(),
```
After:
```js
let a = (() => {
class n {}
return n.\u0275fac = function(t) { return new (t || n) },
n.\u0275mod = c.Cb({type: n}),
n.\u0275inj = c.Bb({imports: [[r.a.forChild(s)], r.a]}),
n
})(),
```
In other words `n.\u0275fac = ` is longer than `factory: ` (by 5 characters)
and only because the tooling insists on encoding `ɵ` as `\u0275`.
This can be mitigated in a future PR by only generating the `ɵfac` property
if it is actually needed.
PR Close #41022
2021-02-26 14:21:29 -05:00
"polyfills-es2015" : 36975 ,
2021-04-15 05:12:23 -04:00
"src_app_lazy_lazy_module_ts-es2015" : 825
2019-10-02 08:09:42 -04:00
}
}
} ,
2021-03-01 22:06:37 -05:00
"forms" : {
"master" : {
"uncompressed" : {
2021-04-12 05:22:24 -04:00
"runtime-es2015" : 1150 ,
2021-03-10 01:03:29 -05:00
"main-es2015" : 162346 ,
2021-03-01 22:06:37 -05:00
"polyfills-es2015" : 36975
}
}
} ,
2018-01-05 19:15:14 -05:00
"hello_world__closure" : {
"master" : {
"uncompressed" : {
2018-04-04 13:56:02 -04:00
"bundle" : "TODO(i): temporarily increase the payload size limit from 105779 - this is due to a closure issue related to ESM reexports that still needs to be investigated" ,
2019-08-15 09:14:25 -04:00
"bundle" : "TODO(i): we should define ngDevMode to false in Closure, but --define only works in the global scope." ,
2020-05-12 08:22:36 -04:00
"bundle" : "TODO(i): (FW-2164) TS 3.9 new class shape seems to have broken Closure in big ways. The size went from 169991 to 252338" ,
2020-06-09 11:40:00 -04:00
"bundle" : "TODO(i): after removal of tsickle from ngc-wrapped / ng_package, we had to switch to SIMPLE optimizations which increased the size from 252338 to 1198917, see PR#37221 and PR#37317 for more info" ,
2020-08-11 13:34:59 -04:00
"bundle" : 1214857
2018-01-05 19:15:14 -05:00
}
}
}
2021-03-07 04:17:54 -05:00
}