title: Who will dispose of a computed created on-the-fly?
body: <p>I'm building a SPA using knockout.js. In my viewmodels I often use the "on-the-fly" computeds trick to track changes and maintain state. Here is an example:</p>
  
  <pre><code>var fileBrowserViewModel = function() {
    this.currentFolder = ko.observable("/");
    this.folderPath = ko.observableArray(["/"]);
  
    // on-the-fly created computed to maintain folderpath when currentFolder changes
    ko.computed(function() {
      var index = this.folderPath.indexOf(this.currentFolder());
      if (index &lt; 0)
        this.folderPath.push(this.currentFolder());
      else
        this.folderPath.splice(index+1, this.folderPath().length-index);
    }, this);     
  }
  </code></pre>
  
  <p>I have a logic which disposes every publicly exposed computed property of the viewmodel. But what happens with these implicitly declared computeds after the wrapping viewmodel has been released?
  How and when exactly are computeds disposed of? Could it cause memory leaks?</p>