{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular/issues/21706","repository_url":"https://api.github.com/repos/angular/angular","labels_url":"https://api.github.com/repos/angular/angular/issues/21706/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/21706/comments","events_url":"https://api.github.com/repos/angular/angular/issues/21706/events","html_url":"https://github.com/angular/angular/issues/21706","id":290584785,"number":21706,"title":"Ivy Renderer (beta)","user":{"login":"IgorMinar","id":216296,"avatar_url":"https://avatars3.githubusercontent.com/u/216296?v=4","gravatar_id":"","url":"https://api.github.com/users/IgorMinar","html_url":"https://github.com/IgorMinar","followers_url":"https://api.github.com/users/IgorMinar/followers","following_url":"https://api.github.com/users/IgorMinar/following{/other_user}","gists_url":"https://api.github.com/users/IgorMinar/gists{/gist_id}","starred_url":"https://api.github.com/users/IgorMinar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IgorMinar/subscriptions","organizations_url":"https://api.github.com/users/IgorMinar/orgs","repos_url":"https://api.github.com/users/IgorMinar/repos","events_url":"https://api.github.com/users/IgorMinar/events{/privacy}","received_events_url":"https://api.github.com/users/IgorMinar/received_events","type":"User","site_admin":false},"labels":[{"id":799860804,"url":"https://api.github.com/repos/angular/angular/labels/comp:%20ivy","name":"comp: ivy","color":"c5def5","default":false},{"id":130606845,"url":"https://api.github.com/repos/angular/angular/labels/type:%20feature","name":"type: feature","color":"EEEEEE","default":false}],"state":"open","locked":false,"assignee":{"login":"mhevery","id":111951,"avatar_url":"https://avatars0.githubusercontent.com/u/111951?v=4","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"assignees":[{"login":"mhevery","id":111951,"avatar_url":"https://avatars0.githubusercontent.com/u/111951?v=4","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/angular/angular/milestones/81","html_url":"https://github.com/angular/angular/milestone/81","labels_url":"https://api.github.com/repos/angular/angular/milestones/81/labels","id":3040459,"number":81,"title":"v6.0","description":"Tracking milestone collecting the work towards v6.\r\n\r\n[Tentative Release Schedule](https://github.com/angular/angular/blob/master/docs/RELEASE_SCHEDULE.md).\r\n\r\n","creator":{"login":"IgorMinar","id":216296,"avatar_url":"https://avatars3.githubusercontent.com/u/216296?v=4","gravatar_id":"","url":"https://api.github.com/users/IgorMinar","html_url":"https://github.com/IgorMinar","followers_url":"https://api.github.com/users/IgorMinar/followers","following_url":"https://api.github.com/users/IgorMinar/following{/other_user}","gists_url":"https://api.github.com/users/IgorMinar/gists{/gist_id}","starred_url":"https://api.github.com/users/IgorMinar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IgorMinar/subscriptions","organizations_url":"https://api.github.com/users/IgorMinar/orgs","repos_url":"https://api.github.com/users/IgorMinar/repos","events_url":"https://api.github.com/users/IgorMinar/events{/privacy}","received_events_url":"https://api.github.com/users/IgorMinar/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":1,"state":"open","created_at":"2018-01-16T21:17:08Z","updated_at":"2018-03-12T16:28:45Z","due_on":"2018-04-04T07:00:00Z","closed_at":null},"comments":33,"created_at":"2018-01-22T19:23:33Z","updated_at":"2018-03-16T22:29:26Z","closed_at":null,"author_association":"OWNER","body":"# Overview\r\n\r\nIvy is a new backwards-compatible Angular renderer focused on further speed improvements, size reduction, and increased flexibility.\r\n\r\nIvy is currently not feature complete, but can be tested via [`enableIvy: true`](https://next.angular.io/guide/aot-compiler#enableivy) [`angularCompilerOptions` flag](https://next.angular.io/guide/aot-compiler#angular-compiler-options).\r\n\r\nWe currently expect Ivy to remain behind the flag until it's feature complete and battle tested at Google. In the meantime you can check out this [Hello World demo](https://ng-ivy-demo.firebaseapp.com/).\r\n\r\nRelated Issues:\r\n- [Tree-Shakeable Providers Followup Work](https://github.com/angular/angular/issues/22830)\r\n\r\n# Implementation Status\r\n\r\n## Annotations\r\n| Annotation          | `defineXXX()`                  | Run time | Spec     | Compiler | Back Patch |\r\n| -------------------- | ------------------------------ | ------- | -------- | -------- | -------- |\r\n| `@Component`         | ✅ `defineComponent()`         |    ✅   |  ✅      |  ✅      |  ❌      |\r\n| `@Directive`         | ✅ `defineDirective()`         |    ✅   |  ✅      |  ✅      |  ❌      |\r\n| `@Directive`         | ❌ `defineAbstractDirective()` |    ❌   |  ❌      |  ❌      |  ❌      |\r\n| `@Pipe`              | ✅ `definePipe()`              |    ✅   |  ✅      |  ✅      |  ❌      |\r\n| `@Injectable`        | ❌ `defineInjectable()`        |    ❌   |  ❌      |  ❌      |  ❌      |\r\n| `@NgModule`          | ❌ `defineInjector()`          |    ❌   |  ❌      |  ❌      |  ❌      |\r\n| `@ConfigureInjector` | ❌ `defineInjector()`          |    ❌   |  ❌      |  ❌      |  ❌      |\r\n\r\n\r\n\r\n## Component Composition\r\n| Feature                                  | Runtime | Spec     | Compiler |\r\n| ---------------------------------------- | ------- | -------- | -------- |\r\n| creation reordering based on injection   |   ❌    |    ❌    |    ✅    |\r\n| `class CompA extends CompB {}`           |   ❌    |    ❌    |    ❌    |\r\n| `class CompA extends CompB { @Input }`   |   ❌    |    ❌    |    ❌    |\r\n| `class CompA extends CompB { @Output }`  |   ❌    |    ❌    |    ❌    |\r\n\r\n\r\n\r\n## Life Cycle Hooks\r\n| Feature                   | Runtime | Spec     | Compiler |\r\n| ------------------------- | ------- | -------- | -------- |\r\n| `onChanges()`             |    ✅   |  ✅      |  ✅      |\r\n| `onDestroy()`             |    ✅   |  ✅      |  ✅      |\r\n| `onInit()`                |    ✅   |  ✅      |  ✅      |\r\n| `onChanges()`             |    ✅   |  ✅      |  ✅      |\r\n| `doCheck()`               |    ✅   |  ✅      |  ✅      |\r\n| `afterViewChecked()`      |    ✅   |  ✅      |  ✅      |\r\n| `afterViewInit()`         |    ✅   |  ✅      |  ✅      |\r\n| `afterContentChecked()`   |    ✅   |  ✅      |  ✅      |\r\n| `afterContentInit()`      |    ✅   |  ✅      |  ✅      |\r\n| listener teardown         |    ✅   |  ✅      |  ✅      |\r\n\r\n\r\n\r\n## Template Syntax\r\n| Feature                          | Runtime | Spec     | Compiler |\r\n| -------------------------------- | ------- | -------- | -------- |\r\n| `<div>`                          |  ✅     |  ✅      |  ✅      |\r\n| `<div>{{exp}}</div>`             |  ✅     |  ✅      |  ✅      |\r\n| `<div attr=value>`               |  ✅     |  ✅      |  ✅      |\r\n| `<div (click)=\"stmt\">`           |  ✅     |  ✅      |  ✅      |\r\n| `<div #foo>`                     |  ✅     |  ✅      |  ✅      |\r\n| `<div #foo=\"bar\">`               |  ✅     |  ✅      |  ✅      |\r\n| `<div [value]=\"exp\">`            |  ✅     |  ✅      |  ✅      |\r\n| `<div title=\"Hello {{name}}!\">`  |  ✅     |  ✅      |  ✅      |\r\n| `<div [attr.value]=\"exp\">`       |  ✅     |  ✅      |  ❌      |\r\n| `<div class=\"literal\">`          |  ✅     |  ✅      |  ✅      |\r\n| `<div [class]=\"exp\">`            |  ❌     |  ❌      |  ❌      |\r\n| `<div [class.foo]=\"exp\">`        |  ✅     |  ✅      |  ❌      |\r\n| `<div style=\"literal\">`          |  ✅     |  ✅      |  ✅      |\r\n| `<div [style]=\"exp\">`            |  ❌     |  ❌      |  ❌      |\r\n| `<div [style.foo]=\"exp\">`        |  ✅     |  ✅      |  ❌      |\r\n| `{{ ['literal', exp ] }}`        |  ✅     |  ✅      |  ✅      |\r\n| `{{ { a: 'literal', b: exp } }}` |  ✅     |  ✅      |  ✅      |\r\n| `{{ exp \\| pipe: arg }}`         |  ✅     |  ✅       |  ✅      |\r\n\r\n\r\n\r\n## `@Query`\r\n| Feature                         | Runtime | Spec     | Compiler |\r\n| ------------------------------- | ------- | -------- | -------- |\r\n| `@Query(descendants)`           |  ✅     |  ✅      |  n/a      |\r\n| `@Query(one)`                   |  ✅     |  ✅      |  n/a      |\r\n| `@Query(read)`                  |  ✅     |  ✅      |  n/a      |\r\n| `@Query(selector)`              |  ✅     |  ✅      |  n/a      |\r\n| `@Query(Type)`                  |  ✅     |  ✅      |  n/a      |\r\n| `@ContentChildred`              |  ✅     |  ✅      |  ❌      |\r\n| `@ContentChild`                 |  ✅     |  ✅      |  ✅      |\r\n| `@ViewChildren`                 |  ✅     |  ✅      |  ❌      |\r\n| `@ViewChild`                    |  ✅     |  ✅      |  ✅      |\r\n\r\n\r\n\r\n## Content Projection\r\n| Feature                         | Runtime | Spec     | Compiler |\r\n| ------------------------------- | ------- | -------- | -------- |\r\n| `<ng-content>`                  |  ✅     |  ✅      |  ✅      |\r\n| `<ng-content selector=\"...\">`   |  ✅     |  ✅      |  ✅      |\r\n| container `projectAs`           |    ✅    |  ✅      |  ❌      |\r\n\r\n\r\n\r\n## Injection Features\r\n| Feature                             | Runtime | Spec     | Compiler |\r\n| ----------------------------------- | ------- | -------- | -------- |\r\n| `inject(Type)`                      |  ✅     |  ✅      |  ✅      |\r\n| `directiveInject(Type)`             |  ✅     |  ✅      |  ❌      |\r\n| `inject(Type, SkipSelf)`            |  ❌     |  ❌      |  ❌      |\r\n| `attribute('name')`                 |  ✅      |  ✅       |  ❌      |\r\n| `injectChangeDetectionRef()`        |  ✅     |  ✅      |  ❌      |\r\n| `injectElementRef()`                |  ✅     |  ✅      |  ✅      |\r\n| `injectViewContainerRef()`          |  ✅     |  ✅      |  ✅      |\r\n| `injectTemplateRef()`               |  ✅     |  ✅      |  ✅      |\r\n| default `inject()` with no injector |  ❌     |  ❌      |  ❌      |\r\n| sanitization with no injector       |  ✅     |  ✅      |  ❌      |\r\n\r\n\r\n\r\n## Change Detection\r\n| Feature                             | Runtime | \r\n| ----------------------------------- | ------- | \r\n| `markDirty()`                       |  ✅     | \r\n| `detectChanges()`                   |  ✅     | \r\n| `tick()`            |  ✅    | \r\n| `attach()`                          |  ✅     | \r\n| `detach()`                          |  ✅     | \r\n| `ON_PUSH`                           |  ✅     | \r\n| `ALWAYS`                            |  ✅    | \r\n| `DIRTY`                        |  ✅    | \r\n| `ATTACHED`                          |  ✅     | \r\n\r\n\r\n\r\n## Bootstrap API\r\n| Feature                             | Runtime | \r\n| ----------------------------------- | ------- | \r\n| `renderComponent()`                 |  ✅     | \r\n| `getHostElement()`                  |  ✅     | \r\n| `createInjector()`                 |  ❌     | \r\n\r\n\r\n\r\n## I18N\r\n| Feature                             | Runtime | Spec     | Compiler |\r\n| ----------------------------------- | ------- | -------- | -------- |\r\n| translate text literals             |  ❌     |  ❌      |  ❌      |\r\n| rearrange text nodes                 |  ❌     |  ❌      |  ❌      |\r\n| ICU                                 |  ❌     |  ❌      |  ❌      |\r\n\r\n\r\n\r\n\r\n\r\n## `______Ref`s\r\n| Method                 | View Container Ref | Template Ref | Embeded View Ref | View Ref | Element Ref | Change Detection Ref |\r\n| ---------------------- | ------------------ | ------------ | ---------------- | -------- | ----------- | -------------------- |\r\n| `clear()`              |  ❌                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `get()`                |  ❌                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `createEmbededView()`  |  ✅                | ✅           | n/a              | n/a      | n/a         | n/a                  |\r\n| `createComponent()`    |  ✅                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `insert()`             |  ✅                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `move()`               |  ❌                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `indexOf()`            |  ❌                | n/a          | n/a              | n/a      | n/a         | n/a                  |\r\n| `destroy()`            | n/a                | n/a          |  ❌              | ❌       | n/a         | n/a                  |\r\n| `destroyed`            | n/a                | n/a          |  ❌              | ❌       | n/a         | n/a                  |\r\n| `onDestroy()`          | n/a                | n/a          |  ❌              | ❌       | n/a         | n/a                  |\r\n| `markForCheck()`       | n/a                | n/a          |  ❌              | n/a      | n/a         | ✅                   |\r\n| `detach()`             |  ❌                | n/a          |  ❌              | n/a      | n/a         | ✅                   |\r\n| `detachChanges()`      | n/a                | n/a          |  ❌              | n/a      | n/a         | ✅                   |\r\n| `checkNoChanges()`     | n/a                | n/a          |  ❌              | n/a      | n/a         | ✅                   |\r\n| `reattach()`           | n/a                | n/a          |  ❌              | n/a      | n/a         | ✅                   |\r\n| `nativeElement()`      | n/a                | n/a          | n/a              | n/a      |  ✅         | n/a                  |\r\n\r\n## Missing Pieces\r\n- Sanitization ✅\r\n- Back patching in tree shakable way. ❌\r\n- attribute namespace ❌"},"comment":{"url":"https://api.github.com/repos/angular/angular/issues/comments/373862090","html_url":"https://github.com/angular/angular/issues/21706#issuecomment-373862090","issue_url":"https://api.github.com/repos/angular/angular/issues/21706","id":373862090,"user":{"login":"Ploppy3","id":7990765,"avatar_url":"https://avatars2.githubusercontent.com/u/7990765?v=4","gravatar_id":"","url":"https://api.github.com/users/Ploppy3","html_url":"https://github.com/Ploppy3","followers_url":"https://api.github.com/users/Ploppy3/followers","following_url":"https://api.github.com/users/Ploppy3/following{/other_user}","gists_url":"https://api.github.com/users/Ploppy3/gists{/gist_id}","starred_url":"https://api.github.com/users/Ploppy3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ploppy3/subscriptions","organizations_url":"https://api.github.com/users/Ploppy3/orgs","repos_url":"https://api.github.com/users/Ploppy3/repos","events_url":"https://api.github.com/users/Ploppy3/events{/privacy}","received_events_url":"https://api.github.com/users/Ploppy3/received_events","type":"User","site_admin":false},"created_at":"2018-03-16T22:29:26Z","updated_at":"2018-03-16T22:29:26Z","author_association":"NONE","body":"It looks like we will be able to check for future changes over here https://github.com/angular/angular/commits/master/packages/core/src/render3/STATUS.md"}}
{"actor":{"display_login":"Ploppy3"}}