Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Normative: continue labels should not pass through blocks #2482

Merged
merged 1 commit into from
Sep 14, 2021

Conversation

bakkot
Copy link
Contributor

@bakkot bakkot commented Aug 5, 2021

Fixes #2481. Without this, the spec permits lbl : { for ( ;; ) continue lbl ; }, contrary to all implementations I have on hand.

There's a few different productions which would work here - adding a definition for any of BlockStatement : Block, Block : { StatementList }, StatementList : StatementListItem, or StatementListItem : Statement would work, in addition to Statement : BlockStatement as chosen in this PR. I think Statement : BlockStatement is clearest, but it doesn't really matter.

@ljharb ljharb added the normative change Affects behavior required to correctly evaluate some ECMAScript source text label Aug 5, 2021
@devsnek
Copy link
Member

devsnek commented Aug 5, 2021

chakracore scares me

@hax
Copy link
Member

hax commented Aug 26, 2021

What's the result of Chakra and GraalJS? (Chakra on my computer always produce syntaxerror)

@ljharb ljharb added has consensus This has committee consensus. web reality labels Aug 31, 2021
@bakkot
Copy link
Contributor Author

bakkot commented Aug 31, 2021

I got consensus for the normative change implied by this PR at TC39 today.

jugglinmike added a commit to tc39/test262 that referenced this pull request Sep 3, 2021
Normative: continue labels should not pass through blocks
tc39/ecma262#2482
@jugglinmike
Copy link
Contributor

Test under review here: tc39/test262#3180

rwaldron pushed a commit to tc39/test262 that referenced this pull request Sep 7, 2021
Normative: continue labels should not pass through blocks
tc39/ecma262#2482
@bakkot bakkot added the editor call to be discussed in the next editor call label Sep 8, 2021
@bakkot bakkot added ready to merge Editors believe this PR needs no further reviews, and is ready to land. and removed editor call to be discussed in the next editor call labels Sep 11, 2021
@ljharb ljharb merged commit 23ac241 into master Sep 14, 2021
@ljharb ljharb deleted the block-continue branch September 14, 2021 00:00
mathiasbynens pushed a commit to mathiasbynens/ecma262 that referenced this pull request Oct 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has consensus This has committee consensus. has test262 tests normative change Affects behavior required to correctly evaluate some ECMAScript source text ready to merge Editors believe this PR needs no further reviews, and is ready to land. web reality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ContainsUndefinedContinueTarget needs a BlockStatement implementation
6 participants