emberjs/ember.js — pull request #3105 by sebastianseilund (2013-08-06 00:28:28+00:00)
Title: Handlebars template as properties should not be regarded as methods

We're having issues when reopening views/components and overriding their `template` properties, if the views use `{{yield}}`.

Example:

```javascript
App.TestThingView = Em.Component.extend({
layout: Em.Handlebars.compile('

{{yield}}

'),
template: Em.Handlebars.compile('Hey')
});

App.TestThingView.reopen({
template: Em.Handlebars.compile('Please don\'t super me.')
});
```

Will result in:

```
Assertion failed: Ember.Object.create no longer supports defining methods that call _super.
```

The problem is that yield views are created with the `template` property sent to `Ember.View.create` here: https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/helpers/yield.js#L75

The fix is to set `isMethod = false` on the compiled Handlebars templates, so that they are never regarded as class methods and therefore not wrapped with `_super` (https://github.com/emberjs/ember.js/blob/master/packages/ember-metal/lib/mixin.js#L50)