code: function serializeToJson(target, filterFunction, options) {
    options = defaultValue(options, defaultValue.EMPTY_OBJECT);
    filterFunction = defaultValue(filterFunction, function() {
      return true;
    });
  
    var result = {};
  
    for (var propertyName in target) {
      if (
        target.hasOwnProperty(propertyName) &&
        propertyName.length > 0 &&
        propertyName[0] !== "_" &&
        propertyName !== "parent" &&
        filterFunction(propertyName, target)
      ) {
        if (target.serializers && target.serializers[propertyName]) {
          target.serializers[propertyName](target, result, propertyName, options);
        } else {
          result[propertyName] = target[propertyName];
        }
      }
    }
  
    return result;
  }
docs: Serializes an object to JSON.
  @param {Object} target The object to serialize.
  @param {Function} filterFunction A function that, when passed the name of a property as its only parameter, returns true if that property should be serialized and false otherwise.
  @param {Object} [options] Optional parameters to custom serializers.
  @return {Object} An object literal corresponding to the serialized object, ready to pass to `JSON.stringify`.