I guess a follow on point is that unlike Hypertalk where the implementation is written in a DSL, whenever.js is just a way of _describing_ an implementation.
Everything else is plain javascript, and you can use whatever language features you want within the definition functions.
Everything else is plain javascript, and you can use whatever language features you want within the definition functions.