mikepk.com about current projects contact

Yajaf shell

February 3, 2006

I spent some time throwing together a real time javascript shell (read eval loop type), so people who were learning could try out the examples immediately. I always try and make my javascript code work across all modern browsers, but in this case I was hitting a wall. Firefox worked great, but everything else acted strangely. Just like I mentioned in my previous posts, sometimes you just can't get away from ugly, hairy scope issues. After much wrangling with 'window.eval' (I'll talk about eval in a later post) I found a much more robust and feature rich shell out there. After looking at the js code in that, I found a neat trick (using location.href) to use the global window object for evaluation. I'm indebted to those guys for a new neat idea to get my shell up and working. I'm going to attach a link to my shell for the examples so that people can try it out.

Try it out now.

Arrow keys go up and down in history. No multi-line input. The only built in function is lp(OBJECT) which lists the properties of an object.