vslinko/es6-object-concise — pull request #1 by eventualbuddha (2014-07-31 00:07:58+00:00)
Title: Fix method scoping

This fixes the problem brought up by @DmitrySoshnikov where the function expression would shadow outer references with the same identifier. Most of the time the output is the same, e.g.

```js
var a = {
b() {
return 'c';
}
};

// becomes

var a = {
b: function b() {
return 'c';
}
};
```

But if the function has a reference with the method identifier, we have to do more to prevent it from shadowing:

```js
var a = {
b() {
return typeof b;
}
};

// becomes

var a = {
b: function($__b) {
return function b() {
return $__b.apply(this, arguments);
};
}(function() {
return typeof b;
})
};
```

This keeps both the function name and the scope chain correct.