As an experiment, I wrote a tetris implementation in ecmascript 5. I used canvas to draw the images. My goal was to drop it under 1K and join the js1K. But I couldn't take it under 2K even I drop some features. Here is the page (Source can be found in github).