Assorted compatibility updates
Simplify stack iteration
Avoid continue reserved word
Options should be optional
Bind the promise