code: function _immediateObserver() {
      _emberMetalDebug.deprecate('Usage of `Ember.immediateObserver` is deprecated, use `Ember.observer` instead.', false, { id: 'ember-metal.immediate-observer', until: '3.0.0' });
  
      for (var i = 0, l = arguments.length; i < l; i++) {
        var arg = arguments[i];
        _emberMetalDebug.assert('Immediate observers must observe internal properties only, not properties on other objects.', typeof arg !== 'string' || arg.indexOf('.') === -1);
      }
  
      return observer.apply(this, arguments);
    }
docs: Specify a method that observes property changes.
  
  ```javascript
  Ember.Object.extend({
  valueObserver: Ember.immediateObserver('value', function() {
  Executes whenever the "value" property changes
  })
  });
  ```
  
  In the future, `Ember.observer` may become asynchronous. In this event,
  `Ember.immediateObserver` will maintain the synchronous behavior.
  
  Also available as `Function.prototype.observesImmediately` if prototype extensions are
  enabled.
  
  @method _immediateObserver
  @for Ember
  @param {String} propertyNames*
  @param {Function} func
  @deprecated Use `Ember.observer` instead.
  @return func
  @private