docs: function propertyWillChange(obj, keyName) {
        var m = obj['__ember_meta__'];
        var watching = (m && m.watching[keyName] > 0) || keyName === 'length';
        var proto = m && m.proto;
        var desc = m && m.descs[keyName];
  
        if (!watching) { return; }
        if (proto === obj) { return; }
        if (desc && desc.willChange) { desc.willChange(obj, keyName); }
        dependentKeysWillChange(obj, keyName, m);
        chainsWillChange(obj, keyName, m);
        notifyBeforeObservers(obj, keyName);
      }