{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/7839","labels_url":"https://api.github.com/repos/angular/angular.js/issues/7839/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/7839/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/7839/events","html_url":"https://github.com/angular/angular.js/pull/7839","id":35735835,"number":7839,"title":"Make angular.equals support objects with circular references","user":{"login":"myitcv","id":3374574,"avatar_url":"https://avatars.githubusercontent.com/u/3374574?v=3","gravatar_id":"","url":"https://api.github.com/users/myitcv","html_url":"https://github.com/myitcv","followers_url":"https://api.github.com/users/myitcv/followers","following_url":"https://api.github.com/users/myitcv/following{/other_user}","gists_url":"https://api.github.com/users/myitcv/gists{/gist_id}","starred_url":"https://api.github.com/users/myitcv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myitcv/subscriptions","organizations_url":"https://api.github.com/users/myitcv/orgs","repos_url":"https://api.github.com/users/myitcv/repos","events_url":"https://api.github.com/users/myitcv/events{/privacy}","received_events_url":"https://api.github.com/users/myitcv/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"}],"state":"closed","locked":false,"assignee":{"login":"rodyhaddad","id":1331190,"avatar_url":"https://avatars.githubusercontent.com/u/1331190?v=3","gravatar_id":"","url":"https://api.github.com/users/rodyhaddad","html_url":"https://github.com/rodyhaddad","followers_url":"https://api.github.com/users/rodyhaddad/followers","following_url":"https://api.github.com/users/rodyhaddad/following{/other_user}","gists_url":"https://api.github.com/users/rodyhaddad/gists{/gist_id}","starred_url":"https://api.github.com/users/rodyhaddad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodyhaddad/subscriptions","organizations_url":"https://api.github.com/users/rodyhaddad/orgs","repos_url":"https://api.github.com/users/rodyhaddad/repos","events_url":"https://api.github.com/users/rodyhaddad/events{/privacy}","received_events_url":"https://api.github.com/users/rodyhaddad/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/57","html_url":"https://github.com/angular/angular.js/milestones/1.3.0-beta.14","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/57/labels","id":692602,"number":57,"title":"1.3.0-beta.14","description":"","creator":{"login":"rodyhaddad","id":1331190,"avatar_url":"https://avatars.githubusercontent.com/u/1331190?v=3","gravatar_id":"","url":"https://api.github.com/users/rodyhaddad","html_url":"https://github.com/rodyhaddad","followers_url":"https://api.github.com/users/rodyhaddad/followers","following_url":"https://api.github.com/users/rodyhaddad/following{/other_user}","gists_url":"https://api.github.com/users/rodyhaddad/gists{/gist_id}","starred_url":"https://api.github.com/users/rodyhaddad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rodyhaddad/subscriptions","organizations_url":"https://api.github.com/users/rodyhaddad/orgs","repos_url":"https://api.github.com/users/rodyhaddad/repos","events_url":"https://api.github.com/users/rodyhaddad/events{/privacy}","received_events_url":"https://api.github.com/users/rodyhaddad/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":17,"state":"closed","created_at":"2014-06-16T17:54:42Z","updated_at":"2014-06-30T22:46:35Z","due_on":"2014-06-27T07:00:00Z","closed_at":"2014-06-30T22:46:35Z"},"comments":12,"created_at":"2014-06-14T20:16:33Z","updated_at":"2015-12-09T12:28:06Z","closed_at":"2014-06-27T18:19:17Z","pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/7839","html_url":"https://github.com/angular/angular.js/pull/7839","diff_url":"https://github.com/angular/angular.js/pull/7839.diff","patch_url":"https://github.com/angular/angular.js/pull/7839.patch"},"body":"Per #7724"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/163211773","html_url":"https://github.com/angular/angular.js/pull/7839#issuecomment-163211773","issue_url":"https://api.github.com/repos/angular/angular.js/issues/7839","id":163211773,"user":{"login":"jordanms","id":7581501,"avatar_url":"https://avatars.githubusercontent.com/u/7581501?v=3","gravatar_id":"","url":"https://api.github.com/users/jordanms","html_url":"https://github.com/jordanms","followers_url":"https://api.github.com/users/jordanms/followers","following_url":"https://api.github.com/users/jordanms/following{/other_user}","gists_url":"https://api.github.com/users/jordanms/gists{/gist_id}","starred_url":"https://api.github.com/users/jordanms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jordanms/subscriptions","organizations_url":"https://api.github.com/users/jordanms/orgs","repos_url":"https://api.github.com/users/jordanms/repos","events_url":"https://api.github.com/users/jordanms/events{/privacy}","received_events_url":"https://api.github.com/users/jordanms/received_events","type":"User","site_admin":false},"created_at":"2015-12-09T12:28:06Z","updated_at":"2015-12-09T12:28:06Z","body":"@tjad I understood from the initial request that they want to implement what, in Java, we call Comparator to be used with $watch. However, I saw that the implementation would replace the default equals as you said, what I think is not a good idea. The concept of the Comparator is that a special equals function can be provided for a specific object (the watched object) in a specific context (the $watch). For all other objects and contexts, the default equals function should be used. If this approach is used, the default implementation for equals will not change and the support for CR still needed. Even if the implementation of #10096 goes in the direction it is right now (replacing the default equals implementation), changing equals implementation still needed for the reasons you explained."}}