You dispatched GUI events to listeners and wrote real recursive Java, compiled entirely in your browser.