src/util.js
function _objectCopy(sourceRef, copyRef, rc) {
    let origIndex = rc.xStack.indexOf(sourceRef);
    if (origIndex === -1) {
        rc.push(sourceRef, copyRef);
        for (let [key, val] of _entries(sourceRef))
            copyRef[key] = _clone(val, rc);
        let symbols = Object.getOwnPropertySymbols(sourceRef);
        for (let symbol of symbols)
            copyRef[symbol] = _clone(sourceRef[symbol], rc);
        rc.pop();
        return copyRef;
    }
    else
        return rc.yStack[origIndex];
}
function _objectCopy(sourceRef, copyRef, rc) {
    let origIndex = rc.xStack.indexOf(sourceRef);
    if (origIndex === -1) {
        rc.push(sourceRef, copyRef);
        for (let [key, val] of _entries(sourceRef))
            copyRef[key] = _clone(val, rc);
        let symbols = Object.getOwnPropertySymbols(sourceRef);
        for (let symbol of symbols)
            copyRef[symbol] = _clone(sourceRef[symbol], rc);
        rc.pop();
        return copyRef;
    }
    else
        return rc.yStack[origIndex];
}
Copies data from one object to another.

@param sourceRef A reference to the object source.
@param copyRef A reference to the object copy.
@param rc The current recurse and reference counter.
@returns {Object} The reference to the object copy.