{"action":"created","issue":{"url":"https://api.github.com/repos/emberjs/rfcs/issues/82","labels_url":"https://api.github.com/repos/emberjs/rfcs/issues/82/labels{/name}","comments_url":"https://api.github.com/repos/emberjs/rfcs/issues/82/comments","events_url":"https://api.github.com/repos/emberjs/rfcs/issues/82/events","html_url":"https://github.com/emberjs/rfcs/issues/82","id":100431123,"number":82,"title":"Should Ember.isEmpty({}) be true?","user":{"login":"codefox421","id":1056681,"avatar_url":"https://avatars.githubusercontent.com/u/1056681?v=3","gravatar_id":"","url":"https://api.github.com/users/codefox421","html_url":"https://github.com/codefox421","followers_url":"https://api.github.com/users/codefox421/followers","following_url":"https://api.github.com/users/codefox421/following{/other_user}","gists_url":"https://api.github.com/users/codefox421/gists{/gist_id}","starred_url":"https://api.github.com/users/codefox421/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codefox421/subscriptions","organizations_url":"https://api.github.com/users/codefox421/orgs","repos_url":"https://api.github.com/users/codefox421/repos","events_url":"https://api.github.com/users/codefox421/events{/privacy}","received_events_url":"https://api.github.com/users/codefox421/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-11T23:06:42Z","updated_at":"2015-08-13T03:29:48Z","closed_at":null,"body":"It seems counter-intuitive that `Ember.isEmpty({})` returns false. Should it return true instead?\r\n\r\nOne theoretical hurdle I ran into while writing up the change locally was justifying that the methods which depend on [`isEmpty`](http://emberjs.com/api/#method_isEmpty) should also change. Those methods are [`isBlank`](http://emberjs.com/api/#method_isBlank) and [`isPresent`](http://emberjs.com/api/#method_isPresent).\r\n\r\n`isBlank` is fairly reasonable to justify: an empty object is also blank. Pretty straight-forward.\r\n\r\n`isPresent` is not as easy. If `Ember.isEmpty({})` returns true, then `Ember.isPresent({})` returns false. This means an empty object is \"not present\". This seems a little strange at first. I discussed this with a colleague, and we settled on this rational:\r\n\r\n> An array is an object.\r\n> An empty array is both blank and \"not present\".\r\n> Therefore, an empty object is also blank and \"not present\".\r\n\r\nWould you agree?"},"comment":{"url":"https://api.github.com/repos/emberjs/rfcs/issues/comments/130518723","html_url":"https://github.com/emberjs/rfcs/issues/82#issuecomment-130518723","issue_url":"https://api.github.com/repos/emberjs/rfcs/issues/82","id":130518723,"user":{"login":"mmun","id":1151810,"avatar_url":"https://avatars.githubusercontent.com/u/1151810?v=3","gravatar_id":"","url":"https://api.github.com/users/mmun","html_url":"https://github.com/mmun","followers_url":"https://api.github.com/users/mmun/followers","following_url":"https://api.github.com/users/mmun/following{/other_user}","gists_url":"https://api.github.com/users/mmun/gists{/gist_id}","starred_url":"https://api.github.com/users/mmun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmun/subscriptions","organizations_url":"https://api.github.com/users/mmun/orgs","repos_url":"https://api.github.com/users/mmun/repos","events_url":"https://api.github.com/users/mmun/events{/privacy}","received_events_url":"https://api.github.com/users/mmun/received_events","type":"User","site_admin":false},"created_at":"2015-08-13T03:29:48Z","updated_at":"2015-08-13T03:29:48Z","body":"An addon is a good solution."}}