emberjs/ember.js — pull request #4004 by twokul (2013-12-27 17:48:21+00:00)
Title: [BUGFIX beta] Watching non-configurable properties

If you try to re-define property that is non-configurable, the error is going to be thrown `You can't re-define property X`.

To illustrate the issue:

```javascript
var obj = {};

Object.defineProperty(obj, 'name', {});

// the following code throws exception
Object.defineProperty(obj, 'name', {
configurable: true
});
```

According to [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FObject%2FdefineProperty) when you define property without specifying the descriptor, `configurable` defaults to `false`.

This PR adds an assertion if you're trying to watch `non-configurable` properties.

Thanks to @danmcclain for pointing it out.

/cc @kselden