/*! knockout-spa (https://github.com/onlyurei/knockout-spa) * Copyright 2015-2016 Cheng Fan * MIT Licensed (https://raw.githubusercontent.com/onlyurei/knockout-spa/master/LICENSE) */
define(['util/json', 'util/storage', 'jsface', 'ko', 'sugar'], function (Json, Storage, Class, ko) {

  var PersistedObservable = Class({
    constructor: function (storageKey, defaults, persist) {
      var data = Object.merge(Object.isObject(defaults) ? defaults : {}, Storage.get(storageKey), true);
      Object.merge(this, data, true);
      ko.observe(this);

      Json.traverse(this, function (key, value, object) {
        var _key = '_' + key;
        if (ko.isObservable(object[_key])) {
          var subscription = object[_key].subscribe(persist || function () { //CAUTION: beware of memory leak, be sure to call dispose() when disposing
              Storage.set(storageKey, this.serialize && this.serialize() || this);
            }.bind(this));
          Object.defineProperty(object, _key + '_subscription', {
            value: subscription,
            enumerable: false
          })
        }
      }.bind(this));

      return this;
    },
    dispose: function () {
      Json.traverse(this, function (key, value, object) {
        var _key = '_' + key + '_subscription';
        object[_key] && object[_key].dispose && object[_key].dispose();
      }.bind(this));
    }
  });

  return PersistedObservable;

});

@@ -446,16 +446,31 @@
 ts : %7B%7D,
+ (storageKey &&
  Storage
@@ -485,16 +485,23 @@
 rageKey)
+) %7C%7C %7B%7D
 , true);
@@ -560,24 +560,50 @@
 rve(this);%0A%0A
+      if (storageKey) %7B%0A  
       Json.t
@@ -640,32 +640,34 @@
 alue, object) %7B%0A
+  
         var _key
@@ -684,24 +684,26 @@
 ey;%0A        
+  
 if (ko.isObs
@@ -723,24 +723,26 @@
 t%5B_key%5D)) %7B%0A
+  
           va
@@ -895,16 +895,18 @@
         
+  
 Storage.
@@ -974,24 +974,26 @@
             
+ 
+ 
 %7D.bind(this)
@@ -991,24 +991,26 @@
 ind(this));%0A
+  
           Ob
@@ -1075,16 +1075,18 @@
         
+  
 value: s
@@ -1098,16 +1098,18 @@
 iption,%0A
+  
         
@@ -1140,16 +1140,18 @@
         
+  
 %7D)%0A     
@@ -1153,18 +1153,22 @@
         
-%7D%0A
+  %7D%0A  
       %7D.
@@ -1179,16 +1179,24 @@
 (this));
+%0A      %7D
 %0A%0A      

Make storageKey in persisted-observable optional.