code: function (key, value) {
              var oldValue = this.getItem(key);
  
              var serializedValue = this.serializer.serialize(value, {
                  reversible : true,
                  keepMetadata : false
              });
  
              ariaStorageEventBus.stop = true;
              this._set(this.namespace + key, serializedValue);
              ariaStorageEventBus.stop = false;
  
              // don't notify directly value because the serialization might modify the object (e.g. metadata)
              value = this.serializer.parse(serializedValue);
  
              ariaStorageEventBus.notifyChange(this.type, key, value, oldValue, this.namespace);
          }
docs: Add a key/value pair in the list. If the key already exists, its value is updated without raising errors or
  warnings. If the value can't be set (for instance because of exceeded quota or wrong value type) an error is
  thrown.
  @param {String} key identifier of a value
  @param {String|Object} value value to be stored. If it's not a string, it's converted into it with an
  optional serialization
  @throws