function transferProperties(target, source) {
    each$1(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {
        if (source.hasOwnProperty(propName)) {
            target[propName] = source[propName];
        }
    });

    target.__wrappedMethods = source.__wrappedMethods;

    each$1(CLONE_PROPERTIES, function (propName) {
        target[propName] = clone(source[propName]);
    });

    target._calculationInfo = extend(source._calculationInfo);
}
User output info of this data.
DO NOT use it in other places!

When preparing user params for user callbacks, we have
to clone these inner data structures to prevent users
from modifying them to effect built-in logic. And for
performance consideration we make this `userOutput` to
avoid clone them too many times.

@type {Object}
@readOnly