code: function isEmpty(obj) {
        var none = isNone(obj);
        if (none) {
          return none;
        }
  
        if (typeof obj.size === 'number') {
          return !obj.size;
        }
  
        var objectType = typeof obj;
  
        if (objectType === 'object') {
          var size = get(obj, 'size');
          if (typeof size === 'number') {
            return !size;
          }
        }
  
        if (typeof obj.length === 'number' && objectType !== 'function') {
          return !obj.length;
        }
  
        if (objectType === 'object') {
          var length = get(obj, 'length');
          if (typeof length === 'number') {
            return !length;
          }
        }
  
        return false;
      }
docs: Verifies that a value is `null` or an empty string, empty array,
  or empty function.
  
  Constrains the rules on `Ember.isNone` by returning true for empty
  string and empty arrays.
  
  ```javascript
  Ember.isEmpty();                // true
  Ember.isEmpty(null);            // true
  Ember.isEmpty(undefined);       // true
  Ember.isEmpty('');              // true
  Ember.isEmpty([]);              // true
  Ember.isEmpty('Adam Hawkins');  // false
  Ember.isEmpty([0,1,2]);         // false
  ```
  
  @method isEmpty
  @for Ember
  @param {Object} obj Value to test
  @return {Boolean}