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

[Merged by Bors] - Implement generator execution #1790

Closed
wants to merge 3 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Jan 21, 2022

This Pull Request fixes/closes #1559.

It changes the following:

  • Implement GeneratorFunction Objects
  • Implement Generator Objects
  • Implement generator execution in vm
  • Create FormalParameterList to remove duplicate checks on function parameters
  • Refactor MethodDefinition on object literals

@raskad raskad added enhancement New feature or request builtins PRs and Issues related to builtins/intrinsics execution Issues or PRs related to code execution labels Jan 21, 2022
@raskad raskad added this to the v0.14.0 milestone Jan 21, 2022
Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

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

The overal design looks very reasonable from my side, but I still didn't get the chance to get into the VM a lot, so I'm not sure.

I would like to see how the conformance changes if we don't ignore generators in the test_ignore file, and I added some comments on a couple of things that could be interesting.

Also, for this to be mergeable I'm missing some Debug&Copy implementations and some documentation in some structures and en una, but looks very promising!

boa/src/builtins/mod.rs Outdated Show resolved Hide resolved
boa/src/syntax/ast/node/mod.rs Outdated Show resolved Hide resolved
@Razican
Copy link
Member

Razican commented Jan 23, 2022

I ran the Test262 suite in my local machine, and it looks very, very promising:

Results:
Total tests: 87200
Passed tests: 42241
Ignored tests: 19493
Failed tests: 25466 (panics: 0)
Conformance: 48.44%

The main branch results:

Results:
Total tests: 87200
Passed tests: 40828
Ignored tests: 19493
Failed tests: 26879 (panics: 0)
Conformance: 46.82%

So overall, 1,413 tests fixed, and 1.62% of coverage increase!

This test is now failing, both in strict and non-strict modes (previously passing, but might have been just by chance):

test/language/statements/switch/scope-lex-generator.js

These parser tests also fail (I guess we just need to re-check the AST changes and update the tests):

    syntax::parser::function::tests::check_arrow_only_rest
    syntax::parser::function::tests::check_arrow_rest
    syntax::parser::function::tests::check_duplicates_strict_off
    syntax::parser::function::tests::check_rest_operator
    syntax::parser::tests::spread_in_arrow_function

Unfortunately I got a panic one of the times I ran it:

Test: /test/built-ins/MapIteratorPrototype/next/does-not-have-mapiterator-internal-slots-map.js
Panic:

thread '<unnamed>' panicked at 'Object already borrowed: BorrowMutError', boa/src/builtins/map/ordered_map.rs:224:30

This panic seems to not happen always, and I was only able to reproduce it once, somehow. Might not be related to this PR.

@Razican Razican force-pushed the generator-execution branch from 1d2493c to db8fff6 Compare January 23, 2022 12:10
@Razican
Copy link
Member

Razican commented Jan 23, 2022

I re-based the branch to get the interner changes.

@raskad
Copy link
Member Author

raskad commented Jan 23, 2022

I think the test/language/statements/switch/scope-lex-generator.js should have been failing all along. Looks like a bug in the switch execution.

The panic seems unrelated to me.

I will fix the parser tests and look at bitflags for the parameterlist.

@raskad raskad force-pushed the generator-execution branch from db8fff6 to 59bb076 Compare January 24, 2022 20:03
@codecov
Copy link

codecov bot commented Jan 24, 2022

Codecov Report

Merging #1790 (174f9df) into main (9dda8d3) will decrease coverage by 9.58%.
The diff coverage is 30.36%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1790      +/-   ##
==========================================
- Coverage   56.26%   46.67%   -9.59%     
==========================================
  Files         201      204       +3     
  Lines       17940    16701    -1239     
==========================================
- Hits        10094     7796    -2298     
- Misses       7846     8905    +1059     
Impacted Files Coverage Δ
boa_engine/src/builtins/function/mod.rs 29.50% <0.00%> (-4.32%) ⬇️
boa_engine/src/object/jsobject.rs 49.68% <0.00%> (-15.03%) ⬇️
...x/ast/node/declaration/async_generator_decl/mod.rs 5.00% <0.00%> (-17.73%) ⬇️
...x/ast/node/declaration/async_generator_expr/mod.rs 5.00% <0.00%> (-23.58%) ⬇️
.../syntax/ast/node/declaration/generator_decl/mod.rs 4.76% <0.00%> (-17.97%) ⬇️
.../syntax/ast/node/declaration/generator_expr/mod.rs 5.00% <0.00%> (-23.58%) ⬇️
boa_engine/src/syntax/ast/node/mod.rs 72.00% <ø> (-4.28%) ⬇️
boa_engine/src/syntax/parser/mod.rs 34.61% <ø> (-26.93%) ⬇️
boa_engine/src/vm/call_frame.rs 100.00% <ø> (ø)
boa_engine/src/vm/opcode.rs 42.85% <ø> (+14.28%) ⬆️
... and 214 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9dda8d3...174f9df. Read the comment docs.

@raskad raskad force-pushed the generator-execution branch from 59bb076 to 4c45301 Compare January 24, 2022 20:14
@Razican
Copy link
Member

Razican commented Jan 31, 2022

I guess #1809 should be merged / discarded before this goes in. But for the rest, what is this missing? Seems pretty good, right?

@raskad
Copy link
Member Author

raskad commented Jan 31, 2022

I guess #1809 should be merged / discarded before this goes in. But for the rest, what is this missing? Seems pretty good, right?

Yes, let's get #1809 merged, then I can rebase this and we can merge it.

@Razican
Copy link
Member

Razican commented Feb 5, 2022

#1809 merged! 😄

@raskad
Copy link
Member Author

raskad commented Feb 8, 2022

#1809 merged! 😄

I would like to wait for feedback on #1829. I'd rather rebase this on #1829 than the other way around :D

@raskad raskad force-pushed the generator-execution branch from 4c45301 to af87126 Compare February 18, 2022 22:56
@raskad
Copy link
Member Author

raskad commented Feb 18, 2022

Rebased on top of #1829.

@raskad raskad force-pushed the generator-execution branch from af87126 to cde17cb Compare February 18, 2022 22:59
@github-actions
Copy link

Benchmark for 3e83868

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 467.8±4.34ns 569.4±8.82ns +21.72%
Arithmetic operations (Execution) 2.4±0.01µs 2.4±0.02µs 0.00%
Arithmetic operations (Parser) 6.2±0.05µs 6.2±0.03µs 0.00%
Array access (Compiler) 962.9±7.60ns 1493.5±4.39ns +55.10%
Array access (Execution) 12.3±0.15µs 12.5±0.08µs +1.63%
Array access (Parser) 13.3±0.11µs 13.2±0.06µs -0.75%
Array creation (Compiler) 1368.4±9.44ns 2.1±0.01µs +53.46%
Array creation (Execution) 3.8±0.02ms 3.7±0.01ms -2.63%
Array creation (Parser) 15.0±0.11µs 14.8±0.05µs -1.33%
Array pop (Compiler) 3.3±0.02µs 4.1±0.04µs +24.24%
Array pop (Execution) 1637.2±14.33µs 1605.5±4.37µs -1.94%
Array pop (Parser) 158.9±0.76µs 157.2±0.41µs -1.07%
Boolean Object Access (Compiler) 784.4±9.27ns 1172.3±71.26ns +49.45%
Boolean Object Access (Execution) 8.4±0.10µs 6.7±0.03µs -20.24%
Boolean Object Access (Parser) 15.9±0.13µs 15.9±0.06µs 0.00%
Clean js (Compiler) 2.5±0.03µs 3.8±0.05µs +52.00%
Clean js (Execution) 1737.0±14.78µs 1293.0±9.82µs -25.56%
Clean js (Parser) 31.8±0.28µs 32.0±0.15µs +0.63%
Create Realm 402.6±4.35ns 323.2±1.60ns -19.72%
Dynamic Object Property Access (Compiler) 1397.8±7.46ns 1857.2±10.78ns +32.87%
Dynamic Object Property Access (Execution) 8.3±0.08µs 8.4±0.04µs +1.20%
Dynamic Object Property Access (Parser) 11.8±0.08µs 11.6±0.03µs -1.69%
Fibonacci (Compiler) 1699.4±7.21ns 2.6±0.01µs +53.00%
Fibonacci (Execution) 3.3±0.03ms 3.3±0.01ms 0.00%
Fibonacci (Parser) 18.2±0.10µs 18.0±0.10µs -1.10%
For loop (Compiler) 1506.9±8.15ns 2.3±0.02µs +52.63%
For loop (Execution) 52.4±0.61µs 50.6±0.30µs -3.44%
For loop (Parser) 15.7±0.07µs 15.5±0.09µs -1.27%
Mini js (Compiler) 2.5±0.08µs 3.7±0.04µs +48.00%
Mini js (Execution) 1585.9±18.78µs 1188.8±6.80µs -25.04%
Mini js (Parser) 27.9±0.11µs 27.9±0.10µs 0.00%
Number Object Access (Compiler) 743.0±7.90ns 1091.7±12.25ns +46.93%
Number Object Access (Execution) 6.6±0.11µs 5.3±0.02µs -19.70%
Number Object Access (Parser) 12.2±0.07µs 12.2±0.04µs 0.00%
Object Creation (Compiler) 1130.1±3.75ns 1603.2±10.05ns +41.86%
Object Creation (Execution) 7.4±0.06µs 7.7±0.04µs +4.05%
Object Creation (Parser) 10.3±0.10µs 10.2±0.04µs -0.97%
RegExp (Compiler) 1350.0±8.19ns 1882.1±5.45ns +39.41%
RegExp (Execution) 15.3±0.16µs 14.6±0.10µs -4.58%
RegExp (Parser) 11.1±0.06µs 11.0±0.04µs -0.90%
RegExp Creation (Compiler) 1217.2±14.72ns 1638.7±6.88ns +34.63%
RegExp Creation (Execution) 11.6±0.11µs 11.1±0.08µs -4.31%
RegExp Creation (Parser) 9.4±0.06µs 9.2±0.03µs -2.13%
RegExp Literal (Compiler) 1357.0±14.48ns 1880.8±6.36ns +38.60%
RegExp Literal (Execution) 15.3±0.12µs 14.5±0.10µs -5.23%
RegExp Literal (Parser) 9.0±0.07µs 8.9±0.03µs -1.11%
RegExp Literal Creation (Compiler) 1219.1±7.70ns 1636.0±9.67ns +34.20%
RegExp Literal Creation (Execution) 11.7±0.10µs 11.1±0.07µs -5.13%
RegExp Literal Creation (Parser) 7.1±0.08µs 7.0±0.02µs -1.41%
Static Object Property Access (Compiler) 1146.0±7.08ns 1615.8±9.74ns +40.99%
Static Object Property Access (Execution) 7.7±0.10µs 7.9±0.05µs +2.60%
Static Object Property Access (Parser) 11.0±0.06µs 11.0±0.02µs 0.00%
String Object Access (Compiler) 1198.5±10.03ns 1556.9±15.90ns +29.90%
String Object Access (Execution) 10.3±0.15µs 9.0±0.07µs -12.62%
String Object Access (Parser) 15.7±0.11µs 15.5±0.05µs -1.27%
String comparison (Compiler) 1523.3±16.79ns 2.4±0.03µs +57.55%
String comparison (Execution) 8.5±0.11µs 7.3±0.06µs -14.12%
String comparison (Parser) 12.7±0.11µs 12.2±0.03µs -3.94%
String concatenation (Compiler) 1242.0±7.66ns 1925.8±18.47ns +55.06%
String concatenation (Execution) 7.3±0.07µs 6.7±0.03µs -8.22%
String concatenation (Parser) 8.6±0.06µs 8.3±0.03µs -3.49%
String copy (Compiler) 1034.2±9.24ns 1472.4±20.14ns +42.37%
String copy (Execution) 6.2±0.08µs 6.1±0.02µs -1.61%
String copy (Parser) 6.4±0.03µs 6.1±0.03µs -4.69%
Symbols (Compiler) 754.8±4.87ns 1054.9±3.42ns +39.76%
Symbols (Execution) 6.0±0.05µs 5.8±0.04µs -3.33%
Symbols (Parser) 4.7±0.03µs 4.7±0.02µs 0.00%

@github-actions
Copy link

Benchmark for dd000b8

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 447.4±24.93ns 596.3±69.35ns +33.28%
Arithmetic operations (Execution) 2.1±0.16µs 2.1±0.13µs 0.00%
Arithmetic operations (Parser) 5.8±0.40µs 5.7±0.45µs -1.72%
Array access (Compiler) 943.7±109.68ns 1454.0±96.49ns +54.07%
Array access (Execution) 12.0±0.91µs 11.8±1.48µs -1.67%
Array access (Parser) 12.5±0.97µs 12.3±0.80µs -1.60%
Array creation (Compiler) 1295.1±83.51ns 2.0±0.20µs +54.43%
Array creation (Execution) 3.5±0.27ms 3.4±0.21ms -2.86%
Array creation (Parser) 13.5±0.87µs 13.4±0.73µs -0.74%
Array pop (Compiler) 3.1±0.24µs 3.9±0.29µs +25.81%
Array pop (Execution) 1444.6±104.34µs 1441.8±93.91µs -0.19%
Array pop (Parser) 152.6±22.22µs 147.0±12.41µs -3.67%
Boolean Object Access (Compiler) 800.3±50.54ns 1232.5±91.93ns +54.00%
Boolean Object Access (Execution) 7.5±0.50µs 6.1±0.39µs -18.67%
Boolean Object Access (Parser) 15.2±2.35µs 14.2±0.99µs -6.58%
Clean js (Compiler) 2.5±0.17µs 3.8±0.27µs +52.00%
Clean js (Execution) 1634.2±185.31µs 1133.6±69.85µs -30.63%
Clean js (Parser) 29.0±1.64µs 28.7±1.71µs -1.03%
Create Realm 343.7±22.58ns 288.0±23.74ns -16.21%
Dynamic Object Property Access (Compiler) 1376.7±117.44ns 1885.2±144.19ns +36.94%
Dynamic Object Property Access (Execution) 7.8±0.36µs 7.9±0.83µs +1.28%
Dynamic Object Property Access (Parser) 11.9±0.89µs 11.1±1.31µs -6.72%
Fibonacci (Compiler) 1710.2±167.06ns 2.6±0.19µs +52.03%
Fibonacci (Execution) 3.4±0.22ms 3.3±0.20ms -2.94%
Fibonacci (Parser) 16.5±0.99µs 16.1±1.00µs -2.42%
For loop (Compiler) 1466.4±91.23ns 2.1±0.17µs +43.21%
For loop (Execution) 51.0±5.11µs 47.7±2.70µs -6.47%
For loop (Parser) 14.5±1.80µs 14.3±1.05µs -1.38%
Mini js (Compiler) 2.5±0.16µs 3.8±0.25µs +52.00%
Mini js (Execution) 1435.1±86.97µs 1044.7±70.19µs -27.20%
Mini js (Parser) 25.8±1.50µs 25.0±1.26µs -3.10%
Number Object Access (Compiler) 757.0±56.96ns 1144.6±72.67ns +51.20%
Number Object Access (Execution) 6.0±0.44µs 4.7±0.21µs -21.67%
Number Object Access (Parser) 11.4±0.69µs 11.2±0.55µs -1.75%
Object Creation (Compiler) 1121.3±72.39ns 1565.9±91.97ns +39.65%
Object Creation (Execution) 7.1±0.56µs 7.1±0.32µs 0.00%
Object Creation (Parser) 9.5±0.69µs 9.4±0.67µs -1.05%
RegExp (Compiler) 1296.2±67.43ns 1824.6±102.43ns +40.77%
RegExp (Execution) 14.3±0.68µs 14.1±1.01µs -1.40%
RegExp (Parser) 10.3±0.52µs 10.1±0.64µs -1.94%
RegExp Creation (Compiler) 1232.3±110.13ns 1751.2±150.41ns +42.11%
RegExp Creation (Execution) 10.6±0.56µs 10.6±0.67µs 0.00%
RegExp Creation (Parser) 8.7±0.71µs 8.5±0.50µs -2.30%
RegExp Literal (Compiler) 1293.5±55.65ns 1831.8±95.24ns +41.62%
RegExp Literal (Execution) 14.4±1.02µs 14.3±0.71µs -0.69%
RegExp Literal (Parser) 8.3±1.09µs 8.0±0.42µs -3.61%
RegExp Literal Creation (Compiler) 1173.9±57.48ns 1604.7±76.00ns +36.70%
RegExp Literal Creation (Execution) 10.5±0.57µs 10.5±1.22µs 0.00%
RegExp Literal Creation (Parser) 6.7±0.55µs 6.4±0.59µs -4.48%
Static Object Property Access (Compiler) 1137.1±89.18ns 1617.8±90.87ns +42.27%
Static Object Property Access (Execution) 7.9±0.51µs 7.3±0.51µs -7.59%
Static Object Property Access (Parser) 10.3±0.81µs 9.8±0.50µs -4.85%
String Object Access (Compiler) 1131.7±63.24ns 1589.6±121.00ns +40.46%
String Object Access (Execution) 9.9±0.78µs 8.3±0.64µs -16.16%
String Object Access (Parser) 14.3±0.98µs 14.4±1.27µs +0.70%
String comparison (Compiler) 1507.9±96.72ns 2.4±0.20µs +59.16%
String comparison (Execution) 8.4±0.68µs 7.0±0.49µs -16.67%
String comparison (Parser) 11.3±0.79µs 11.0±0.61µs -2.65%
String concatenation (Compiler) 1211.2±82.62ns 1896.0±115.45ns +56.54%
String concatenation (Execution) 7.2±0.54µs 6.3±0.59µs -12.50%
String concatenation (Parser) 7.9±0.72µs 7.6±0.54µs -3.80%
String copy (Compiler) 1022.6±63.85ns 1522.3±122.05ns +48.87%
String copy (Execution) 6.3±0.45µs 5.7±0.32µs -9.52%
String copy (Parser) 5.7±0.49µs 5.7±0.34µs 0.00%
Symbols (Compiler) 833.0±78.70ns 1152.3±123.67ns +38.33%
Symbols (Execution) 5.6±0.27µs 5.5±0.29µs -1.79%
Symbols (Parser) 4.4±0.33µs 4.2±0.20µs -4.55%

@raskad raskad force-pushed the generator-execution branch from cde17cb to 369d23e Compare February 22, 2022 02:33
@raskad raskad marked this pull request as ready for review February 22, 2022 02:34
@github-actions
Copy link

Benchmark for 00682bb

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 440.4±0.69ns 500.3±0.60ns +13.60%
Arithmetic operations (Execution) 2.0±0.02µs 2.1±0.00µs +5.00%
Arithmetic operations (Parser) 5.5±0.01µs 5.5±0.01µs 0.00%
Array access (Compiler) 1181.1±3.56ns 1266.9±5.23ns +7.26%
Array access (Execution) 10.1±0.05µs 10.4±0.02µs +2.97%
Array access (Parser) 11.8±0.02µs 11.7±0.02µs -0.85%
Array creation (Compiler) 1731.7±4.93ns 1785.7±11.42ns +3.12%
Array creation (Execution) 3.1±0.01ms 3.0±0.01ms -3.23%
Array creation (Parser) 13.2±0.03µs 13.1±0.04µs -0.76%
Array pop (Compiler) 3.3±0.02µs 3.4±0.01µs +3.03%
Array pop (Execution) 1331.9±3.49µs 1306.4±3.00µs -1.91%
Array pop (Parser) 137.2±0.13µs 136.4±0.07µs -0.58%
Boolean Object Access (Compiler) 1046.1±5.06ns 1101.6±46.81ns +5.31%
Boolean Object Access (Execution) 5.6±0.01µs 5.8±0.02µs +3.57%
Boolean Object Access (Parser) 14.1±0.01µs 13.9±0.02µs -1.42%
Clean js (Compiler) 3.2±0.01µs 3.3±0.01µs +3.12%
Clean js (Execution) 1076.6±8.53µs 1082.1±7.01µs +0.51%
Clean js (Parser) 28.4±0.04µs 28.3±0.03µs -0.35%
Create Realm 262.6±0.19ns 271.1±0.40ns +3.24%
Dynamic Object Property Access (Compiler) 1511.3±2.97ns 1624.4±7.06ns +7.48%
Dynamic Object Property Access (Execution) 6.6±0.03µs 6.9±0.04µs +4.55%
Dynamic Object Property Access (Parser) 10.5±0.02µs 10.5±0.02µs 0.00%
Fibonacci (Compiler) 2.2±0.01µs 2.3±0.01µs +4.55%
Fibonacci (Execution) 1747.2±2.90µs 1822.1±2.40µs +4.29%
Fibonacci (Parser) 15.9±0.04µs 15.8±0.02µs -0.63%
For loop (Compiler) 1880.9±13.68ns 1908.7±10.57ns +1.48%
For loop (Execution) 42.2±0.19µs 42.8±0.12µs +1.42%
For loop (Parser) 13.6±0.02µs 13.6±0.16µs 0.00%
Mini js (Compiler) 3.1±0.01µs 3.2±0.01µs +3.23%
Mini js (Execution) 986.6±7.93µs 1001.0±7.02µs +1.46%
Mini js (Parser) 24.8±0.10µs 24.8±0.28µs 0.00%
Number Object Access (Compiler) 964.7±1.23ns 1016.0±5.27ns +5.32%
Number Object Access (Execution) 4.4±0.01µs 4.6±0.02µs +4.55%
Number Object Access (Parser) 10.9±0.02µs 10.9±0.01µs 0.00%
Object Creation (Compiler) 1301.5±2.57ns 1353.1±3.37ns +3.96%
Object Creation (Execution) 6.0±0.02µs 6.2±0.02µs +3.33%
Object Creation (Parser) 9.2±0.02µs 9.1±0.02µs -1.09%
RegExp (Compiler) 1517.9±2.74ns 1631.1±8.45ns +7.46%
RegExp (Execution) 11.9±0.06µs 12.5±0.04µs +5.04%
RegExp (Parser) 10.0±0.01µs 9.9±0.08µs -1.00%
RegExp Creation (Compiler) 1316.3±1.92ns 1372.4±6.49ns +4.26%
RegExp Creation (Execution) 8.9±0.04µs 9.1±0.04µs +2.25%
RegExp Creation (Parser) 8.4±0.05µs 8.3±0.01µs -1.19%
RegExp Literal (Compiler) 1504.6±8.78ns 1622.4±7.94ns +7.83%
RegExp Literal (Execution) 12.0±0.07µs 12.4±0.05µs +3.33%
RegExp Literal (Parser) 8.0±0.02µs 8.0±0.02µs 0.00%
RegExp Literal Creation (Compiler) 1304.8±1.78ns 1380.7±5.74ns +5.82%
RegExp Literal Creation (Execution) 8.9±0.02µs 9.2±0.03µs +3.37%
RegExp Literal Creation (Parser) 6.3±0.03µs 6.3±0.01µs 0.00%
Static Object Property Access (Compiler) 1282.7±3.94ns 1419.7±6.75ns +10.68%
Static Object Property Access (Execution) 6.3±0.02µs 6.5±0.03µs +3.17%
Static Object Property Access (Parser) 9.8±0.02µs 9.7±0.05µs -1.02%
String Object Access (Compiler) 1358.6±3.61ns 1447.6±9.15ns +6.55%
String Object Access (Execution) 7.5±0.08µs 7.6±0.02µs +1.33%
String Object Access (Parser) 13.8±0.02µs 13.7±0.02µs -0.72%
String comparison (Compiler) 2.0±0.00µs 2.1±0.01µs +5.00%
String comparison (Execution) 5.7±0.02µs 6.0±0.01µs +5.26%
String comparison (Parser) 10.8±0.03µs 10.7±0.01µs -0.93%
String concatenation (Compiler) 1545.2±2.91ns 1611.0±1.12ns +4.26%
String concatenation (Execution) 5.2±0.07µs 5.5±0.05µs +5.77%
String concatenation (Parser) 7.4±0.02µs 7.4±0.02µs 0.00%
String copy (Compiler) 1208.3±3.42ns 1308.0±2.15ns +8.25%
String copy (Execution) 4.7±0.01µs 4.8±0.02µs +2.13%
String copy (Parser) 5.6±0.02µs 5.5±0.02µs -1.79%
Symbols (Compiler) 813.1±1.91ns 921.9±2.07ns +13.38%
Symbols (Execution) 4.4±0.01µs 4.8±0.02µs +9.09%
Symbols (Parser) 4.2±0.02µs 4.2±0.01µs 0.00%

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 job! Looks pretty good!

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.

Besides some very small things. This looks very good to me :)

Awesome work @raskad !

@@ -192,7 +196,7 @@ impl Function {
pub fn is_constructor(&self) -> bool {
match self {
Self::Native { constructor, .. } | Self::Closure { constructor, .. } => *constructor,
Self::VmOrdinary { code, .. } => code.constructor,
Self::VmOrdinary { code, .. } | Self::VmGenerator { code, .. } => code.constructor,
Copy link
Member

Choose a reason for hiding this comment

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

Maybe we should rename VmOrdinary => Ordinary and VmGenerator => Generator, This is an artifact from when we had an AST walker and I named it with a Vm prefix so we could have the vm and AST walker and work on both at the same time. But now I don't see a reason to keep that naming since there is only a vm now.

.property(
WellKnownSymbols::to_string_tag(),
"Generator",
Attribute::NON_ENUMERABLE | Attribute::CONFIGURABLE,
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
Attribute::NON_ENUMERABLE | Attribute::CONFIGURABLE,
Attribute::READONLY | Attribute::NON_ENUMERABLE | Attribute::CONFIGURABLE,

@HalidOdat
Copy link
Member

VM implementation

Test result main count PR count difference
Total 88,342 88,342 0
Passed 41,386 42,773 +1,387
Ignored 21,413 21,413 0
Failed 25,543 24,156 -1,387
Panics 12 12 0
Conformance 46.85% 48.42% +1.57%
Fixed tests (1387):
test/language/expressions/yield/iter-value-unspecified.js [strict mode] (previously Failed)
test/language/expressions/yield/iter-value-unspecified.js (previously Failed)
test/language/expressions/yield/star-return-is-null.js [strict mode] (previously Failed)
test/language/expressions/yield/star-return-is-null.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-done-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-get-err.js (previously Failed)
test/language/expressions/yield/star-array.js [strict mode] (previously Failed)
test/language/expressions/yield/star-array.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-invoke.js (previously Failed)
test/language/expressions/yield/star-string.js [strict mode] (previously Failed)
test/language/expressions/yield/star-string.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-call-non-obj.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-done-err.js (previously Failed)
test/language/expressions/yield/then-return.js [strict mode] (previously Failed)
test/language/expressions/yield/then-return.js (previously Failed)
test/language/expressions/yield/rhs-primitive.js [strict mode] (previously Failed)
test/language/expressions/yield/rhs-primitive.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-non-obj.js (previously Failed)
test/language/expressions/yield/within-for.js [strict mode] (previously Failed)
test/language/expressions/yield/within-for.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-non-obj.js (previously Failed)
test/language/expressions/yield/from-try.js [strict mode] (previously Failed)
test/language/expressions/yield/from-try.js (previously Failed)
test/language/expressions/yield/captured-free-vars.js [strict mode] (previously Failed)
test/language/expressions/yield/captured-free-vars.js (previously Failed)
test/language/expressions/yield/rhs-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/yield/rhs-unresolvable.js (previously Failed)
test/language/expressions/yield/star-rhs-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-unresolvable.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-call-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-call-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-call-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-value-final.js (previously Failed)
test/language/expressions/yield/formal-parameters-after-reassignment-non-strict.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-get-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-value-final.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-res-value-err.js (previously Failed)
test/language/expressions/yield/from-catch.js [strict mode] (previously Failed)
test/language/expressions/yield/from-catch.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-no-rtrn.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-get-err.js (previously Failed)
test/language/expressions/yield/star-throw-is-null.js [strict mode] (previously Failed)
test/language/expressions/yield/star-throw-is-null.js (previously Failed)
test/language/expressions/yield/in-rltn-expr.js [strict mode] (previously Failed)
test/language/expressions/yield/in-rltn-expr.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-get-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-get-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-violation-rtrn-call-non-obj.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-invoke.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-invoke.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-call-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-thrw-thrw-get-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-res-value-err.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-get-call-non-obj.js (previously Failed)
test/language/expressions/yield/rhs-yield.js [strict mode] (previously Failed)
test/language/expressions/yield/rhs-yield.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-next-invoke.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-rtrn-call-err.js (previously Failed)
test/language/expressions/yield/formal-parameters-after-reassignment-strict.js [strict mode] (previously Failed)
test/language/expressions/yield/formal-parameters.js [strict mode] (previously Failed)
test/language/expressions/yield/formal-parameters.js (previously Failed)
test/language/expressions/yield/iter-value-specified.js [strict mode] (previously Failed)
test/language/expressions/yield/iter-value-specified.js (previously Failed)
test/language/expressions/yield/star-in-rltn-expr.js [strict mode] (previously Failed)
test/language/expressions/yield/star-in-rltn-expr.js (previously Failed)
test/language/expressions/yield/arguments-object-attributes.js [strict mode] (previously Failed)
test/language/expressions/yield/arguments-object-attributes.js (previously Failed)
test/language/expressions/yield/rhs-iter.js [strict mode] (previously Failed)
test/language/expressions/yield/rhs-iter.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-nrml-res-value-err.js (previously Failed)
test/language/expressions/yield/rhs-regexp.js [strict mode] (previously Failed)
test/language/expressions/yield/rhs-regexp.js (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js [strict mode] (previously Failed)
test/language/expressions/yield/star-rhs-iter-rtrn-res-done-err.js (previously Failed)
test/language/expressions/object/scope-gen-meth-paramsbody-var-close.js [strict mode] (previously Failed)
test/language/expressions/object/scope-gen-meth-paramsbody-var-close.js (previously Failed)
test/language/expressions/object/scope-gen-meth-paramsbody-var-open.js [strict mode] (previously Failed)
test/language/expressions/object/scope-gen-meth-paramsbody-var-open.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/cpn-obj-lit-computed-property-name-from-generator-function-declaration.js [strict mode] (previously Failed)
test/language/expressions/object/cpn-obj-lit-computed-property-name-from-generator-function-declaration.js (previously Failed)
test/language/expressions/object/method-definition/generator-prototype.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-prototype.js (previously Failed)
test/language/expressions/object/method-definition/yield-star-before-newline.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-star-before-newline.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-generator-method-binding-identifier.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-generator-method-binding-identifier.js (previously Failed)
test/language/expressions/object/method-definition/params-dflt-gen-meth-ref-arguments.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/params-dflt-gen-meth-ref-arguments.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-statement.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-statement.js (previously Failed)
test/language/expressions/object/method-definition/generator-return.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-return.js (previously Failed)
test/language/expressions/object/method-definition/generator-length.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-length.js (previously Failed)
test/language/expressions/object/method-definition/generator-prototype-prop.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-prototype-prop.js (previously Failed)
test/language/expressions/object/method-definition/yield-return.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-return.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-property-name.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-property-name.js (previously Failed)
test/language/expressions/object/method-definition/computed-property-name-yield-expression.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-literal-property-name.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-literal-property-name.js (previously Failed)
test/language/expressions/object/method-definition/generator-invoke-fn-no-strict.js (previously Failed)
test/language/expressions/object/method-definition/params-dflt-gen-meth-args-unmapped.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/params-dflt-gen-meth-args-unmapped.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-expression-with-rhs.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-expression-with-rhs.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js (previously Failed)
test/language/expressions/object/method-definition/generator-params.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-params.js (previously Failed)
test/language/expressions/object/method-definition/generator-no-yield.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/generator-no-yield.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-yield-operand.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/yield-as-yield-operand.js (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js [strict mode] (previously Failed)
test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js (previously Failed)
test/language/expressions/object/method-definition/yield-as-function-expression-binding-identifier.js (previously Failed)
test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-caller.js (previously Failed)
test/language/expressions/object/method-definition/forbidden-ext/b1/gen-meth-forbidden-ext-direct-access-prop-arguments.js (previously Failed)
test/language/expressions/object/method-definition/forbidden-ext/b2/gen-meth-forbidden-ext-indirect-access-own-prop-caller-get.js (previously Failed)
test/language/expressions/object/method-definition/forbidden-ext/b2/gen-meth-forbidden-ext-indirect-access-own-prop-caller-value.js (previously Failed)
test/language/expressions/object/method-definition/forbidden-ext/b2/gen-meth-forbidden-ext-indirect-access-prop-caller.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-undef.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-undef.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-id.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-list-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-empty.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-exhausted.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-exhausted.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-rest-iter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-rest-iter.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-obj.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-hole.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-hole.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-close.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-empty.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-no-close.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-no-close.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-init-skipped.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-init-iter-get-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-prop-id.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-empty.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-name-iter-val.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-name-iter-val.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-done.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-done.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-skipped.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elem-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elem-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-obj-init.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision-step-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision-step-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-ary-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-obj-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-obj-id.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-direct.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-direct.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-complete.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-complete.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-skipped.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-rest-getter.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-prop-id-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-obj.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-exhausted.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-exhausted.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-rest.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-rest.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-rest-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-rest-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-list-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-elem.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-ary-elem.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-elision.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-elision.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-id-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-obj-id-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elem-iter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-elem-iter.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-id-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-rest-getter.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-empty-iter.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elem-ary-empty-iter.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-obj-init.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-empty.js (previously Failed)
test/language/expressions/generators/no-yield.js [strict mode] (previously Failed)
test/language/expressions/generators/no-yield.js (previously Failed)
test/language/expressions/generators/prototype-typeof.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-typeof.js (previously Failed)
test/language/expressions/generators/prototype-own-properties.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-own-properties.js (previously Failed)
test/language/expressions/generators/length-property-descriptor.js [strict mode] (previously Failed)
test/language/expressions/generators/length-property-descriptor.js (previously Failed)
test/language/expressions/generators/dflt-params-arg-val-not-undefined.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-arg-val-not-undefined.js (previously Failed)
test/language/expressions/generators/yield-star-before-newline.js [strict mode] (previously Failed)
test/language/expressions/generators/yield-star-before-newline.js (previously Failed)
test/language/expressions/generators/prototype-property-descriptor.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-property-descriptor.js (previously Failed)
test/language/expressions/generators/return.js [strict mode] (previously Failed)
test/language/expressions/generators/return.js (previously Failed)
test/language/expressions/generators/no-name.js [strict mode] (previously Failed)
test/language/expressions/generators/no-name.js (previously Failed)
test/language/expressions/generators/params-dflt-ref-arguments.js [strict mode] (previously Failed)
test/language/expressions/generators/params-dflt-ref-arguments.js (previously Failed)
test/language/expressions/generators/has-instance.js [strict mode] (previously Failed)
test/language/expressions/generators/has-instance.js (previously Failed)
test/language/expressions/generators/default-proto.js [strict mode] (previously Failed)
test/language/expressions/generators/default-proto.js (previously Failed)
test/language/expressions/generators/arguments-with-arguments-lex.js (previously Failed)
test/language/expressions/generators/prototype-uniqueness.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-uniqueness.js (previously Failed)
test/language/expressions/generators/yield-as-statement.js [strict mode] (previously Failed)
test/language/expressions/generators/yield-as-statement.js (previously Failed)
test/language/expressions/generators/yield-as-property-name.js [strict mode] (previously Failed)
test/language/expressions/generators/yield-as-property-name.js (previously Failed)
test/language/expressions/generators/dflt-params-abrupt.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-abrupt.js (previously Failed)
test/language/expressions/generators/prototype-value.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-value.js (previously Failed)
test/language/expressions/generators/params-dflt-args-unmapped.js [strict mode] (previously Failed)
test/language/expressions/generators/params-dflt-args-unmapped.js (previously Failed)
test/language/expressions/generators/yield-as-literal-property-name.js [strict mode] (previously Failed)
test/language/expressions/generators/yield-as-literal-property-name.js (previously Failed)
test/language/expressions/generators/name.js [strict mode] (previously Failed)
test/language/expressions/generators/name.js (previously Failed)
test/language/expressions/generators/arguments-with-arguments-fn.js (previously Failed)
test/language/expressions/generators/scope-paramsbody-var-close.js [strict mode] (previously Failed)
test/language/expressions/generators/scope-paramsbody-var-close.js (previously Failed)
test/language/expressions/generators/dflt-params-ref-prior.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-ref-prior.js (previously Failed)
test/language/expressions/generators/dflt-params-arg-val-undefined.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-arg-val-undefined.js (previously Failed)
test/language/expressions/generators/scope-paramsbody-var-open.js [strict mode] (previously Failed)
test/language/expressions/generators/scope-paramsbody-var-open.js (previously Failed)
test/language/expressions/generators/dflt-params-ref-later.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-ref-later.js (previously Failed)
test/language/expressions/generators/prototype-relation-to-function.js [strict mode] (previously Failed)
test/language/expressions/generators/prototype-relation-to-function.js (previously Failed)
test/language/expressions/generators/yield-as-yield-operand.js [strict mode] (previously Failed)
test/language/expressions/generators/yield-as-yield-operand.js (previously Failed)
test/language/expressions/generators/dflt-params-ref-self.js [strict mode] (previously Failed)
test/language/expressions/generators/dflt-params-ref-self.js (previously Failed)
test/language/expressions/generators/generator-created-after-decl-inst.js [strict mode] (previously Failed)
test/language/expressions/generators/generator-created-after-decl-inst.js (previously Failed)
test/language/expressions/generators/yield-as-function-expression-binding-identifier.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-get-err.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-id.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-undef.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-undef.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-direct.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-direct.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-rest-iter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-rest-iter.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-hole.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-hole.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-exhausted.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-exhausted.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-obj-init.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-skipped.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-prop-id.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-prop-id-init.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-done.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-done.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-rest-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-rest-init.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-list-err.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-rest.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-rest.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-empty.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-empty.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary-init.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-empty-iter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-empty-iter.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-exhausted.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-exhausted.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-close.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-close.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-obj-init.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-obj.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-getter.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary-init.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-empty.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elem-iter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elem-iter.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-elision.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-elision.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elem-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-ary-elem-init.js (previously Failed)
test/language/expressions/generators/dstr/ary-name-iter-val.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-name-iter-val.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-obj.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-ary.js (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-no-close.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-init-iter-no-close.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-list-err.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-ary.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elision.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-id-init-skipped.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-id-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-obj-id-init.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-rest-getter.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-complete.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-iter-complete.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-obj-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-obj-id.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-id-init.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-skipped.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-elem-id-init-skipped.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-elem.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-ary-elem.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-id-init.js (previously Failed)
test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-caller.js (previously Failed)
test/language/expressions/generators/forbidden-ext/b1/gen-func-expr-forbidden-ext-direct-access-prop-arguments.js (previously Failed)
test/language/expressions/generators/forbidden-ext/b2/gen-func-expr-forbidden-ext-indirect-access-prop-caller.js (previously Failed)
test/language/expressions/generators/forbidden-ext/b2/gen-func-expr-forbidden-ext-indirect-access-own-prop-caller-get.js (previously Failed)
test/language/expressions/generators/forbidden-ext/b2/gen-func-expr-forbidden-ext-indirect-access-own-prop-caller-value.js (previously Failed)
test/language/expressions/call/spread-err-sngl-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/call/spread-err-sngl-err-expr-throws.js (previously Failed)
test/language/expressions/call/spread-err-mult-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/call/spread-err-mult-err-expr-throws.js (previously Failed)
test/language/expressions/await/await-in-generator.js [strict mode] (previously Failed)
test/language/expressions/await/await-in-generator.js (previously Failed)
test/language/expressions/function/param-dflt-yield-non-strict.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-empty.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elision.js (previously Failed)
test/language/expressions/new/spread-err-sngl-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/new/spread-err-sngl-err-expr-throws.js (previously Failed)
test/language/expressions/new/spread-err-mult-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/new/spread-err-mult-err-expr-throws.js (previously Failed)
test/language/expressions/array/spread-err-sngl-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/array/spread-err-sngl-err-expr-throws.js (previously Failed)
test/language/expressions/array/spread-err-mult-err-expr-throws.js [strict mode] (previously Failed)
test/language/expressions/array/spread-err-mult-err-expr-throws.js (previously Failed)
test/language/statements/for-of/yield.js [strict mode] (previously Failed)
test/language/statements/for-of/yield.js (previously Failed)
test/language/statements/for-of/return-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/return-from-try.js (previously Failed)
test/language/statements/for-of/continue-label.js [strict mode] (previously Failed)
test/language/statements/for-of/continue-label.js (previously Failed)
test/language/statements/for-of/return-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/return-from-catch.js (previously Failed)
test/language/statements/for-of/return.js [strict mode] (previously Failed)
test/language/statements/for-of/return.js (previously Failed)
test/language/statements/for-of/break-label-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/break-label-from-catch.js (previously Failed)
test/language/statements/for-of/break-label.js [strict mode] (previously Failed)
test/language/statements/for-of/break-label.js (previously Failed)
test/language/statements/for-of/yield-star-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-star-from-catch.js (previously Failed)
test/language/statements/for-of/continue.js [strict mode] (previously Failed)
test/language/statements/for-of/continue.js (previously Failed)
test/language/statements/for-of/generator-next-error.js [strict mode] (previously Failed)
test/language/statements/for-of/generator-next-error.js (previously Failed)
test/language/statements/for-of/generator.js [strict mode] (previously Failed)
test/language/statements/for-of/generator.js (previously Failed)
test/language/statements/for-of/break.js [strict mode] (previously Failed)
test/language/statements/for-of/break.js (previously Failed)
test/language/statements/for-of/continue-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/continue-from-try.js (previously Failed)
test/language/statements/for-of/throw-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/throw-from-finally.js (previously Failed)
test/language/statements/for-of/yield-star-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-star-from-finally.js (previously Failed)
test/language/statements/for-of/yield-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-from-catch.js (previously Failed)
test/language/statements/for-of/break-label-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/break-label-from-finally.js (previously Failed)
test/language/statements/for-of/break-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/break-from-try.js (previously Failed)
test/language/statements/for-of/break-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/break-from-catch.js (previously Failed)
test/language/statements/for-of/return-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/return-from-finally.js (previously Failed)
test/language/statements/for-of/nested.js [strict mode] (previously Failed)
test/language/statements/for-of/nested.js (previously Failed)
test/language/statements/for-of/throw.js [strict mode] (previously Failed)
test/language/statements/for-of/throw.js (previously Failed)
test/language/statements/for-of/yield-star-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-star-from-try.js (previously Failed)
test/language/statements/for-of/generator-close-via-break.js [strict mode] (previously Failed)
test/language/statements/for-of/generator-close-via-break.js (previously Failed)
test/language/statements/for-of/yield-star.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-star.js (previously Failed)
test/language/statements/for-of/break-label-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/break-label-from-try.js (previously Failed)
test/language/statements/for-of/continue-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/continue-from-catch.js (previously Failed)
test/language/statements/for-of/continue-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/continue-from-finally.js (previously Failed)
test/language/statements/for-of/break-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/break-from-finally.js (previously Failed)
test/language/statements/for-of/yield-from-finally.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-from-finally.js (previously Failed)
test/language/statements/for-of/throw-from-catch.js [strict mode] (previously Failed)
test/language/statements/for-of/throw-from-catch.js (previously Failed)
test/language/statements/for-of/yield-from-try.js [strict mode] (previously Failed)
test/language/statements/for-of/yield-from-try.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-empty.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-empty.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-empty.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-elision.js (previously Failed)
test/language/statements/generators/yield-as-generator-declaration-binding-identifier.js (previously Failed)
test/language/statements/generators/no-yield.js [strict mode] (previously Failed)
test/language/statements/generators/no-yield.js (previously Failed)
test/language/statements/generators/prototype-typeof.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-typeof.js (previously Failed)
test/language/statements/generators/prototype-own-properties.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-own-properties.js (previously Failed)
test/language/statements/generators/length-property-descriptor.js [strict mode] (previously Failed)
test/language/statements/generators/length-property-descriptor.js (previously Failed)
test/language/statements/generators/dflt-params-arg-val-not-undefined.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-arg-val-not-undefined.js (previously Failed)
test/language/statements/generators/yield-star-before-newline.js [strict mode] (previously Failed)
test/language/statements/generators/yield-star-before-newline.js (previously Failed)
test/language/statements/generators/prototype-property-descriptor.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-property-descriptor.js (previously Failed)
test/language/statements/generators/return.js [strict mode] (previously Failed)
test/language/statements/generators/return.js (previously Failed)
test/language/statements/generators/params-dflt-ref-arguments.js [strict mode] (previously Failed)
test/language/statements/generators/params-dflt-ref-arguments.js (previously Failed)
test/language/statements/generators/has-instance.js [strict mode] (previously Failed)
test/language/statements/generators/has-instance.js (previously Failed)
test/language/statements/generators/default-proto.js [strict mode] (previously Failed)
test/language/statements/generators/default-proto.js (previously Failed)
test/language/statements/generators/arguments-with-arguments-lex.js (previously Failed)
test/language/statements/generators/prototype-uniqueness.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-uniqueness.js (previously Failed)
test/language/statements/generators/yield-as-statement.js [strict mode] (previously Failed)
test/language/statements/generators/yield-as-statement.js (previously Failed)
test/language/statements/generators/yield-as-property-name.js [strict mode] (previously Failed)
test/language/statements/generators/yield-as-property-name.js (previously Failed)
test/language/statements/generators/dflt-params-abrupt.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-abrupt.js (previously Failed)
test/language/statements/generators/prototype-value.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-value.js (previously Failed)
test/language/statements/generators/params-dflt-args-unmapped.js [strict mode] (previously Failed)
test/language/statements/generators/params-dflt-args-unmapped.js (previously Failed)
test/language/statements/generators/yield-as-literal-property-name.js [strict mode] (previously Failed)
test/language/statements/generators/yield-as-literal-property-name.js (previously Failed)
test/language/statements/generators/name.js [strict mode] (previously Failed)
test/language/statements/generators/name.js (previously Failed)
test/language/statements/generators/arguments-with-arguments-fn.js (previously Failed)
test/language/statements/generators/scope-paramsbody-var-close.js [strict mode] (previously Failed)
test/language/statements/generators/scope-paramsbody-var-close.js (previously Failed)
test/language/statements/generators/dflt-params-ref-prior.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-ref-prior.js (previously Failed)
test/language/statements/generators/dflt-params-arg-val-undefined.js [strict mode] (previously Failed)
test/language/statements/generators/dflt-params-arg-val-undefined.js (previously Failed)
test/language/statements/generators/scope-paramsbody-var-open.js [strict mode] (previously Failed)
test/language/statements/generators/scope-paramsbody-var-open.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/prototype-relation-to-function.js [strict mode] (previously Failed)
test/language/statements/generators/prototype-relation-to-function.js (previously Failed)
test/language/statements/generators/yield-as-yield-operand.js [strict mode] (previously Failed)
test/language/statements/generators/yield-as-yield-operand.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/generators/generator-created-after-decl-inst.js [strict mode] (previously Failed)
test/language/statements/generators/generator-created-after-decl-inst.js (previously Failed)
test/language/statements/generators/declaration.js [strict mode] (previously Failed)
test/language/statements/generators/declaration.js (previously Failed)
test/language/statements/generators/yield-as-function-expression-binding-identifier.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-get-err.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-id.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-undef.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-undef.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-throws.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-direct.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-direct.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-rest-iter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-rest-iter.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-hole.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-hole.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-exhausted.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-exhausted.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-obj-init.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-skipped.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-prop-id.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-prop-id-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-prop-id-init.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-done.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-done.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-rest-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-rest-init.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-list-err.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-rest.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-rest.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-skipped.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-skipped.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-empty.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-empty.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary-init.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-empty-iter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-empty-iter.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-exhausted.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-exhausted.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elision-iter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elision-iter.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-get-value-err.js (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-close.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-id-get-value-err.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-obj-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-obj-init.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-obj.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-getter.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary-init.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-trailing-comma.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-trailing-comma.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elem-iter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elem-iter.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-elision.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-elision.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elem-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-ary-elem-init.js (previously Failed)
test/language/statements/generators/dstr/ary-name-iter-val.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-name-iter-val.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-obj.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-obj.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-ary.js (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-no-close.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-init-iter-no-close.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-list-err.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-throws.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-ary.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elision.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-skipped.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-id-init-skipped.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-id-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-obj-id-init.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-getter.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-rest-getter.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-complete.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-iter-complete.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-obj-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-obj-id.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-id-init.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-skipped.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-elem-id-init-skipped.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-elem.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-ary-elem.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-id-init.js (previously Failed)
test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-arguments.js (previously Failed)
test/language/statements/generators/forbidden-ext/b1/gen-func-decl-forbidden-ext-direct-access-prop-caller.js (previously Failed)
test/language/statements/generators/forbidden-ext/b2/gen-func-decl-forbidden-ext-indirect-access-own-prop-caller-value.js (previously Failed)
test/language/statements/generators/forbidden-ext/b2/gen-func-decl-forbidden-ext-indirect-access-own-prop-caller-get.js (previously Failed)
test/language/statements/generators/forbidden-ext/b2/gen-func-decl-forbidden-ext-indirect-access-prop-caller.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-empty.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-empty.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-elision-iter-close.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-empty.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-id-iter-close.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-elision.js (previously Failed)
test/language/statements/function/param-dflt-yield-non-strict.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elision.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-elision.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision-exhausted.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision-exhausted.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-ary-empty.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-ary-empty.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision-step-err.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision-step-err.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-elision-init.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-elision-init.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-id-iter-step-err.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-ary-elision.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-ary-elision.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-empty.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-empty.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-empty-init.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elem-ary-empty-init.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-id-elision-next-err.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-id-elision-next-err.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-elision.js (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js [strict mode] (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js [strict mode] (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-null.js [strict mode] (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-null.js (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js [strict mode] (previously Failed)
test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js [strict mode] (previously Failed)
test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js (previously Failed)
test/built-ins/Object/seal/seal-generatorfunction.js [strict mode] (previously Failed)
test/built-ins/Object/seal/seal-generatorfunction.js (previously Failed)
test/built-ins/GeneratorFunction/has-instance.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/has-instance.js (previously Failed)
test/built-ins/GeneratorFunction/name.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/name.js (previously Failed)
test/built-ins/GeneratorFunction/extensibility.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/extensibility.js (previously Failed)
test/built-ins/GeneratorFunction/length.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/length.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/not-callable.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/not-callable.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/Symbol.toStringTag.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/constructor.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/constructor.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/prop-desc.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/prop-desc.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/extensibility.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/extensibility.js (previously Failed)
test/built-ins/GeneratorFunction/prototype/prototype.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/prototype/prototype.js (previously Failed)
test/built-ins/GeneratorPrototype/Symbol.toStringTag.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/Symbol.toStringTag.js (previously Failed)
test/built-ins/GeneratorPrototype/constructor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/constructor.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-before-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-before-try.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/return/this-val-not-generator.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/this-val-not-generator.js (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-suspended-start.js (previously Failed)
test/built-ins/GeneratorPrototype/return/this-val-not-object.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/this-val-not-object.js (previously Failed)
test/built-ins/GeneratorPrototype/return/property-descriptor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/property-descriptor.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-within-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-within-try.js (previously Failed)
test/built-ins/GeneratorPrototype/return/not-a-constructor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/not-a-constructor.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-executing.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-executing.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-inner-try.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-within-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-before-nested.js (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-completed.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/from-state-completed.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-within-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-within-try.js (previously Failed)
test/built-ins/GeneratorPrototype/return/name.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/name.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-following-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-before-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-before-try.js (previously Failed)
test/built-ins/GeneratorPrototype/return/length.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/length.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-catch-within-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-following-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/return/try-finally-nested-try-catch-within-outer-try-after-nested.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-before-try.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/this-val-not-generator.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-suspended-start.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/this-val-not-object.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/this-val-not-object.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/property-descriptor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/property-descriptor.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-within-try.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/not-a-constructor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/not-a-constructor.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-executing.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-executing.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-inner-try.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-within-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-before-nested.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-completed.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/from-state-completed.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-within-try.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/name.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/name.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-following-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-before-try.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/length.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/length.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-catch-within-catch.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-following-finally.js (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/throw/try-finally-nested-try-catch-within-outer-try-after-nested.js (previously Failed)
test/built-ins/GeneratorPrototype/next/context-method-invocation.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/context-method-invocation.js (previously Failed)
test/built-ins/GeneratorPrototype/next/result-prototype.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/result-prototype.js (previously Failed)
test/built-ins/GeneratorPrototype/next/this-val-not-generator.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/this-val-not-generator.js (previously Failed)
test/built-ins/GeneratorPrototype/next/no-control-flow.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/no-control-flow.js (previously Failed)
test/built-ins/GeneratorPrototype/next/this-val-not-object.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/this-val-not-object.js (previously Failed)
test/built-ins/GeneratorPrototype/next/property-descriptor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/property-descriptor.js (previously Failed)
test/built-ins/GeneratorPrototype/next/not-a-constructor.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/not-a-constructor.js (previously Failed)
test/built-ins/GeneratorPrototype/next/consecutive-yields.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/consecutive-yields.js (previously Failed)
test/built-ins/GeneratorPrototype/next/from-state-executing.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/from-state-executing.js (previously Failed)
test/built-ins/GeneratorPrototype/next/lone-yield.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/lone-yield.js (previously Failed)
test/built-ins/GeneratorPrototype/next/name.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/name.js (previously Failed)
test/built-ins/GeneratorPrototype/next/return-yield-expr.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/return-yield-expr.js (previously Failed)
test/built-ins/GeneratorPrototype/next/lone-return.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/lone-return.js (previously Failed)
test/built-ins/GeneratorPrototype/next/length.js [strict mode] (previously Failed)
test/built-ins/GeneratorPrototype/next/length.js (previously Failed)
test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js [strict mode] (previously Failed)
test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js (previously Failed)
test/intl402/DateTimeFormat/constructor-options-style-conflict.js [strict mode] (previously Failed)
test/intl402/DateTimeFormat/constructor-options-style-conflict.js (previously Failed)
test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js [strict mode] (previously Failed)
test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js (previously Failed)
test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js [strict mode] (previously Failed)
test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js (previously Failed)
test/intl402/DisplayNames/options-getoptionsobject.js [strict mode] (previously Failed)
test/intl402/DisplayNames/options-getoptionsobject.js (previously Failed)

Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

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

Looking pretty good! I added some comments, mostly about documentation, but also about some structures which could implement some extra traits, and some Copy implementations could speed things up a little bit.

boa_engine/src/vm/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/vm/call_frame.rs Show resolved Hide resolved
boa_engine/src/vm/call_frame.rs Outdated Show resolved Hide resolved
boa_engine/src/vm/code_block.rs Outdated Show resolved Hide resolved
boa_engine/src/syntax/ast/node/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/syntax/ast/node/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/object/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/object/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler.rs Outdated Show resolved Hide resolved
boa_engine/src/builtins/generator/mod.rs Outdated Show resolved Hide resolved
@raskad raskad force-pushed the generator-execution branch from 369d23e to 486ca8e Compare February 23, 2022 23:55
@github-actions
Copy link

Benchmark for 16a33ca

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 435.2±0.62ns 468.7±1.20ns +7.70%
Arithmetic operations (Execution) 1738.8±6.86ns 1851.0±3.86ns +6.45%
Arithmetic operations (Parser) 5.6±0.01µs 5.8±0.01µs +3.57%
Array access (Compiler) 1230.3±31.17ns 1315.6±2.88ns +6.93%
Array access (Execution) 10.8±0.04µs 11.1±0.06µs +2.78%
Array access (Parser) 12.7±0.11µs 12.5±0.07µs -1.57%
Array creation (Compiler) 1915.6±38.13ns 1914.4±3.38ns -0.06%
Array creation (Execution) 3.1±0.00ms 3.1±0.01ms 0.00%
Array creation (Parser) 14.0±0.06µs 14.0±0.06µs 0.00%
Array pop (Compiler) 3.4±0.02µs 3.5±0.01µs +2.94%
Array pop (Execution) 1359.5±19.34µs 1408.7±25.24µs +3.62%
Array pop (Parser) 140.7±0.12µs 146.0±0.13µs +3.77%
Boolean Object Access (Compiler) 1063.3±2.08ns 1114.1±3.51ns +4.78%
Boolean Object Access (Execution) 5.6±0.03µs 5.7±0.02µs +1.79%
Boolean Object Access (Parser) 14.7±0.02µs 14.5±0.03µs -1.36%
Clean js (Compiler) 3.6±0.02µs 3.7±0.01µs +2.78%
Clean js (Execution) 1049.6±6.82µs 1123.7±25.23µs +7.06%
Clean js (Parser) 29.8±0.08µs 30.2±0.12µs +1.34%
Create Realm 252.9±0.36ns 251.5±0.53ns -0.55%
Dynamic Object Property Access (Compiler) 1673.3±11.51ns 1711.1±7.74ns +2.26%
Dynamic Object Property Access (Execution) 6.8±0.04µs 6.9±0.03µs +1.47%
Dynamic Object Property Access (Parser) 11.3±0.04µs 11.2±0.07µs -0.88%
Fibonacci (Compiler) 2.5±0.01µs 2.4±0.01µs -4.00%
Fibonacci (Execution) 1835.7±8.68µs 1842.1±3.47µs +0.35%
Fibonacci (Parser) 16.8±0.04µs 17.1±0.05µs +1.79%
For loop (Compiler) 2.1±0.01µs 2.1±0.00µs 0.00%
For loop (Execution) 39.7±0.12µs 40.3±0.11µs +1.51%
For loop (Parser) 14.4±0.05µs 14.5±0.11µs +0.69%
Mini js (Compiler) 3.5±0.02µs 3.5±0.01µs 0.00%
Mini js (Execution) 972.4±6.81µs 1029.4±6.35µs +5.86%
Mini js (Parser) 26.1±0.08µs 26.4±0.13µs +1.15%
Number Object Access (Compiler) 1002.8±2.23ns 1049.2±5.37ns +4.63%
Number Object Access (Execution) 4.3±0.01µs 4.4±0.01µs +2.33%
Number Object Access (Parser) 11.6±0.01µs 11.5±0.02µs -0.86%
Object Creation (Compiler) 1487.6±39.12ns 1410.5±5.13ns -5.18%
Object Creation (Execution) 6.0±0.01µs 6.3±0.02µs +5.00%
Object Creation (Parser) 9.8±0.03µs 9.8±0.05µs 0.00%
RegExp (Compiler) 1574.0±3.04ns 1674.5±7.10ns +6.39%
RegExp (Execution) 12.3±0.06µs 12.7±0.03µs +3.25%
RegExp (Parser) 10.7±0.11µs 10.6±0.07µs -0.93%
RegExp Creation (Compiler) 1360.3±7.08ns 1469.0±4.15ns +7.99%
RegExp Creation (Execution) 9.3±0.04µs 9.2±0.03µs -1.08%
RegExp Creation (Parser) 8.8±0.10µs 8.8±0.06µs 0.00%
RegExp Literal (Compiler) 1593.7±4.62ns 1658.6±8.15ns +4.07%
RegExp Literal (Execution) 12.3±0.06µs 12.7±0.03µs +3.25%
RegExp Literal (Parser) 8.6±0.11µs 8.7±0.08µs +1.16%
RegExp Literal Creation (Compiler) 1356.9±6.79ns 1444.2±4.66ns +6.43%
RegExp Literal Creation (Execution) 9.2±0.04µs 9.2±0.03µs 0.00%
RegExp Literal Creation (Parser) 6.9±0.08µs 6.8±0.07µs -1.45%
Static Object Property Access (Compiler) 1440.8±56.71ns 1466.6±5.01ns +1.79%
Static Object Property Access (Execution) 6.3±0.02µs 6.6±0.03µs +4.76%
Static Object Property Access (Parser) 10.5±0.03µs 10.5±0.08µs 0.00%
String Object Access (Compiler) 1447.4±7.72ns 1473.5±7.97ns +1.80%
String Object Access (Execution) 7.8±0.05µs 7.5±0.03µs -3.85%
String Object Access (Parser) 14.4±0.03µs 14.2±0.04µs -1.39%
String comparison (Compiler) 2.1±0.01µs 2.2±0.01µs +4.76%
String comparison (Execution) 6.0±0.01µs 6.0±0.02µs 0.00%
String comparison (Parser) 11.4±0.06µs 11.5±0.05µs +0.88%
String concatenation (Compiler) 1616.9±40.77ns 1667.5±9.97ns +3.13%
String concatenation (Execution) 5.5±0.04µs 5.3±0.01µs -3.64%
String concatenation (Parser) 7.8±0.07µs 7.9±0.09µs +1.28%
String copy (Compiler) 1232.6±4.90ns 1322.0±1.91ns +7.25%
String copy (Execution) 4.8±0.01µs 4.9±0.02µs +2.08%
String copy (Parser) 6.0±0.07µs 6.0±0.07µs 0.00%
Symbols (Compiler) 861.5±4.13ns 936.7±1.74ns +8.73%
Symbols (Execution) 4.5±0.01µs 4.5±0.02µs 0.00%
Symbols (Parser) 4.5±0.01µs 4.5±0.03µs 0.00%

@raskad raskad requested a review from Razican February 24, 2022 22:15
Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

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

Looks very good now! I added a couple of suggestions. Feel free to implement them or merge them, they are not very critical :)

Comment on lines 159 to 174
let mut flags = FormalParameterListFlags::empty();
if is_simple {
flags |= FormalParameterListFlags::IS_SIMPLE;
}
if has_duplicates {
flags |= FormalParameterListFlags::HAS_DUPLICATES;
}
if has_rest_parameter {
flags |= FormalParameterListFlags::HAS_REST_PARAMETER;
}
if has_expressions {
flags |= FormalParameterListFlags::HAS_EXPRESSIONS;
}
if has_arguments {
flags |= FormalParameterListFlags::HAS_ARGUMENTS;
}
Copy link
Member

Choose a reason for hiding this comment

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

I think this would be more efficient if it's set when the booleans are defined. So, instead of using those booleans, add the flags when they are defined. What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

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

So obvious I didn't even notice it :D

#[unsafe_ignore_trace]
pub(crate) state: GeneratorState,

// The `[[GeneratorContext]]` internal slot.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// The `[[GeneratorContext]]` internal slot.
/// The `[[GeneratorContext]]` internal slot.

@github-actions
Copy link

Benchmark for 40f0953

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 533.2±22.99ns 515.1±25.16ns -3.39%
Arithmetic operations (Execution) 2.2±0.03µs 2.2±0.10µs 0.00%
Arithmetic operations (Parser) 4.9±0.29µs 5.3±0.43µs +8.16%
Array access (Compiler) 1197.4±62.42ns 1260.0±66.27ns +5.23%
Array access (Execution) 12.0±0.82µs 11.5±0.18µs -4.17%
Array access (Parser) 11.2±0.67µs 12.1±0.56µs +8.04%
Array creation (Compiler) 1681.3±79.77ns 1824.4±117.34ns +8.51%
Array creation (Execution) 3.6±0.24ms 3.2±0.13ms -11.11%
Array creation (Parser) 13.8±0.47µs 13.6±0.73µs -1.45%
Array pop (Compiler) 4.4±0.17µs 4.1±0.21µs -6.82%
Array pop (Execution) 1596.3±30.17µs 1457.0±64.67µs -8.73%
Array pop (Parser) 144.8±4.95µs 139.0±8.82µs -4.01%
Boolean Object Access (Compiler) 1122.3±16.19ns 1176.0±83.10ns +4.78%
Boolean Object Access (Execution) 6.5±0.13µs 5.9±0.33µs -9.23%
Boolean Object Access (Parser) 15.1±0.62µs 13.0±0.90µs -13.91%
Clean js (Compiler) 3.6±0.11µs 3.3±0.22µs -8.33%
Clean js (Execution) 1191.5±38.56µs 1125.1±80.75µs -5.57%
Clean js (Parser) 32.4±3.17µs 30.1±1.32µs -7.10%
Create Realm 293.7±23.77ns 277.9±17.26ns -5.38%
Dynamic Object Property Access (Compiler) 1641.5±136.50ns 1698.3±87.05ns +3.46%
Dynamic Object Property Access (Execution) 7.8±0.21µs 7.8±0.28µs 0.00%
Dynamic Object Property Access (Parser) 9.1±0.52µs 10.6±0.41µs +16.48%
Fibonacci (Compiler) 2.1±0.12µs 2.5±0.11µs +19.05%
Fibonacci (Execution) 1855.9±55.01µs 1735.2±65.49µs -6.50%
Fibonacci (Parser) 17.5±1.34µs 17.9±1.10µs +2.29%
For loop (Compiler) 1823.2±82.43ns 2.0±0.11µs +9.70%
For loop (Execution) 49.0±0.82µs 50.0±4.50µs +2.04%
For loop (Parser) 12.7±1.01µs 15.2±1.01µs +19.69%
Mini js (Compiler) 3.6±0.17µs 3.7±0.13µs +2.78%
Mini js (Execution) 1103.3±36.82µs 1010.6±55.89µs -8.40%
Mini js (Parser) 26.8±0.47µs 26.2±2.12µs -2.24%
Number Object Access (Compiler) 1010.2±36.87ns 1054.9±58.83ns +4.42%
Number Object Access (Execution) 5.0±0.13µs 4.5±0.19µs -10.00%
Number Object Access (Parser) 11.6±1.10µs 11.6±0.30µs 0.00%
Object Creation (Compiler) 1495.5±68.69ns 1614.9±45.33ns +7.98%
Object Creation (Execution) 6.7±0.26µs 6.9±0.66µs +2.99%
Object Creation (Parser) 9.5±0.33µs 8.8±0.73µs -7.37%
RegExp (Compiler) 1803.3±64.96ns 1676.0±133.60ns -7.06%
RegExp (Execution) 13.9±0.15µs 14.2±0.31µs +2.16%
RegExp (Parser) 9.7±0.43µs 8.8±0.49µs -9.28%
RegExp Creation (Compiler) 1422.2±136.82ns 1586.4±90.39ns +11.55%
RegExp Creation (Execution) 10.0±0.24µs 9.0±0.52µs -10.00%
RegExp Creation (Parser) 8.4±0.45µs 8.7±0.29µs +3.57%
RegExp Literal (Compiler) 1812.8±76.34ns 1818.1±79.65ns +0.29%
RegExp Literal (Execution) 13.7±0.40µs 14.1±0.32µs +2.92%
RegExp Literal (Parser) 8.2±0.42µs 7.2±0.43µs -12.20%
RegExp Literal Creation (Compiler) 1343.9±76.35ns 1411.7±80.62ns +5.05%
RegExp Literal Creation (Execution) 10.1±0.41µs 9.4±0.83µs -6.93%
RegExp Literal Creation (Parser) 6.5±0.31µs 6.5±0.28µs 0.00%
Static Object Property Access (Compiler) 1526.0±66.63ns 1653.4±21.73ns +8.35%
Static Object Property Access (Execution) 7.7±0.45µs 7.8±0.50µs +1.30%
Static Object Property Access (Parser) 9.7±1.22µs 9.8±1.60µs +1.03%
String Object Access (Compiler) 1528.8±47.02ns 1549.6±64.97ns +1.36%
String Object Access (Execution) 8.8±0.16µs 8.6±0.46µs -2.27%
String Object Access (Parser) 12.9±0.81µs 12.5±0.67µs -3.10%
String comparison (Compiler) 2.4±0.05µs 2.1±0.12µs -12.50%
String comparison (Execution) 6.8±0.07µs 6.7±0.30µs -1.47%
String comparison (Parser) 10.7±0.64µs 9.7±0.42µs -9.35%
String concatenation (Compiler) 1833.5±48.45ns 1850.1±86.36ns +0.91%
String concatenation (Execution) 6.1±0.07µs 6.3±0.38µs +3.28%
String concatenation (Parser) 6.9±0.41µs 6.5±0.33µs -5.80%
String copy (Compiler) 1383.3±39.28ns 1295.1±67.95ns -6.38%
String copy (Execution) 5.5±0.07µs 4.9±0.45µs -10.91%
String copy (Parser) 5.7±0.17µs 5.7±0.22µs 0.00%
Symbols (Compiler) 962.0±58.65ns 876.4±38.06ns -8.90%
Symbols (Execution) 5.2±0.09µs 5.2±0.21µs 0.00%
Symbols (Parser) 3.7±0.21µs 3.9±0.26µs +5.41%

@raskad
Copy link
Member Author

raskad commented Feb 27, 2022

bors r+

bors bot pushed a commit that referenced this pull request Feb 27, 2022
This Pull Request fixes/closes #1559.

It changes the following:

- Implement GeneratorFunction Objects
- Implement Generator Objects
- Implement generator execution in vm
- Create `FormalParameterList` to remove duplicate checks on function parameters 
- Refactor  `MethodDefinition` on object literals
@bors
Copy link

bors bot commented Feb 27, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Implement generator execution [Merged by Bors] - Implement generator execution Feb 27, 2022
@bors bors bot closed this Feb 27, 2022
@bors bors bot deleted the generator-execution branch February 27, 2022 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics enhancement New feature or request execution Issues or PRs related to code execution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Generator Execution
4 participants