observe.js
function unionizeList(array, start, count, union) {
    var internalObservees = [] // list of observees and their property path
    if(union !== undefined) {
        var afterEnd = start+count
        for(var n=start; n<afterEnd; n++) {
            internalObservees.push({obj: array[n], index: n})
            if(union === true)
                array[n] = array[n].subject
        }
    }

    return internalObservees
}
function unionizeList(array, start, count, union) {
    var internalObservees = [] // list of observees and their property path
    if(union !== undefined) {
        var afterEnd = start+count
        for(var n=start; n<afterEnd; n++) {
            internalObservees.push({obj: array[n], index: n})
            if(union === true)
                array[n] = array[n].subject
        }
    }

    return internalObservees
}
function unionizeList ( array , start , count , union ) { var internalObservees = [ ] // list of observees and their property path if ( union !== undefined ) { var afterEnd = start + count for ( var n = start ; n < afterEnd ; n ++ ) { internalObservees . push ( { obj : array [ n ] , index : n } ) if ( union === true ) array [ n ] = array [ n ] . subject } } return internalObservees }
sets a slice of elements to their subjects and returns the original observee objects along with their indexes
sets a slice of elements to their subjects and returns the original observee objects along with their indexes