break: Add support for labeled statements, breaks, and continues#2891
break: Add support for labeled statements, breaks, and continues#2891CountBleck wants to merge 3 commits intoAssemblyScript:mainfrom
Conversation
60e57da to
3a29149
Compare
|
I just need to add some tests; then, this will be ready to merge. @JairusSW Heads up: this change definitely breaks transforms. Do you have anything to comment on this PR? |
|
It looks like I forgot about |
|
Okay, it appears that my code breaks something related to Flow flags, so more work on this PR is needed. One issue is that Another issue is that a |
This is a prerequisite for supporting labeled breaks/continues. Clearly unusable labels, such as `x: let foo = 1;` report an error by default, similar to TS's behavior.
This requires an additional field to Flow that maps user-defined statement labels to the internal Binaryen labels passed to module.br(). Thanks to the existing logic to handle unlabeled break/continue, adding support for labeled break/continue is a breeze. Fixes AssemblyScript#2889.
3a29149 to
692b388
Compare
|
In TS, there are new ASTNode |
|
@HerrCai0907 I considered that before, and it might be a pretty good idea. It would be better for transform users for sure. Still, there's the issue of setting the proper |
Fixes #2889.
Changes proposed in this pull request:
⯈ Support labeled statements in the parser/AST
⯈ Support labeled
break/continue.This change is breaking solely because it modifies the
Node.createXXXAPIs, which are used by transforms.