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

Refactor binding declarations #2887

Merged
merged 1 commit into from
May 5, 2023
Merged

Conversation

raskad
Copy link
Member

@raskad raskad commented May 1, 2023

This Pull Request changes the following:

  • Refactor compile time binding declarations to be more in line with the spec.
  • Refactor function initializations to be more in line with the spec.
  • Remove the reordering of statement lists that was previously used to initialize functions at the start of blocks.
  • Remove the var initialization hack that was introduced in [Merged by Bors] - Initialize var bindings in runtime environments with undefined #2860 as it is not needed anymore.
  • Remove the configurable_globals flag that was passed trough many bytecompiler functions.
  • Remove unneeded var binding declarations in loop compilations.

This change fixes and breaks some annexB tests, but as we do not implement the relevant annexB sections yet, we can ignore those for now. More importantly, this change should make it possible to enable support for these annexB features more easily.

@raskad raskad added vm Issues and PRs related to the Boa Virtual Machine. ast Issue surrounding the abstract syntax tree Internal Category for changelog labels May 1, 2023
@raskad raskad added this to the v0.17.0 milestone May 1, 2023
@github-actions
Copy link

github-actions bot commented May 1, 2023

Test262 conformance changes

Test result main count PR count difference
Total 94,601 94,601 0
Passed 73,293 73,298 +5
Ignored 17,540 17,540 0
Failed 3,768 3,763 -5
Panics 0 0 0
Conformance 77.48% 77.48% +0.01%
Fixed tests (296):
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-skip-early-err-try.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-block.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-skip-early-err.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-param.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-param.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-switch.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-for.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-arguments.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-param.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-dft-param.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-switch.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-for.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-switch.js (previously Failed)
test/language/module-code/instn-local-bndng-fun.js [strict mode] (previously Failed)
test/language/module-code/instn-local-bndng-fun.js (previously Failed)
test/language/module-code/instn-local-bndng-var.js [strict mode] (previously Failed)
test/language/module-code/instn-local-bndng-var.js (previously Failed)
test/language/module-code/instn-local-bndng-gen.js [strict mode] (previously Failed)
test/language/module-code/instn-local-bndng-gen.js (previously Failed)
test/language/module-code/instn-local-bndng-for.js [strict mode] (previously Failed)
test/language/module-code/instn-local-bndng-for.js (previously Failed)
test/language/eval-code/direct/non-definable-global-function.js (previously Failed)
test/language/eval-code/direct/non-definable-function-with-variable.js (previously Failed)
test/language/eval-code/direct/non-definable-function-with-function.js (previously Failed)
test/language/eval-code/direct/var-env-func-init-global-update-configurable.js (previously Failed)
test/language/eval-code/direct/non-definable-global-generator.js (previously Failed)
test/language/eval-code/direct/non-definable-global-var.js (previously Failed)
test/language/eval-code/direct/var-env-var-init-local-new.js (previously Failed)
test/language/eval-code/indirect/non-definable-global-function.js [strict mode] (previously Failed)
test/language/eval-code/indirect/non-definable-global-function.js (previously Failed)
test/language/eval-code/indirect/non-definable-function-with-variable.js [strict mode] (previously Failed)
test/language/eval-code/indirect/non-definable-function-with-variable.js (previously Failed)
test/language/eval-code/indirect/non-definable-function-with-function.js [strict mode] (previously Failed)
test/language/eval-code/indirect/non-definable-function-with-function.js (previously Failed)
test/language/eval-code/indirect/var-env-func-init-global-update-configurable.js [strict mode] (previously Failed)
test/language/eval-code/indirect/var-env-func-init-global-update-configurable.js (previously Failed)
test/language/eval-code/indirect/non-definable-global-generator.js [strict mode] (previously Failed)
test/language/eval-code/indirect/non-definable-global-generator.js (previously Failed)
test/language/eval-code/indirect/non-definable-global-var.js [strict mode] (previously Failed)
test/language/eval-code/indirect/non-definable-global-var.js (previously Failed)
test/language/function-code/block-decl-onlystrict.js [strict mode] (previously Failed)
test/language/function-code/switch-dflt-decl-onlystrict.js [strict mode] (previously Failed)
test/language/function-code/switch-case-decl-onlystrict.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-async-generator.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-async-generator.js (previously Failed)
test/language/statements/switch/scope-lex-async-function.js [strict mode] (previously Failed)
test/language/statements/switch/scope-lex-async-function.js (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/global-code/script-decl-func-err-non-extensible.js [strict mode] (previously Failed)
test/language/global-code/script-decl-func-err-non-extensible.js (previously Failed)
test/language/global-code/script-decl-func.js [strict mode] (previously Failed)
test/language/global-code/script-decl-func.js (previously Failed)
test/language/global-code/block-decl-strict.js [strict mode] (previously Failed)
test/language/global-code/switch-case-decl-strict.js [strict mode] (previously Failed)
test/language/global-code/script-decl-var-err.js [strict mode] (previously Failed)
test/language/global-code/script-decl-var-err.js (previously Failed)
test/language/global-code/script-decl-func-err-non-configurable.js [strict mode] (previously Failed)
test/language/global-code/script-decl-func-err-non-configurable.js (previously Failed)
test/language/global-code/switch-dflt-decl-strict.js [strict mode] (previously Failed)
Broken tests (291):
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/switch-case-decl-nostrict.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/switch-dflt-decl-nostrict.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-block-decl-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-dflt-eval-func-no-skip-param.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-block-scoping.js (previously Passed)
test/annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-update.js (previously Passed)
test/annexB/language/eval-code/direct/block-decl-nostrict.js (previously Passed)
test/annexB/language/eval-code/direct/func-switch-case-eval-func-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-fn-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-var-update.js (previously Passed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/switch-dflt-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/switch-case-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-a-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-b-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/block-decl-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-decl-else-stmt-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/block-decl-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/switch-case-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/switch-dflt-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-b-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/switch-dflt-func-block-scoping.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/switch-dflt-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-a-func-update.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/block-decl-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-stmt-func-update.js (previously Passed)
test/annexB/language/function-code/switch-dflt-func-update.js (previously Passed)
test/annexB/language/function-code/block-decl-func-update.js (previously Passed)
test/annexB/language/function-code/switch-case-func-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/block-decl-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/switch-case-func-existing-var-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-a-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/switch-case-func-existing-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-decl-b-func-update.js (previously Passed)
test/annexB/language/function-code/if-stmt-else-decl-func-existing-block-fn-update.js (previously Passed)
test/annexB/language/function-code/if-decl-no-else-func-update.js (previously Passed)
test/annexB/language/function-code/if-decl-else-stmt-func-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/switch-case-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/block-decl-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/block-decl-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-init.js (previously Passed)
test/annexB/language/global-code/switch-case-global-update.js (previously Passed)
test/annexB/language/global-code/block-decl-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/switch-case-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/switch-case-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-update.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/switch-case-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-update.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-init.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/block-decl-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/block-decl-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-init.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/block-decl-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-block-fn-no-init.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-update.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/switch-dflt-global-existing-block-fn-update.js (previously Passed)
test/annexB/language/global-code/block-decl-global-update.js (previously Passed)
test/annexB/language/global-code/switch-case-global-existing-non-enumerable-global-init.js (previously Passed)
test/annexB/language/global-code/switch-case-global-init.js (previously Passed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-fn-update.js (previously Passed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-var-update.js (previously Passed)
test/annexB/language/global-code/if-decl-no-else-global-existing-block-fn-update.js (previously Passed)

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.

This looks really nice! It's just missing some links to the corresponding spec and I have a small suggestion to reduce code duplication.

boa_engine/src/builtins/eval/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/context/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/function.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/function.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/statement/block.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/statement/switch.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/class.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler/class.rs Outdated Show resolved Hide resolved
@raskad raskad force-pushed the refactor-declarations-compilation branch from 4e54ee4 to 56be789 Compare May 4, 2023 22:27
@raskad
Copy link
Member Author

raskad commented May 4, 2023

This looks really nice! It's just missing some links to the corresponding spec and I have a small suggestion to reduce code duplication.

I moved all of the *DeclarationInstantiation functions to boa_engine/src/bytecompiler/declarations.rs. The spec comments mapped pretty well with the code. There are of course some parts that are different because of implementation details, but I'm pretty happy with it.

I also managed to get the code properly deduplicated, matching the spec.

@raskad raskad requested a review from jedel1043 May 4, 2023 22:41
@codecov
Copy link

codecov bot commented May 4, 2023

Codecov Report

Merging #2887 (56be789) into main (0aaf462) will increase coverage by 0.46%.
The diff coverage is 64.74%.

@@            Coverage Diff             @@
##             main    #2887      +/-   ##
==========================================
+ Coverage   51.30%   51.76%   +0.46%     
==========================================
  Files         427      428       +1     
  Lines       42612    43122     +510     
==========================================
+ Hits        21860    22324     +464     
- Misses      20752    20798      +46     
Impacted Files Coverage Δ
boa_ast/src/statement_list.rs 93.61% <ø> (-0.51%) ⬇️
boa_ast/src/visitor.rs 19.19% <0.00%> (+7.96%) ⬆️
boa_engine/src/bytecompiler/module.rs 0.00% <0.00%> (ø)
boa_engine/src/bytecompiler/statement/with.rs 0.00% <0.00%> (ø)
boa_engine/src/vm/mod.rs 53.89% <ø> (ø)
boa_engine/src/vm/opcode/mod.rs 45.45% <ø> (ø)
boa_parser/src/parser/statement/mod.rs 61.17% <ø> (-0.09%) ⬇️
boa_engine/src/bytecompiler/class.rs 15.05% <45.45%> (-0.43%) ⬇️
boa_engine/src/bytecompiler/statement/labelled.rs 65.21% <57.14%> (+13.78%) ⬆️
boa_engine/src/bytecompiler/declarations.rs 59.49% <59.49%> (ø)
... and 16 more

... and 13 files with indirect coverage changes

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.

Great work! Very nicely documented and the separate instantiation functions makes the code a lot nicer :)

Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

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

Amazing work @raskad! Looks perfect to me! :)

@HalidOdat HalidOdat added this pull request to the merge queue May 5, 2023
Merged via the queue into main with commit e3d2056 May 5, 2023
@bors bors bot deleted the refactor-declarations-compilation branch May 5, 2023 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ast Issue surrounding the abstract syntax tree Internal Category for changelog vm Issues and PRs related to the Boa Virtual Machine.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants