Change internal parser API from callbacks to promises.
Remove the callback from the internal translator API
Change the public API gorilla.run to return a promise rather than take a callback. Can be called with .sync and sync: true passed to options.
Change the public API gorilla.init to return a promise rather than take a callback. Can be called with .sync and sync: true passed to options.
Change the public API gorilla.eval to return a promise rather than take a callback. Can be called as eval-sync. Change run.sync to run-sync and init.sync to init-sync.
Change the public API gorilla.compile to return a promise rather than take a callback. Can be called as compile-sync.
Change the public API gorilla.ast to return a promise rather than take a callback. Can be called as ast-sync.
Change the public API gorilla.parse to return a promise rather than take a callback. Can be called as parse-sync.
If a throw needs to be do-wrapped, convert it into a __throw(), which will throw the error.
Properly handle a throw occurring during a catch in a generator
Update the internals of gorilla.gs to use promises.