How to clean up Serial port buffer

serialEvent() is not an interrupt handler. Look inside hardware/arduino/cores/arduino/HardwareSerial.cpp

The ISR just stores the received char into the circular buffer. serialEvent() is called whenever Serial.available() > 0.