function keyUp(e) {
  if (keyStatus.hasOwnProperty(e.key)) {
    keyStatus[e.key] = false;
  }
  if (mode !== modes.PLAYING) {
    return;
  }
  switch (e.key) {
    case('ArrowLeft'):
    case('ArrowRight'):
      stopAutoRepeat();
      if (keyStatus.ArrowLeft) {
        initAutoRepeat('ArrowLeft');
      } else if (keyStatus.ArrowRight) {
        initAutoRepeat('ArrowRight');
      }
      break;
    case('ArrowDown'):
      // Return to normal falling speed.
      clearInterval(fallPid);
      fallPid = setInterval(actionDown, speed);
      break;
  }
}
// User releases a key to stop an action.
User releases a key to stop an action.
User releases a key to stop an action .
function keyUp(e) {
  if (keyStatus.hasOwnProperty(e.key)) {
    keyStatus[e.key] = false;
  }
  if (mode !== modes.PLAYING) {
    return;
  }
  switch (e.key) {
    case('ArrowLeft'):
    case('ArrowRight'):
      stopAutoRepeat();
      if (keyStatus.ArrowLeft) {
        initAutoRepeat('ArrowLeft');
      } else if (keyStatus.ArrowRight) {
        initAutoRepeat('ArrowRight');
      }
      break;
    case('ArrowDown'):
      clearInterval(fallPid);
      fallPid = setInterval(actionDown, speed);
      break;
  }
}
function keyUp ( e ) { if ( keyStatus . hasOwnProperty ( e . key ) ) { keyStatus [ e . key ] = false ; } if ( mode !== modes . PLAYING ) { return ; } switch ( e . key ) { case ( 'ArrowLeft' ) : case ( 'ArrowRight' ) : stopAutoRepeat ( ) ; if ( keyStatus . ArrowLeft ) { initAutoRepeat ( 'ArrowLeft' ) ; } else if ( keyStatus . ArrowRight ) { initAutoRepeat ( 'ArrowRight' ) ; } break ; case ( 'ArrowDown' ) : clearInterval ( fallPid ) ; fallPid = setInterval ( actionDown , speed ) ; break ; } }
User releases a key to stop an action.
User releases a key to stop an action .
// Return to normal falling speed.