fix emit with empty listeners