{"action":"created","issue":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/12756","labels_url":"https://api.github.com/repos/emberjs/ember.js/issues/12756/labels{/name}","comments_url":"https://api.github.com/repos/emberjs/ember.js/issues/12756/comments","events_url":"https://api.github.com/repos/emberjs/ember.js/issues/12756/events","html_url":"https://github.com/emberjs/ember.js/issues/12756","id":123991086,"number":12756,"title":"QUnit 1.20 `deepEqual` with EmptyObject","user":{"login":"rwjblue","id":12637,"avatar_url":"https://avatars.githubusercontent.com/u/12637?v=3","gravatar_id":"","url":"https://api.github.com/users/rwjblue","html_url":"https://github.com/rwjblue","followers_url":"https://api.github.com/users/rwjblue/followers","following_url":"https://api.github.com/users/rwjblue/following{/other_user}","gists_url":"https://api.github.com/users/rwjblue/gists{/gist_id}","starred_url":"https://api.github.com/users/rwjblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwjblue/subscriptions","organizations_url":"https://api.github.com/users/rwjblue/orgs","repos_url":"https://api.github.com/users/rwjblue/repos","events_url":"https://api.github.com/users/rwjblue/events{/privacy}","received_events_url":"https://api.github.com/users/rwjblue/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-12-27T18:25:53Z","updated_at":"2016-01-06T16:33:53Z","closed_at":null,"body":"In versions of QUnit prior to 1.20 it was not possible to compare any object without a constructor against one with a constructor, but a special exemption was made for those with a `constructor` of `null`.  @stefanpenner reported this issue in https://github.com/jquery/qunit/issues/851 and goes into a bunch more detail there.  This was fixed upstream in QUnit in https://github.com/jquery/qunit/commit/b8f19267650be88c2b68d3d227d23314ddafe02c and released as part of QUnit 1.20.\r\n\r\nUnfortunately, we do not perfectly matched the scenario that was fixed because we use `constructor` value of `undefined` (and QUnit 1.20.0 is specifically checking for `null`).\r\n\r\nI am unsure if we should change our internal `EmptyObject` to use `null` or if we should update QUnit to detect falsey `constructor`.\r\n\r\nI'd love @stefanpenner's and @leobalter's thoughts here."},"comment":{"url":"https://api.github.com/repos/emberjs/ember.js/issues/comments/169381037","html_url":"https://github.com/emberjs/ember.js/issues/12756#issuecomment-169381037","issue_url":"https://api.github.com/repos/emberjs/ember.js/issues/12756","id":169381037,"user":{"login":"rwjblue","id":12637,"avatar_url":"https://avatars.githubusercontent.com/u/12637?v=3","gravatar_id":"","url":"https://api.github.com/users/rwjblue","html_url":"https://github.com/rwjblue","followers_url":"https://api.github.com/users/rwjblue/followers","following_url":"https://api.github.com/users/rwjblue/following{/other_user}","gists_url":"https://api.github.com/users/rwjblue/gists{/gist_id}","starred_url":"https://api.github.com/users/rwjblue/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwjblue/subscriptions","organizations_url":"https://api.github.com/users/rwjblue/orgs","repos_url":"https://api.github.com/users/rwjblue/repos","events_url":"https://api.github.com/users/rwjblue/events{/privacy}","received_events_url":"https://api.github.com/users/rwjblue/received_events","type":"User","site_admin":false},"created_at":"2016-01-06T16:33:53Z","updated_at":"2016-01-06T16:33:53Z","body":"Not sure what you mean. I'm not certain that Ember needs to use undefined as the constructor value (if that is what you mean).\r\n\r\nIt would certainly be nice to be able to use deepEqual with our EmptyObjects, and for that to work we either need to swap to use null or QUnit needs to do a falsey check. \r\n\r\nI'm just not sure who is \"wrong\" here..."}}