nl_tokens: see SubArray for a better implementation .
pl_tokens: function ( index ) { var newArrayOperation = this . _operations [ <mask> ] , leftArrayOperation = this . _operations [ index - 1 ] , // may be undefined rightArrayOperation = this . _operations [ index + 1 ] , // may be undefined leftOp = leftArrayOperation && leftArrayOperation . type , rightOp = rightArrayOperation && rightArrayOperation . type ; if ( leftOp === INSERT ) { // merge left leftArrayOperation . count += newArrayOperation . count ; leftArrayOperation . items = leftArrayOperation . items . concat ( newArrayOperation . items ) ; if ( rightOp === INSERT ) { // also merge right (we have split an insert with an insert) leftArrayOperation . count += rightArrayOperation . count ; leftArrayOperation . items = leftArrayOperation . items . concat ( rightArrayOperation . items ) ; this . _operations . splice ( index , 2 ) ; } else { // only merge left this . _operations . splice ( index , 1 ) ; } } else if ( rightOp === INSERT ) { // merge right newArrayOperation . count += rightArrayOperation . count ; newArrayOperation . items = newArrayOperation . items . concat ( rightArrayOperation . items ) ; this . _operations . splice ( index + 1 , 1 ) ; } }