{"action":"opened","issue":{"url":"https://api.github.com/repos/angular/angular/issues/497","labels_url":"https://api.github.com/repos/angular/angular/issues/497/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/497/comments","events_url":"https://api.github.com/repos/angular/angular/issues/497/events","html_url":"https://github.com/angular/angular/issues/497","id":55972531,"number":497,"title":"Tree shake constructor stubs","user":{"login":"mhevery","id":111951,"avatar_url":"https://avatars.githubusercontent.com/u/111951?v=3","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},"labels":[{"url":"https://api.github.com/repos/angular/angular/labels/%23dart/transformer","name":"#dart/transformer","color":"bfdadc"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular/milestones/14","labels_url":"https://api.github.com/repos/angular/angular/milestones/14/labels","id":957536,"number":14,"title":"Dart: M0 Transformers","description":"Goal: Have dart transformers ready so that no mirrors are needed in hello_world example\r\nhttps://github.com/angular/angular/tree/master/modules/examples/src/hello_world","creator":{"login":"mhevery","id":111951,"avatar_url":"https://avatars.githubusercontent.com/u/111951?v=3","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},"open_issues":3,"closed_issues":0,"state":"open","created_at":"2015-01-29T22:46:47Z","updated_at":"2015-01-29T23:20:37Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-01-29T23:20:37Z","updated_at":"2015-01-29T23:20:37Z","closed_at":null,"body":"When generating constructor stubs (see #496) the resulting hash map may contain more stubs than is needed for running the application. This will result in retaining too much code during the dart2js tree shaking phase. To correct this the transformer needs to tree shake the stubs and only output the ones which are actually needed.\r\n\r\n1) find the [`bootstrap()`](https://github.com/angular/angular/blob/master/modules/examples/src/hello_world/index_common.js#L71) method and find the root component."}}