[DOC release] Update Ember.computed with depKeys and example
Merge pull request #5486 from knownasilya/docs-computed-dep-keys

[DOC release] Update Ember.computed with depKeys and example
[BUGFIX release] Ensure exports are setup for node build.
[Bugfix beta] ensure pushUnique targetQueue is cleared by flush
Merge pull request #5490 from stefanpenner/fix-bb

[Bugfix beta] ensure pushUnique targetQueue is cleared by flush
remove unused vars and enforce in jshint
Merge pull request #5475 from emberjs/unused-jshint-vars

remove unused vars and enforce in jshint
Merge pull request #5489 from rwjblue/ensure-exports-for-nodeland

[BUGFIX release] Ensure exports are setup for node build.
[BUGFIX beta] instrument should still call block even if no subscribers
remove uneeded normalization (lookupFactory already does this)
Merge pull request #5497 from stefanpenner/remove-wasteful-normalize

remove uneeded normalization (lookupFactory already does this)
[BUGFIX release] Makes sure that internal properties do not leak onto created objects.

Fixes #5485.
Merge pull request #5501 from twokul/super-fix

[BUGFIX release] Makes sure that internal properties do not leak onto created objects.
[FEATURE conditional-observers-and-listeners]

Specify conditions under which an observer and/or listener should fire. A
condition can be any property that evaluates to a boolean value.

```javascript
App.PersonView = Ember.View.extend({
  friends: [{ name: 'Tom' }, { name: 'Stefan' }, { name: 'Kris' }],

  inDOM: Ember.observer('state', function(obj, keyName) {
    return obj.get(keyName) === 'inDOM';
  }),

  onHover: Ember.on('hover', Ember.when('inDOM', function() {
    // Will only fire if inDOM is true
    // ...
  })),

  valueWillChange: Ember.beforeObserver('content.value', Ember.when('inDOM', function(obj, keyName) {
    // Will only fire if inDOM is true
    this.changingFrom = obj.get(keyName);
  })),

  valueDidChange: Ember.observer('content.value', Ember.when('inDOM', function(obj, keyName) {
    // Will only fire if inDOM is true
    var color = obj.get(keyName) > this.changingFrom ? 'green' : 'red';
    // ...
  }))
});
```

The `when` extension of JavaScript's Function prototype is
available when `Ember.EXTEND_PROTOTYPES` or
`Ember.EXTEND_PROTOTYPES.Function` is true, which is the default.

You can specify conditions that control when an observer and/or listener
should fire. For example:

```javascript
Ember.TextField.extend({

  selectAllTextEnabled: true,

  selectAllText: function() {
    // Executes whenever the "focusIn" event occurs
    // and selectAllTextEnabled is true
    this.$().select();
  }.on('focusIn').when('selectAllTextEnabled')
});