{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/12068","labels_url":"https://api.github.com/repos/angular/angular.js/issues/12068/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/12068/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/12068/events","html_url":"https://github.com/angular/angular.js/pull/12068","id":86821063,"number":12068,"title":"perf(copy): only validate/clear user specified destination","user":{"login":"jbedard","id":89246,"avatar_url":"https://avatars.githubusercontent.com/u/89246?v=3","gravatar_id":"","url":"https://api.github.com/users/jbedard","html_url":"https://github.com/jbedard","followers_url":"https://api.github.com/users/jbedard/followers","following_url":"https://api.github.com/users/jbedard/following{/other_user}","gists_url":"https://api.github.com/users/jbedard/gists{/gist_id}","starred_url":"https://api.github.com/users/jbedard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbedard/subscriptions","organizations_url":"https://api.github.com/users/jbedard/orgs","repos_url":"https://api.github.com/users/jbedard/repos","events_url":"https://api.github.com/users/jbedard/events{/privacy}","received_events_url":"https://api.github.com/users/jbedard/received_events","type":"User","site_admin":false},"labels":[{"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/type:%20perf","name":"type: perf","color":"207de5"}],"state":"closed","locked":false,"assignee":{"login":"lgalfaso","id":391394,"avatar_url":"https://avatars.githubusercontent.com/u/391394?v=3","gravatar_id":"","url":"https://api.github.com/users/lgalfaso","html_url":"https://github.com/lgalfaso","followers_url":"https://api.github.com/users/lgalfaso/followers","following_url":"https://api.github.com/users/lgalfaso/following{/other_user}","gists_url":"https://api.github.com/users/lgalfaso/gists{/gist_id}","starred_url":"https://api.github.com/users/lgalfaso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lgalfaso/subscriptions","organizations_url":"https://api.github.com/users/lgalfaso/orgs","repos_url":"https://api.github.com/users/lgalfaso/repos","events_url":"https://api.github.com/users/lgalfaso/events{/privacy}","received_events_url":"https://api.github.com/users/lgalfaso/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/38","html_url":"https://github.com/angular/angular.js/milestones/Ice%20Box","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/38/labels","id":529901,"number":38,"title":"Ice Box","description":"Milestone for valid issues and bugs that we have no aspirations on fixing any time soon because they are not affecting primary use-cases and are not aligned with our goals.","creator":{"login":"IgorMinar","id":216296,"avatar_url":"https://avatars.githubusercontent.com/u/216296?v=3","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":192,"closed_issues":145,"state":"open","created_at":"2014-01-08T08:19:21Z","updated_at":"2015-11-18T11:16:48Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-06-10T03:32:14Z","updated_at":"2015-11-19T11:04:55Z","closed_at":"2015-10-24T09:09:19Z","pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/12068","html_url":"https://github.com/angular/angular.js/pull/12068","diff_url":"https://github.com/angular/angular.js/pull/12068.diff","patch_url":"https://github.com/angular/angular.js/pull/12068.patch"},"body":"This (combined with #12054) makes all the copy situations I tried 30-60% faster (~1.5-3x).\r\n\r\nThis mainly just moves/splits:\r\n* input validation/clearing\r\n* different object type copying\r\n* different object type recursing\r\n\r\nInto 3 separate methods, allowing:\r\n* only the input destination (if specified) is validated\r\n* only the input destination (if specified) has the content cleared\r\n* only the public method has the `if (destination)` confusion\r\n* removing all the checks if the stack vars have been initialized yet"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/158024053","html_url":"https://github.com/angular/angular.js/pull/12068#issuecomment-158024053","issue_url":"https://api.github.com/repos/angular/angular.js/issues/12068","id":158024053,"user":{"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},"created_at":"2015-11-19T11:04:55Z","updated_at":"2015-11-19T11:04:55Z","body":"I have backported this and @jbedard's other commit: \r\n\r\n* d1293540e13573eb9ea5f90730bb9c9710c345db\r\n* 19fab4a1d79d2445795273f1622344353cf4d104"}}