{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/14850","repository_url":"https://api.github.com/repos/angular/angular.js","labels_url":"https://api.github.com/repos/angular/angular.js/issues/14850/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/14850/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/14850/events","html_url":"https://github.com/angular/angular.js/pull/14850","id":163121062,"number":14850,"title":"Optimize performance by optionally collectiong only EA directives","user":{"login":"drpicox","id":2758345,"avatar_url":"https://avatars.githubusercontent.com/u/2758345?v=3","gravatar_id":"","url":"https://api.github.com/users/drpicox","html_url":"https://github.com/drpicox","followers_url":"https://api.github.com/users/drpicox/followers","following_url":"https://api.github.com/users/drpicox/following{/other_user}","gists_url":"https://api.github.com/users/drpicox/gists{/gist_id}","starred_url":"https://api.github.com/users/drpicox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drpicox/subscriptions","organizations_url":"https://api.github.com/users/drpicox/orgs","repos_url":"https://api.github.com/users/drpicox/repos","events_url":"https://api.github.com/users/drpicox/events{/privacy}","received_events_url":"https://api.github.com/users/drpicox/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/branch:%201.5.x","name":"branch: 1.5.x","color":"207de5"},{"url":"https://api.github.com/repos/angular/angular.js/labels/branch:%201.6.x","name":"branch: 1.6.x","color":"006b75"},{"url":"https://api.github.com/repos/angular/angular.js/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20$compile","name":"component: $compile","color":"e102d8"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20public%20api","name":"needs: public api","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20review","name":"needs: review","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20feature","name":"type: feature","color":"00a606"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20perf","name":"type: perf","color":"207de5"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/90","html_url":"https://github.com/angular/angular.js/milestones/1.5.x","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/90/labels","id":1025270,"number":90,"title":"1.5.x","description":"","creator":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"open_issues":104,"closed_issues":171,"state":"open","created_at":"2015-03-17T12:15:49Z","updated_at":"2016-07-18T09:49:34Z","due_on":null,"closed_at":null},"comments":16,"created_at":"2016-06-30T09:28:17Z","updated_at":"2016-07-21T08:23:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/14850","html_url":"https://github.com/angular/angular.js/pull/14850","diff_url":"https://github.com/angular/angular.js/pull/14850.diff","patch_url":"https://github.com/angular/angular.js/pull/14850.patch"},"body":"**What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)** Performance optimization that introduces a new feature as `$compileProvider` configuration.\r\n\r\n\r\n\r\n**What is the current behavior? (You can also link to an open issue here)**: `$compile` collect directives from entities, attributes, classes and comments. It parses all four kind of directives, although usually only E (components) and A (\"directives\") are used in most of the projects.\r\n\r\n\r\n\r\n**What is the new behavior (if this is a feature change)?**: It introduces a new configuration in the `$compileProvider` that disables the compilation of C and M directives:\r\n\r\n```javascript\r\n$compileProvider.restrictDirectivesTo('EA');\r\n```\r\n\r\n\r\n\r\n\r\n**Does this PR introduce a breaking change?**\r\nNo. By default is configured false, thus it is compatible with all existing code.\r\n\r\n\r\n**Please check if the PR fulfills these requirements**\r\n- [X] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format\r\n- [X] Tests for the changes have been added (for bug fixes / features)\r\n- [X] Docs have been added / updated (for bug fixes / features)\r\n\r\n**Other information**:\r\nIt is closely related to https://github.com/angular/angular.js/pull/14848 \r\nI have reused the same benchmarks to measure the improved performance of this PR, and it is around **10-15% of performance improvement** by setting restrictDirectivesTo to 'EA'.\r\n"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/234188568","html_url":"https://github.com/angular/angular.js/pull/14850#issuecomment-234188568","issue_url":"https://api.github.com/repos/angular/angular.js/issues/14850","id":234188568,"user":{"login":"drpicox","id":2758345,"avatar_url":"https://avatars.githubusercontent.com/u/2758345?v=3","gravatar_id":"","url":"https://api.github.com/users/drpicox","html_url":"https://github.com/drpicox","followers_url":"https://api.github.com/users/drpicox/followers","following_url":"https://api.github.com/users/drpicox/following{/other_user}","gists_url":"https://api.github.com/users/drpicox/gists{/gist_id}","starred_url":"https://api.github.com/users/drpicox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drpicox/subscriptions","organizations_url":"https://api.github.com/users/drpicox/orgs","repos_url":"https://api.github.com/users/drpicox/repos","events_url":"https://api.github.com/users/drpicox/events{/privacy}","received_events_url":"https://api.github.com/users/drpicox/received_events","type":"User","site_admin":false},"created_at":"2016-07-21T08:23:39Z","updated_at":"2016-07-21T08:23:39Z","body":"Hi, I think that's ok.\r\nIn fact in #14859 I did lots of testing enough to be sure that it would work well when only EA directives are activated.\r\n\r\nSo, it's ok!"}}
{"actor":{"display_login":"drpicox"}}