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

Implement Generator parsing #1575

Merged
merged 5 commits into from
Oct 6, 2021
Merged

Conversation

raskad
Copy link
Member

@raskad raskad commented Sep 13, 2021

I know this diff is pretty large, but a good amount is pasting early error handling and pretty trivial code. A big chunk of this is actually implementing lots of early error handling. Without that generator parsing only produces more failed tests. There are some new errors, but those are either related to #1391 or will be fixed with some more early error handling that I did not want to do here.
If it seems to much for one PR, I can split this.

This Pull Request fixes/closes #1557, #1527.

It changes the following:

  • Implement GeneratorMethod parsing
  • Implement GeneratorDeclaration parsing
  • Implement GeneratorExpression parsing
  • Implement YieldExpression parsing
  • Implement early error handling for duplicate function parameters
  • Implement early error handling for for simple function parameters
  • Implement early error handling for function identifiers not being eval or arguments
  • Implement IdentifierReference parsing in PrimaryExpression
  • Implement early errors for BindingIdentifier
  • Implement early errors for LabelledItem
  • Implement annexB syntax for IfStatement
  • Implement the lookahead in ExpressionStatement
  • Refactor the MethodDefinition parser (Note: I have removed the MethodDefinition and moved the parsing into the PropertyDefinition parser. This is done, because we cannot differentiate between PropertyName : AssignmentExpression and MethodDefinition, if we encounter a ComputedPropertyName, without parsing the ComputedPropertyName. The only other place MethodDefinition is used is in classes. I think we can live with implementing that parser two times. The other benefit is, that the parser is now way cleaner. Adjusting it for the classes use-case would make it even worse.)

@raskad
Copy link
Member Author

raskad commented Sep 15, 2021

Test262 conformance changes:

Test result master count PR count difference
Total 80,930 80,930 0
Passed 33,192 33,358 +166
Ignored 15,898 15,898 0
Failed 31,840 31,674 -166
Panics 0 0 0
Conformance 41.01% 41.22% +0.21%
Fixed tests (214):
test/annexB/language/function-code/if-decl-else-decl-b-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-update.js (previously Failed)
test/harness/isConstructor.js [strict mode] (previously Failed)
test/harness/isConstructor.js (previously Failed)
test/language/function-code/S10.2.1_A2.js (previously Failed)
test/language/function-code/S10.2.1_A3.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js [strict mode] (previously Failed)
test/language/computed-property-names/object/method/generator.js [strict mode] (previously Failed)
test/language/computed-property-names/object/method/generator.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/function/param-duplicated-non-strict.js (previously Failed)
test/language/statements/function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/statements/function/rest-param-strict-body.js (previously Failed)
test/language/statements/function/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/statements/function/use-strict-with-non-simple-param.js (previously Failed)
test/language/statements/if/if-stmt-else-fun-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-async-fun.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-async-fun.js (previously Failed)
test/language/statements/if/if-decl-no-else-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-decl-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-async-fun-no-else.js [strict mode] (previously Failed)
test/language/statements/if/if-async-fun-no-else.js (previously Failed)
test/language/statements/if/labelled-fn-stmt-lone.js [strict mode] (previously Failed)
test/language/statements/if/labelled-fn-stmt-lone.js (previously Failed)
test/language/statements/if/labelled-fn-stmt-second.js [strict mode] (previously Failed)
test/language/statements/if/labelled-fn-stmt-second.js (previously Failed)
test/language/statements/if/if-fun-no-else-strict.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for-of/decl-fun.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-lhs.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-lhs.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for-of/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for-of/decl-async-fun.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for/decl-fun.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-expr.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-expr.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for/decl-async-fun.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/async-function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/statements/async-function/rest-param-strict-body.js (previously Failed)
test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js (previously Failed)
test/language/statements/for-in/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for-in/decl-fun.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-lhs.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-lhs.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for-in/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for-in/decl-async-fun.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/generators/dflt-params-ref-later.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-ref-later.js (previously Failed)
test/language/statements/generators/dflt-params-ref-self.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-ref-self.js (previously Failed)
test/language/statements/while/labelled-fn-stmt.js [strict mode] (previously Failed)
test/language/statements/while/labelled-fn-stmt.js (previously Failed)
test/language/statements/while/decl-fun.js [strict mode] (previously Failed)
test/language/statements/while/decl-fun.js (previously Failed)
test/language/statements/while/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/while/decl-async-fun.js (previously Failed)
test/language/statements/labeled/decl-async-function.js [strict mode] (previously Failed)
test/language/statements/labeled/decl-async-function.js (previously Failed)
test/language/statements/labeled/decl-fun-strict.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-generator.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-generator.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/global-code/yield-non-strict.js (previously Failed)
test/language/expressions/assignmenttargettype/simple-basic-identifierreference-yield.js (previously Failed)
test/language/expressions/function/param-duplicated-non-strict.js (previously Failed)
test/language/expressions/function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/function/rest-param-strict-body.js (previously Failed)
test/language/expressions/function/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/function/use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/in/rhs-yield-absent-non-strict.js (previously Failed)
test/language/expressions/object/yield-non-strict-syntax.js (previously Failed)
test/language/expressions/object/cpn-obj-lit-computed-property-name-from-yield-expression.js [strict mode] (previously Failed)
test/language/expressions/object/cpn-obj-lit-computed-property-name-from-yield-expression.js (previously Failed)
test/language/expressions/object/accessor-name-computed-yield-id.js (previously Failed)
test/language/expressions/object/yield-non-strict-access.js (previously Failed)
test/language/expressions/object/method-definition/name-param-init-yield.js (previously Failed)
test/language/expressions/object/method-definition/name-prop-name-yield-id.js (previously Failed)
test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js (previously Failed)
test/language/expressions/object/method-definition/name-param-id-yield.js (previously Failed)
test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-yield-id.js (previously Failed)
test/language/expressions/object/method-definition/generator-invoke-ctor.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-invoke-ctor.js (previously Failed)
test/language/expressions/object/method-definition/generator-property-desc.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-property-desc.js (previously Failed)
test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-eval-error.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-eval-error.js (previously Failed)
test/language/expressions/object/method-definition/meth-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/meth-rest-param-strict-body.js (previously Failed)
test/language/expressions/arrow-function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/rest-param-strict-body.js (previously Failed)
test/language/expressions/await/await-in-global.js [strict mode] (previously Failed)
test/language/expressions/await/await-in-global.js (previously Failed)
test/language/expressions/await/await-in-function.js [strict mode] (previously Failed)
test/language/expressions/await/await-in-function.js (previously Failed)
test/language/expressions/async-function/nameless-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/async-function/nameless-rest-param-strict-body.js (previously Failed)
test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js (previously Failed)
test/language/expressions/async-function/named-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/async-function/named-rest-param-strict-body.js (previously Failed)
test/language/expressions/generators/invoke-as-constructor.js [strict mode] (previously Failed)
test/language/expressions/generators/invoke-as-constructor.js (previously Failed)
test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js [strict mode] (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js [strict mode] (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js (previously Failed)
test/built-ins/Array/prototype/unshift/length-near-integer-limit.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/unshift/length-near-integer-limit.js (previously Failed)
test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js (previously Failed)
test/built-ins/Array/prototype/concat/Array.prototype.concat_sloppy-arguments-with-dupes.js (previously Failed)
Broken tests (48):
test/annexB/language/function-code/if-stmt-else-decl-func-skip-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-dft-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-param.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-dft-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/var-redeclaration-attempt-after-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js (previously Passed)
test/language/block-scope/syntax/redeclaration/inner-block-var-redeclaration-attempt-after-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js (previously Passed)
test/language/block-scope/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js (previously Passed)
test/language/block-scope/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/inner-block-var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/fn-scope-var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js (previously Passed)
test/language/expressions/object/method-definition/yield-as-parameter.js (previously Passed)
test/language/expressions/object/method-definition/generator-param-id-yield.js (previously Passed)
test/language/expressions/object/method-definition/generator-param-init-yield.js (previously Passed)

@raskad raskad marked this pull request as ready for review September 15, 2021 17:29
@raskad raskad added enhancement New feature or request parser Issues surrounding the parser labels Sep 15, 2021
@raskad raskad added this to the v0.13.0 milestone Sep 25, 2021
Copy link
Member

@RageKnify RageKnify left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parser isn't my expertise, but LGTM.

@Razican
Copy link
Member

Razican commented Sep 26, 2021

Is this still ignoring the generator tests?

@raskad
Copy link
Member Author

raskad commented Sep 26, 2021

@Razican The generator tests are not ignored on master at the moment so this changes nothing for the ignore list.

Copy link
Member

@jedel1043 jedel1043 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some small improvements and possible bug fixes. Looks great!

boa/src/syntax/parser/expression/primary/mod.rs Outdated Show resolved Hide resolved
boa/src/syntax/parser/function/mod.rs Outdated Show resolved Hide resolved
boa/src/syntax/parser/statement/mod.rs Outdated Show resolved Hide resolved
@raskad raskad modified the milestones: v0.13.0, v0.14.0 Sep 28, 2021
Copy link
Member

@jedel1043 jedel1043 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@jedel1043
Copy link
Member

Test262 conformance changes:

Test result main count PR count difference
Total 86,438 86,438 0
Passed 37,156 37,324 +168
Ignored 19,022 19,022 0
Failed 30,260 30,092 -168
Panics 0 0 0
Conformance 42.99% 43.18% +0.19%
Fixed tests (216):
test/annexB/language/function-code/if-decl-else-decl-b-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-fn-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-var-no-init.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-var-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-update.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-block-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-block-scoping.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-update.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-fn-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-update.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-fn-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-var-no-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-block-fn-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-var-update.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-update.js (previously Failed)
test/harness/isConstructor.js [strict mode] (previously Failed)
test/harness/isConstructor.js (previously Failed)
test/language/function-code/S10.2.1_A2.js (previously Failed)
test/language/function-code/S10.2.1_A3.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-while-expression-statement.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js [strict mode] (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-for-statement.js (previously Failed)
test/language/block-scope/syntax/function-declarations/in-statement-position-if-expression-statement-else-statement.js [strict mode] (previously Failed)
test/language/computed-property-names/object/method/generator.js [strict mode] (previously Failed)
test/language/computed-property-names/object/method/generator.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/function/param-duplicated-non-strict.js (previously Failed)
test/language/statements/function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/statements/function/rest-param-strict-body.js (previously Failed)
test/language/statements/function/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/statements/function/use-strict-with-non-simple-param.js (previously Failed)
test/language/statements/if/if-stmt-else-fun-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-async-fun.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-async-fun.js (previously Failed)
test/language/statements/if/if-decl-no-else-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-stmt-else-decl-strict.js [strict mode] (previously Failed)
test/language/statements/if/if-async-fun-no-else.js [strict mode] (previously Failed)
test/language/statements/if/if-async-fun-no-else.js (previously Failed)
test/language/statements/if/labelled-fn-stmt-lone.js [strict mode] (previously Failed)
test/language/statements/if/labelled-fn-stmt-lone.js (previously Failed)
test/language/statements/if/labelled-fn-stmt-second.js [strict mode] (previously Failed)
test/language/statements/if/labelled-fn-stmt-second.js (previously Failed)
test/language/statements/if/if-fun-no-else-strict.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for-of/decl-fun.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-lhs.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-lhs.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for-of/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for-of/decl-async-fun.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for-of/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for/decl-fun.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-expr.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-expr.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for/decl-async-fun.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/async-function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/statements/async-function/rest-param-strict-body.js (previously Failed)
test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js (previously Failed)
test/language/statements/for-in/decl-fun.js [strict mode] (previously Failed)
test/language/statements/for-in/decl-fun.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-lhs.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-lhs.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-var.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-var.js (previously Failed)
test/language/statements/for-in/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/for-in/decl-async-fun.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-let.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-let.js (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-const.js [strict mode] (previously Failed)
test/language/statements/for-in/labelled-fn-stmt-const.js (previously Failed)
test/language/statements/generators/dflt-params-ref-later.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-ref-later.js (previously Failed)
test/language/statements/generators/dflt-params-ref-self.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-ref-self.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/while/labelled-fn-stmt.js [strict mode] (previously Failed)
test/language/statements/while/labelled-fn-stmt.js (previously Failed)
test/language/statements/while/decl-fun.js [strict mode] (previously Failed)
test/language/statements/while/decl-fun.js (previously Failed)
test/language/statements/while/decl-async-fun.js [strict mode] (previously Failed)
test/language/statements/while/decl-async-fun.js (previously Failed)
test/language/statements/labeled/decl-async-function.js [strict mode] (previously Failed)
test/language/statements/labeled/decl-async-function.js (previously Failed)
test/language/statements/labeled/decl-fun-strict.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-generator.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-generator.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/global-code/yield-non-strict.js (previously Failed)
test/language/expressions/assignmenttargettype/simple-basic-identifierreference-yield.js (previously Failed)
test/language/expressions/function/param-duplicated-non-strict.js (previously Failed)
test/language/expressions/function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/function/rest-param-strict-body.js (previously Failed)
test/language/expressions/function/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/function/use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/in/rhs-yield-absent-non-strict.js (previously Failed)
test/language/expressions/object/yield-non-strict-syntax.js (previously Failed)
test/language/expressions/object/cpn-obj-lit-computed-property-name-from-yield-expression.js [strict mode] (previously Failed)
test/language/expressions/object/cpn-obj-lit-computed-property-name-from-yield-expression.js (previously Failed)
test/language/expressions/object/accessor-name-computed-yield-id.js (previously Failed)
test/language/expressions/object/yield-non-strict-access.js (previously Failed)
test/language/expressions/object/method-definition/name-param-init-yield.js (previously Failed)
test/language/expressions/object/method-definition/name-prop-name-yield-id.js (previously Failed)
test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js (previously Failed)
test/language/expressions/object/method-definition/name-param-id-yield.js (previously Failed)
test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/setter-use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-yield-id.js (previously Failed)
test/language/expressions/object/method-definition/generator-invoke-ctor.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-invoke-ctor.js (previously Failed)
test/language/expressions/object/method-definition/generator-property-desc.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-property-desc.js (previously Failed)
test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/use-strict-with-non-simple-param.js (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-eval-error.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-prop-name-eval-error.js (previously Failed)
test/language/expressions/object/method-definition/meth-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/meth-rest-param-strict-body.js (previously Failed)
test/language/expressions/arrow-function/rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/rest-param-strict-body.js (previously Failed)
test/language/expressions/await/await-in-global.js [strict mode] (previously Failed)
test/language/expressions/await/await-in-global.js (previously Failed)
test/language/expressions/await/await-in-function.js [strict mode] (previously Failed)
test/language/expressions/await/await-in-function.js (previously Failed)
test/language/expressions/async-function/nameless-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/async-function/nameless-rest-param-strict-body.js (previously Failed)
test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js [strict mode] (previously Failed)
test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js (previously Failed)
test/language/expressions/async-function/named-rest-param-strict-body.js [strict mode] (previously Failed)
test/language/expressions/async-function/named-rest-param-strict-body.js (previously Failed)
test/language/expressions/generators/invoke-as-constructor.js [strict mode] (previously Failed)
test/language/expressions/generators/invoke-as-constructor.js (previously Failed)
test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js [strict mode] (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js [strict mode] (previously Failed)
test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js (previously Failed)
test/built-ins/Array/prototype/unshift/length-near-integer-limit.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/unshift/length-near-integer-limit.js (previously Failed)
test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js (previously Failed)
test/built-ins/Array/prototype/concat/Array.prototype.concat_sloppy-arguments-with-dupes.js (previously Failed)
Broken tests (48):
test/annexB/language/function-code/if-stmt-else-decl-func-skip-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-dft-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-param.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-dft-param.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/var-redeclaration-attempt-after-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js (previously Passed)
test/language/block-scope/syntax/redeclaration/inner-block-var-redeclaration-attempt-after-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js (previously Passed)
test/language/block-scope/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js (previously Passed)
test/language/block-scope/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/inner-block-var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/fn-scope-var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/block-scope/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/const-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/async-function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-function.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/var-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-var.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/let-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-async-function.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-const.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/function-name-redeclaration-attempt-with-generator.js (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js [strict mode] (previously Passed)
test/language/statements/switch/syntax/redeclaration/generator-name-redeclaration-attempt-with-let.js (previously Passed)
test/language/expressions/object/method-definition/yield-as-parameter.js (previously Passed)
test/language/expressions/object/method-definition/generator-param-id-yield.js (previously Passed)
test/language/expressions/object/method-definition/generator-param-init-yield.js (previously Passed)

@jedel1043 jedel1043 merged commit 45c8fa0 into boa-dev:main Oct 6, 2021
@raskad raskad deleted the cpna-generator-parse branch October 14, 2021 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request parser Issues surrounding the parser
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Generator Parsing
4 participants