In true "I wish I had thought of saying that"-ism, I realize that I could have answered a question differently yesterday. The question was about handling Scheme-isms like Call/CC. I focused solely on Nils Holm's code and didn't try to generalize. It just dawned on me that Holm's code does contain a Scheme-ism - named lets. Named lets in Scheme are meant to signal opportunities for tail recursion - to convert recursion into loops. I parse and deal with 2 named lets in Holm's code. As it stands, I cheaped out and simply emit recursive function calls,,, but, the fact that Javascript supports loops, means that I could have converted such code into proper tail recursion. I wasn't interested in getting fancy, but, the potential to do this right, is there. Scheme compiles down into assembler, as does Javascript, so, of course it's possible to do this right. Aside: a fundamental trick in this process, is that my code doesn't need to do type-checking nor semantic analysis. It transpiles working Scheme code. If the code works in Scheme, then there's no point in re-checking all of that stuff - big time saver.