{"action":"created","comment":{"url":"https://api.github.com/repos/ramda/ramda/pulls/comments/22992435","id":22992435,"diff_hunk":"@@ -0,0 +1,64 @@\n+var eq = require('../eq');\n+var keys = require('../keys');\n+var type = require('../type');\n+\n+// The algorithm used to handle cyclic structures is\n+// inspired by underscore's isEqual\n+module.exports = function _eqDeep(a, b, stackA, stackB) {\n+    var typeA = type(a);\n+    if (typeA !== type(b)) {\n+        return false;\n+    }\n+\n+    if (eq(a, b)) {\n+        return true;\n+    }\n+\n+    if (typeA == 'RegExp') {\n+        // RegExp equality algorithm: http://stackoverflow.com/a/10776635\n+        return (a.source === b.source) &&\n+               (a.global === b.global) &&\n+               (a.ignoreCase === b.ignoreCase) &&\n+               (a.multiline === b.multiline);\n+    }\n+\n+    var eqDate = typeA == 'Date';\n+    if (eqDate || typeA == 'Object' || typeA == 'Array' || typeA == 'ArrayBuffer' ||\n+        typeA == 'Int16Buffer' || typeA == 'Int8Array' || typeA == 'Uint8Array' ||\n+        typeA == 'Uint8ClampedArray' || typeA == 'Int16Array' || typeA == 'Uint16Array' ||\n+        typeA == 'Int32Array' || typeA == 'Uint32Array' || typeA == 'Float32Array' ||\n+        typeA == 'Float64Array') {\n+\n+        if (eqDate && a.getTime() != b.getTime()) {\n+            return false;\n+        }\n+        // else continue to check the a and b as objects, ie check key, value pairs are the same\n+        // this will handle the case where properties are added to the date objects\n+        var keysA = keys(a);\n+        if (keysA.length !== keys(b).length) {\n+            return false;\n+        }\n+\n+        var idx = stackA.length;\n+        while (idx--) {\n+            if (stackA[idx] === a) {\n+                return stackB[idx] === b;\n+            }\n+        }\n+\n+        stackA.push(a);\n+        stackB.push(b);\n+        idx = -1;\n+        while (++idx < keysA.length) {\n+            var key = keysA[idx];\n+            if (!b.hasOwnProperty(key) || !_eqDeep(b[key], a[key], stackA, stackB)) {","path":"src/internal/_eqDeep.js","position":54,"original_position":54,"commit_id":"af1b132e30616f785a85d717d951c7c0c9b1651a","original_commit_id":"af1b132e30616f785a85d717d951c7c0c9b1651a","user":{"login":"davidrusu","id":1832378,"avatar_url":"https://avatars.githubusercontent.com/u/1832378?v=3","gravatar_id":"","url":"https://api.github.com/users/davidrusu","html_url":"https://github.com/davidrusu","followers_url":"https://api.github.com/users/davidrusu/followers","following_url":"https://api.github.com/users/davidrusu/following{/other_user}","gists_url":"https://api.github.com/users/davidrusu/gists{/gist_id}","starred_url":"https://api.github.com/users/davidrusu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidrusu/subscriptions","organizations_url":"https://api.github.com/users/davidrusu/orgs","repos_url":"https://api.github.com/users/davidrusu/repos","events_url":"https://api.github.com/users/davidrusu/events{/privacy}","received_events_url":"https://api.github.com/users/davidrusu/received_events","type":"User","site_admin":false},"body":"ahh, tricky","created_at":"2015-01-15T06:16:12Z","updated_at":"2015-01-15T06:16:12Z","html_url":"https://github.com/ramda/ramda/pull/718#discussion_r22992435","pull_request_url":"https://api.github.com/repos/ramda/ramda/pulls/718","_links":{"self":{"href":"https://api.github.com/repos/ramda/ramda/pulls/comments/22992435"},"html":{"href":"https://github.com/ramda/ramda/pull/718#discussion_r22992435"},"pull_request":{"href":"https://api.github.com/repos/ramda/ramda/pulls/718"}}},"pull_request":{"url":"https://api.github.com/repos/ramda/ramda/pulls/718","id":27158555,"html_url":"https://github.com/ramda/ramda/pull/718","diff_url":"https://github.com/ramda/ramda/pull/718.diff","patch_url":"https://github.com/ramda/ramda/pull/718.patch","issue_url":"https://api.github.com/repos/ramda/ramda/issues/718","number":718,"state":"open","locked":false,"title":"added eqDeep","user":{"login":"davidrusu","id":1832378,"avatar_url":"https://avatars.githubusercontent.com/u/1832378?v=3","gravatar_id":"","url":"https://api.github.com/users/davidrusu","html_url":"https://github.com/davidrusu","followers_url":"https://api.github.com/users/davidrusu/followers","following_url":"https://api.github.com/users/davidrusu/following{/other_user}","gists_url":"https://api.github.com/users/davidrusu/gists{/gist_id}","starred_url":"https://api.github.com/users/davidrusu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidrusu/subscriptions","organizations_url":"https://api.github.com/users/davidrusu/orgs","repos_url":"https://api.github.com/users/davidrusu/repos","events_url":"https://api.github.com/users/davidrusu/events{/privacy}","received_events_url":"https://api.github.com/users/davidrusu/received_events","type":"User","site_admin":false},"body":"Discussion at (#699)","created_at":"2015-01-11T04:10:27Z","updated_at":"2015-01-15T06:16:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a1927253f10af7b509380b049c30f80eb5a2f9e9","assignee":null,"milestone":{"url":"https://api.github.com/repos/ramda/ramda/milestones/5","labels_url":"https://api.github.com/repos/ramda/ramda/milestones/5/labels","id":893666,"number":5,"title":"0.9.0","description":"","creator":{"login":"davidchambers","id":210406,"avatar_url":"https://avatars.githubusercontent.com/u/210406?v=3","gravatar_id":"","url":"https://api.github.com/users/davidchambers","html_url":"https://github.com/davidchambers","followers_url":"https://api.github.com/users/davidchambers/followers","following_url":"https://api.github.com/users/davidchambers/following{/other_user}","gists_url":"https://api.github.com/users/davidchambers/gists{/gist_id}","starred_url":"https://api.github.com/users/davidchambers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidchambers/subscriptions","organizations_url":"https://api.github.com/users/davidchambers/orgs","repos_url":"https://api.github.com/users/davidchambers/repos","events_url":"https://api.github.com/users/davidchambers/events{/privacy}","received_events_url":"https://api.github.com/users/davidchambers/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":3,"state":"open","created_at":"2014-12-06T02:34:10Z","updated_at":"2015-01-13T01:33:36Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/ramda/ramda/pulls/718/commits","review_comments_url":"https://api.github.com/repos/ramda/ramda/pulls/718/comments","review_comment_url":"https://api.github.com/repos/ramda/ramda/pulls/comments/{number}","comments_url":"https://api.github.com/repos/ramda/ramda/issues/718/comments","statuses_url":"https://api.github.com/repos/ramda/ramda/statuses/af1b132e30616f785a85d717d951c7c0c9b1651a","head":{"label":"davidrusu:eqDeep","ref":"eqDeep","sha":"af1b132e30616f785a85d717d951c7c0c9b1651a","user":{"login":"davidrusu","id":1832378,"avatar_url":"https://avatars.githubusercontent.com/u/1832378?v=3","gravatar_id":"","url":"https://api.github.com/users/davidrusu","html_url":"https://github.com/davidrusu","followers_url":"https://api.github.com/users/davidrusu/followers","following_url":"https://api.github.com/users/davidrusu/following{/other_user}","gists_url":"https://api.github.com/users/davidrusu/gists{/gist_id}","starred_url":"https://api.github.com/users/davidrusu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidrusu/subscriptions","organizations_url":"https://api.github.com/users/davidrusu/orgs","repos_url":"https://api.github.com/users/davidrusu/repos","events_url":"https://api.github.com/users/davidrusu/events{/privacy}","received_events_url":"https://api.github.com/users/davidrusu/received_events","type":"User","site_admin":false},"repo":{"id":29080481,"name":"ramda","full_name":"davidrusu/ramda","owner":{"login":"davidrusu","id":1832378,"avatar_url":"https://avatars.githubusercontent.com/u/1832378?v=3","gravatar_id":"","url":"https://api.github.com/users/davidrusu","html_url":"https://github.com/davidrusu","followers_url":"https://api.github.com/users/davidrusu/followers","following_url":"https://api.github.com/users/davidrusu/following{/other_user}","gists_url":"https://api.github.com/users/davidrusu/gists{/gist_id}","starred_url":"https://api.github.com/users/davidrusu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidrusu/subscriptions","organizations_url":"https://api.github.com/users/davidrusu/orgs","repos_url":"https://api.github.com/users/davidrusu/repos","events_url":"https://api.github.com/users/davidrusu/events{/privacy}","received_events_url":"https://api.github.com/users/davidrusu/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/davidrusu/ramda","description":"Practical functional Javascript","fork":true,"url":"https://api.github.com/repos/davidrusu/ramda","forks_url":"https://api.github.com/repos/davidrusu/ramda/forks","keys_url":"https://api.github.com/repos/davidrusu/ramda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davidrusu/ramda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davidrusu/ramda/teams","hooks_url":"https://api.github.com/repos/davidrusu/ramda/hooks","issue_events_url":"https://api.github.com/repos/davidrusu/ramda/issues/events{/number}","events_url":"https://api.github.com/repos/davidrusu/ramda/events","assignees_url":"https://api.github.com/repos/davidrusu/ramda/assignees{/user}","branches_url":"https://api.github.com/repos/davidrusu/ramda/branches{/branch}","tags_url":"https://api.github.com/repos/davidrusu/ramda/tags","blobs_url":"https://api.github.com/repos/davidrusu/ramda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davidrusu/ramda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davidrusu/ramda/git/refs{/sha}","trees_url":"https://api.github.com/repos/davidrusu/ramda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davidrusu/ramda/statuses/{sha}","languages_url":"https://api.github.com/repos/davidrusu/ramda/languages","stargazers_url":"https://api.github.com/repos/davidrusu/ramda/stargazers","contributors_url":"https://api.github.com/repos/davidrusu/ramda/contributors","subscribers_url":"https://api.github.com/repos/davidrusu/ramda/subscribers","subscription_url":"https://api.github.com/repos/davidrusu/ramda/subscription","commits_url":"https://api.github.com/repos/davidrusu/ramda/commits{/sha}","git_commits_url":"https://api.github.com/repos/davidrusu/ramda/git/commits{/sha}","comments_url":"https://api.github.com/repos/davidrusu/ramda/comments{/number}","issue_comment_url":"https://api.github.com/repos/davidrusu/ramda/issues/comments/{number}","contents_url":"https://api.github.com/repos/davidrusu/ramda/contents/{+path}","compare_url":"https://api.github.com/repos/davidrusu/ramda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davidrusu/ramda/merges","archive_url":"https://api.github.com/repos/davidrusu/ramda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davidrusu/ramda/downloads","issues_url":"https://api.github.com/repos/davidrusu/ramda/issues{/number}","pulls_url":"https://api.github.com/repos/davidrusu/ramda/pulls{/number}","milestones_url":"https://api.github.com/repos/davidrusu/ramda/milestones{/number}","notifications_url":"https://api.github.com/repos/davidrusu/ramda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davidrusu/ramda/labels{/name}","releases_url":"https://api.github.com/repos/davidrusu/ramda/releases{/id}","created_at":"2015-01-11T03:46:53Z","updated_at":"2015-01-11T03:46:54Z","pushed_at":"2015-01-14T15:03:42Z","git_url":"git://github.com/davidrusu/ramda.git","ssh_url":"git@github.com:davidrusu/ramda.git","clone_url":"https://github.com/davidrusu/ramda.git","svn_url":"https://github.com/davidrusu/ramda","homepage":"http://ramdajs.com","size":7196,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ramda:master","ref":"master","sha":"e6d914874b702e5cefc258a0e3eac8954d00385f","user":{"login":"ramda","id":5298359,"avatar_url":"https://avatars.githubusercontent.com/u/5298359?v=3","gravatar_id":"","url":"https://api.github.com/users/ramda","html_url":"https://github.com/ramda","followers_url":"https://api.github.com/users/ramda/followers","following_url":"https://api.github.com/users/ramda/following{/other_user}","gists_url":"https://api.github.com/users/ramda/gists{/gist_id}","starred_url":"https://api.github.com/users/ramda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ramda/subscriptions","organizations_url":"https://api.github.com/users/ramda/orgs","repos_url":"https://api.github.com/users/ramda/repos","events_url":"https://api.github.com/users/ramda/events{/privacy}","received_events_url":"https://api.github.com/users/ramda/received_events","type":"Organization","site_admin":false},"repo":{"id":10851820,"name":"ramda","full_name":"ramda/ramda","owner":{"login":"ramda","id":5298359,"avatar_url":"https://avatars.githubusercontent.com/u/5298359?v=3","gravatar_id":"","url":"https://api.github.com/users/ramda","html_url":"https://github.com/ramda","followers_url":"https://api.github.com/users/ramda/followers","following_url":"https://api.github.com/users/ramda/following{/other_user}","gists_url":"https://api.github.com/users/ramda/gists{/gist_id}","starred_url":"https://api.github.com/users/ramda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ramda/subscriptions","organizations_url":"https://api.github.com/users/ramda/orgs","repos_url":"https://api.github.com/users/ramda/repos","events_url":"https://api.github.com/users/ramda/events{/privacy}","received_events_url":"https://api.github.com/users/ramda/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ramda/ramda","description":"Practical functional Javascript","fork":false,"url":"https://api.github.com/repos/ramda/ramda","forks_url":"https://api.github.com/repos/ramda/ramda/forks","keys_url":"https://api.github.com/repos/ramda/ramda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ramda/ramda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ramda/ramda/teams","hooks_url":"https://api.github.com/repos/ramda/ramda/hooks","issue_events_url":"https://api.github.com/repos/ramda/ramda/issues/events{/number}","events_url":"https://api.github.com/repos/ramda/ramda/events","assignees_url":"https://api.github.com/repos/ramda/ramda/assignees{/user}","branches_url":"https://api.github.com/repos/ramda/ramda/branches{/branch}","tags_url":"https://api.github.com/repos/ramda/ramda/tags","blobs_url":"https://api.github.com/repos/ramda/ramda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ramda/ramda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ramda/ramda/git/refs{/sha}","trees_url":"https://api.github.com/repos/ramda/ramda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ramda/ramda/statuses/{sha}","languages_url":"https://api.github.com/repos/ramda/ramda/languages","stargazers_url":"https://api.github.com/repos/ramda/ramda/stargazers","contributors_url":"https://api.github.com/repos/ramda/ramda/contributors","subscribers_url":"https://api.github.com/repos/ramda/ramda/subscribers","subscription_url":"https://api.github.com/repos/ramda/ramda/subscription","commits_url":"https://api.github.com/repos/ramda/ramda/commits{/sha}","git_commits_url":"https://api.github.com/repos/ramda/ramda/git/commits{/sha}","comments_url":"https://api.github.com/repos/ramda/ramda/comments{/number}","issue_comment_url":"https://api.github.com/repos/ramda/ramda/issues/comments/{number}","contents_url":"https://api.github.com/repos/ramda/ramda/contents/{+path}","compare_url":"https://api.github.com/repos/ramda/ramda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ramda/ramda/merges","archive_url":"https://api.github.com/repos/ramda/ramda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ramda/ramda/downloads","issues_url":"https://api.github.com/repos/ramda/ramda/issues{/number}","pulls_url":"https://api.github.com/repos/ramda/ramda/pulls{/number}","milestones_url":"https://api.github.com/repos/ramda/ramda/milestones{/number}","notifications_url":"https://api.github.com/repos/ramda/ramda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ramda/ramda/labels{/name}","releases_url":"https://api.github.com/repos/ramda/ramda/releases{/id}","created_at":"2013-06-21T20:32:35Z","updated_at":"2015-01-14T20:29:04Z","pushed_at":"2015-01-14T19:07:12Z","git_url":"git://github.com/ramda/ramda.git","ssh_url":"git@github.com:ramda/ramda.git","clone_url":"https://github.com/ramda/ramda.git","svn_url":"https://github.com/ramda/ramda","homepage":"http://ramdajs.com","size":7196,"stargazers_count":1489,"watchers_count":1489,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":100,"mirror_url":null,"open_issues_count":24,"forks":100,"open_issues":24,"watchers":1489,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ramda/ramda/pulls/718"},"html":{"href":"https://github.com/ramda/ramda/pull/718"},"issue":{"href":"https://api.github.com/repos/ramda/ramda/issues/718"},"comments":{"href":"https://api.github.com/repos/ramda/ramda/issues/718/comments"},"review_comments":{"href":"https://api.github.com/repos/ramda/ramda/pulls/718/comments"},"review_comment":{"href":"https://api.github.com/repos/ramda/ramda/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/ramda/ramda/pulls/718/commits"},"statuses":{"href":"https://api.github.com/repos/ramda/ramda/statuses/af1b132e30616f785a85d717d951c7c0c9b1651a"}}}}