code: function watchKey(obj, keyName, meta) {
        // can't watch length on Array - it is special...
        if (keyName === 'length' && typeOf(obj) === 'array') { return; }
  
        var m = meta || metaFor(obj), watching = m.watching;
  
        // activate watching first time
        if (!watching[keyName]) {
          watching[keyName] = 1;
  
          var desc = m.descs[keyName];
          if (desc && desc.willWatch) { desc.willWatch(obj, keyName); }
  
          if ('function' === typeof obj.willWatchProperty) {
            obj.willWatchProperty(keyName);
          }
  
          
            if (hasPropertyAccessors) {
              handleMandatorySetter(m, obj, keyName);
            }
          
        } else {
          watching[keyName] = (watching[keyName] || 0) + 1;
        }
      }
docs: utils.js