public/lib/emberjs/ember.js
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;
      }
    }
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;
      }
    }
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 ; } }
utils.js
utils . js