It's been a real challenge to continuously merge my IcedCoffeeScript branch with the CoffeeScript mainline. The more progress Jeremy and the team make in master, the harder a time I have in the branch. The core issue here is the the iced transform is quite deep. It's doing a CPS translation of the entire abstract syntax tree, rendering the emitted code all but unrecognizable if iced features are at play.
Whenever ES6 is ready for primetime, yield
and generators can do all of this heavy lifting, meaning
the ICS patch can much simpler. Here's an example that I hand-coded. The input is the first file
input.iced
, which does basic ICS loops and if/else control flow exercises. The hypothetical output
is output.js
, which is compiled to use generators and yield
, keeping the original program
structure intact.
@maxtaco Any update on this?