Function bodies support terminating if guards, conditional joins with normal or owning-return arms and at most one assigned outer binding, return, throw, while, classic for, declaration for…of loops and terminating switches. Functions state their result with a return or complete normally with undefined. Loops retain multiple state values and may contain nested loops, conditional arms, break, continue, owning-function returns, throws and switches with braced cases.
Refused by design, each page showing what fjs compile prints and what to write instead:
- ECMA-262: see each page.