Ну, выглядит страшно, все эти магические цифры (коды клавиш), а этот кусок совсем мрак:
actions[9] =  function(e) { // tab
  e.preventDefault();
  actions[39]();
}
Сам бы наверно сделал, что-то подобное:
keyboard.register(['a', 'b', 'tab'], (evt) => {
  console.log(evt);
});
Вот полный пример: 
jsbin.com/yeborunuje/edit?js,outputUPD. Хотя вру на самом деле, на данный момент использую 
keymaster (точнее его форк, но это не важно), там уже решены многие проблемы, например отлов не просто нажатия отдельных клавиш, но и комбинаций.