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];
}
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.
Copies data from one object to another .