function _normalizeSequence(sequence) {
        var i;

        for (i = 0; i < sequence.length; ++i) {
            sequence[i].sort(function(x, y) {
                // modifier keys always come first, in alphabetical order
                if (x.length > 1 && y.length === 1) {
                    return -1;
                } else if (x.length === 1 && y.length > 1) {
                    return 1;
                }

                // character keys come next (list should contain no duplicates,
                // so no need for equality check)
                return x > y ? 1 : -1;
            });

            sequence[i] = sequence[i].join('+');
        }
    }
function _normalizeSequence(sequence) {
        var i;

        for (i = 0; i < sequence.length; ++i) {
            sequence[i].sort(function(x, y) {
                
                if (x.length > 1 && y.length === 1) {
                    return -1;
                } else if (x.length === 1 && y.length > 1) {
                    return 1;
                }

                
                
                return x > y ? 1 : -1;
            });

            sequence[i] = sequence[i].join('+');
        }
    }
function _normalizeSequence ( sequence ) { var i ; for ( i = 0 ; i < sequence . length ; ++ i ) { sequence [ i ] . sort ( function ( x , y ) { // modifier keys always come first, in alphabetical order if ( x . length > 1 && y . length === 1 ) { return - 1 ; } else if ( x . length === 1 && y . length > 1 ) { return 1 ; } // character keys come next (list should contain no duplicates, // so no need for equality check) return x > y ? 1 : - 1 ; } ) ; sequence [ i ] = sequence [ i ] . join ( '+' ) ; } }
ensures each combo in a sequence is in a predictable order and formats
key combos to be '+'-delimited

modifies the sequence in-place

@param {Array} sequence
@returns void
ensures each combo in a sequence is in a predictable order and formats key combos to be + - delimited