Skip to content
View application.controller.js
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
View application.controller.js
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
actions: {
updateValue(value) {
this.set('output', value);
}
}
View component.js
import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement() {
this._super(...arguments);
// * if a computed property is never consumed, it will not be "active"
// * observers observe "active" things
// in most scenarios, computed properties are consumed often by templates (thereby typically observers appear to work without a manual kick)
// since this CP is not consumed naturally (it is essentially being consumed by a non-ember thing), we must give it a kick.
View application.controller.js
import Ember from 'ember';
export default Ember.Controller.extend({
elements: [
{name: "Uranium"},
{name: "Plutonium"},
{name: "Francium"},
{name: "Einstanium"}
],
searchQuery: ''
View application.controller.js
import Ember from 'ember';
let lastId = 0;
export default Ember.Controller.extend({
rootItems: Ember.computed.filter('owner.items', function(item) {
return item.get('parent.content') === null;
}).property('owner.items.@each.parent'),
owner: Ember.computed(function() {
View gist:18924ce95932bfcaea81
before
```
➜ slow-ember-cli-project git:(master) ✗ file changed app.js
Build successful - 1871ms.
Slowest Trees | Total
----------------------------------------------+---------------------
SassCompiler | 969ms
TreeMerger (appTestTrees) | 170ms
View application.controller.js
import Ember from 'ember';
function optionsProperty(dependentKey) {
return Ember.computed(dependentKey, function() {
return this.get(dependentKey).split(',').map(Function.prototype.call, String.prototype.trim);
});
}
export default Ember.Controller.extend({
init() {
View application.controller.js
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle'
});
View mem-leak-monday.md

well its tuesday, but I was with family yesterday...

Late last week @cibernox reported that https://github.com/emberjs/ember.js/issues/11748 was still leaking for him. As it turns out, the main leak was forgetting to null out top levels vars in afterEach. But that kinda sucks, as it is tedious and error prone. So instead I wanted a better solution, one where the purden was not on the test writers. So, as it turns out we can also just release the ES2015 module after requiring it, allowing the JS GC to do the work for us.

The follow commits add the ability to unsee a module in the loader, and configure the test-loader to unsee after requiring.

View controllers.application.js
import Ember from 'ember';
Ember.Handlebars.helper('is-equal', function(a, b){
return a === b;
});
export default Ember.Controller.extend({
appName:'Ember Twiddle',
actions: {
Something went wrong with that request. Please try again.