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

Start removing non-VM path #1747

Merged
merged 19 commits into from
Dec 25, 2021
Merged

Start removing non-VM path #1747

merged 19 commits into from
Dec 25, 2021

Conversation

jasonwilliams
Copy link
Member

This starts to remove the non-vm path

@codecov
Copy link

codecov bot commented Dec 15, 2021

Codecov Report

Merging #1747 (7eeb3f6) into main (039c46b) will increase coverage by 3.26%.
The diff coverage is 80.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1747      +/-   ##
==========================================
+ Coverage   53.03%   56.30%   +3.26%     
==========================================
  Files         200      200              
  Lines       17076    17049      -27     
==========================================
+ Hits         9056     9599     +543     
+ Misses       8020     7450     -570     
Impacted Files Coverage Δ
boa/src/builtins/console/mod.rs 25.94% <ø> (-0.68%) ⬇️
boa/src/builtins/function/mod.rs 33.57% <ø> (-4.00%) ⬇️
boa/src/builtins/iterable/mod.rs 65.38% <ø> (+5.38%) ⬆️
boa/src/builtins/json/mod.rs 83.16% <ø> (ø)
boa/src/environment/lexical_environment.rs 83.33% <ø> (+1.51%) ⬆️
boa/src/syntax/ast/node/array/mod.rs 80.00% <ø> (-11.67%) ⬇️
boa/src/syntax/ast/node/await_expr/mod.rs 100.00% <ø> (+22.22%) ⬆️
boa/src/syntax/ast/node/block/mod.rs 87.50% <ø> (-5.10%) ⬇️
boa/src/syntax/ast/node/break_node/mod.rs 100.00% <ø> (ø)
boa/src/syntax/ast/node/call/mod.rs 69.23% <ø> (-19.66%) ⬇️
... and 67 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 039c46b...7eeb3f6. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Dec 15, 2021

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 87,200 87,200 0
Passed 40,113 40,782 +669
Ignored 19,493 19,493 0
Failed 27,594 26,925 -669
Panics 0 0 0
Conformance 46.00% 46.77% +0.77%
Fixed tests (783):
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-block.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/block-decl-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/switch-case-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-for-of.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-try.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/if-decl-no-else-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-for-in.js (previously Failed)
test/annexB/language/function-code/switch-case-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-block.js (previously Failed)
test/annexB/language/function-code/switch-dflt-func-skip-early-err-for-of.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/block-decl-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-try.js (previously Failed)
test/annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-for-of.js (previously Failed)
test/harness/compare-array-samevalue.js [strict mode] (previously Failed)
test/harness/compare-array-samevalue.js (previously Failed)
test/harness/deepEqual-array.js [strict mode] (previously Failed)
test/harness/deepEqual-array.js (previously Failed)
test/harness/verifyProperty-value.js [strict mode] (previously Failed)
test/harness/verifyProperty-value.js (previously Failed)
test/harness/compare-array-same-elements-different-order.js [strict mode] (previously Failed)
test/harness/compare-array-same-elements-different-order.js (previously Failed)
test/harness/verifyProperty-string-prop.js [strict mode] (previously Failed)
test/harness/verifyProperty-string-prop.js (previously Failed)
test/harness/compare-array-different-elements.js [strict mode] (previously Failed)
test/harness/compare-array-different-elements.js (previously Failed)
test/harness/deepEqual-object.js [strict mode] (previously Failed)
test/harness/deepEqual-object.js (previously Failed)
test/harness/deepEqual-deep.js [strict mode] (previously Failed)
test/harness/deepEqual-deep.js (previously Failed)
test/harness/deepEqual-circular.js [strict mode] (previously Failed)
test/harness/deepEqual-circular.js (previously Failed)
test/language/global-code/S10.4.1_A1_T2.js (previously Failed)
test/language/types/reference/8.7.2-3-a-1gs.js [strict mode] (previously Failed)
test/language/types/reference/S8.7_A5_T1.js (previously Failed)
test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js [strict mode] (previously Failed)
test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js (previously Failed)
test/language/destructuring/binding/initialization-requires-object-coercible-null.js [strict mode] (previously Failed)
test/language/destructuring/binding/initialization-requires-object-coercible-null.js (previously Failed)
test/language/expressions/postfix-increment/S11.3.1_A6_T2.js [strict mode] (previously Failed)
test/language/expressions/postfix-increment/S11.3.1_A6_T2.js (previously Failed)
test/language/expressions/postfix-increment/S11.3.1_A6_T1.js [strict mode] (previously Failed)
test/language/expressions/postfix-increment/S11.3.1_A6_T1.js (previously Failed)
test/language/expressions/typeof/unresolvable-reference.js [strict mode] (previously Failed)
test/language/expressions/typeof/unresolvable-reference.js (previously Failed)
test/language/expressions/assignment/11.13.1-4-1.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-obj-value-null.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-obj-value-null.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-obj-val-undef.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-obj-val-undef.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-list-err.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-obj-value-undef.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-obj-value-undef.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-get-err-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-get-err-array-prototype.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-close.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-val-null.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-ary-val-null.js (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-ary-value-null.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-ary-value-null.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-init-undefined.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-init-undefined.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-obj-val-null.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-elem-obj-val-null.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-init-iter-get-err.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-init-null.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-init-null.js (previously Failed)
test/language/expressions/function/dstr/obj-init-undefined.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-init-undefined.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/function/dstr/obj-init-null.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-init-null.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-obj-value-undef.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-obj-value-undef.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-ary-value-null.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-ary-value-null.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-val-null.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-ary-val-null.js (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-get-err.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-obj-value-null.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-obj-value-null.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-obj-val-null.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-obj-val-null.js (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-get-err-array-prototype.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-get-err-array-prototype.js (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-list-err.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-init-throws.js (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-close.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-init-iter-close.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-id-get-value-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-obj-val-undef.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-elem-obj-val-undef.js (previously Failed)
test/language/expressions/arrow-function/strict.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/non-strict.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-23-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T1.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T2.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T3.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-53-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-51-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-49-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-32-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T1.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T2.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-43-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-35-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-52-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-25-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-39-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-29-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-55-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-50-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T1.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T3.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-54-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-33-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-42-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T3.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-37-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-48-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T1.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T2.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T3.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-41-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-28-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T1.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-24-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-34-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T2.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T3.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-38-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T2.js (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T2.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T2.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-36-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-47-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-44-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-46-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-30-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T3.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T3.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-45-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-26-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-27-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/11.13.2-40-s.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T1.js [strict mode] (previously Failed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T1.js (previously Failed)
test/language/expressions/compound-assignment/11.13.2-31-s.js [strict mode] (previously Failed)
test/language/expressions/unary-minus/11.4.7-4-1.js [strict mode] (previously Failed)
test/language/expressions/unary-minus/11.4.7-4-1.js (previously Failed)
test/language/expressions/unary-minus/bigint-non-primitive.js [strict mode] (previously Failed)
test/language/expressions/unary-minus/bigint-non-primitive.js (previously Failed)
test/language/expressions/postfix-decrement/bigint.js [strict mode] (previously Failed)
test/language/expressions/postfix-decrement/bigint.js (previously Failed)
test/language/expressions/postfix-decrement/S11.3.2_A6_T2.js [strict mode] (previously Failed)
test/language/expressions/postfix-decrement/S11.3.2_A6_T2.js (previously Failed)
test/language/expressions/postfix-decrement/S11.3.2_A6_T1.js [strict mode] (previously Failed)
test/language/expressions/postfix-decrement/S11.3.2_A6_T1.js (previously Failed)
test/language/expressions/prefix-decrement/bigint.js [strict mode] (previously Failed)
test/language/expressions/prefix-decrement/bigint.js (previously Failed)
test/language/expressions/prefix-decrement/S11.4.5_A6_T2.js [strict mode] (previously Failed)
test/language/expressions/prefix-decrement/S11.4.5_A6_T2.js (previously Failed)
test/language/expressions/prefix-decrement/S11.4.5_A6_T1.js [strict mode] (previously Failed)
test/language/expressions/prefix-decrement/S11.4.5_A6_T1.js (previously Failed)
test/language/expressions/logical-assignment/lgcl-or-assignment-operator-non-extensible.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-nullish-assignment-operator-non-extensible.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-nullish-assignment-operator-non-writeable-put.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-and-assignment-operator-non-writeable-put.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-nullish-assignment-operator-no-set-put.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-and-assignment-operator-no-set-put.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-or-assignment-operator-non-writeable-put.js [strict mode] (previously Failed)
test/language/expressions/logical-assignment/lgcl-or-assignment-operator-no-set-put.js [strict mode] (previously Failed)
test/language/expressions/prefix-increment/bigint.js [strict mode] (previously Failed)
test/language/expressions/prefix-increment/bigint.js (previously Failed)
test/language/expressions/prefix-increment/S11.4.4_A6_T2.js [strict mode] (previously Failed)
test/language/expressions/prefix-increment/S11.4.4_A6_T2.js (previously Failed)
test/language/expressions/prefix-increment/S11.4.4_A6_T1.js [strict mode] (previously Failed)
test/language/expressions/prefix-increment/S11.4.4_A6_T1.js (previously Failed)
test/language/expressions/grouping/S11.1.6_A2_T1.js [strict mode] (previously Failed)
test/language/expressions/grouping/S11.1.6_A2_T1.js (previously Failed)
test/language/expressions/grouping/S11.1.6_A3_T7.js [strict mode] (previously Failed)
test/language/expressions/grouping/S11.1.6_A3_T7.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-basic.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-by-arguments.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-define-property-consecutive.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-arguments.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-descriptors-basic.js (previously Failed)
test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-arguments.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-descriptors-with-param-assign.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-descriptors-set-value-with-define-property.js (previously Failed)
test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-set-by-param.js (previously Failed)
test/language/arguments-object/mapped/nonwritable-nonconfigurable-descriptors-basic.js (previously Failed)
test/language/arguments-object/mapped/nonconfigurable-nonwritable-descriptors-set-by-param.js (previously Failed)
test/language/statements/for-of/head-let-destructuring.js [strict mode] (previously Failed)
test/language/statements/for-of/head-let-destructuring.js (previously Failed)
test/language/statements/for-of/iterator-close-via-break.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-close-via-break.js (previously Failed)
test/language/statements/for-of/iterator-close-throw-get-method-non-callable.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-close-throw-get-method-non-callable.js (previously Failed)
test/language/statements/for-of/iterator-close-non-throw-get-method-abrupt.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-close-non-throw-get-method-abrupt.js (previously Failed)
test/language/statements/for-of/iterator-close-throw-get-method-abrupt.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-close-throw-get-method-abrupt.js (previously Failed)
test/language/statements/for-of/arguments-mapped-mutation.js (previously Failed)
test/language/statements/for-of/iterator-close-non-throw-get-method-non-callable.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-close-non-throw-get-method-non-callable.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-init-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-init-iter-close.js (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-init-iter-close.js (previously Failed)
test/language/statements/for-in/head-let-destructuring.js [strict mode] (previously Failed)
test/language/statements/for-in/head-let-destructuring.js (previously Failed)
test/language/statements/try/S12.14_A13_T3.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A13_T3.js (previously Failed)
test/language/statements/try/S12.14_A10_T4.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A10_T4.js (previously Failed)
test/language/statements/try/S12.14_A11_T2.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A11_T2.js (previously Failed)
test/language/statements/try/completion-values-fn-finally-abrupt.js [strict mode] (previously Failed)
test/language/statements/try/completion-values-fn-finally-abrupt.js (previously Failed)
test/language/statements/try/S12.14_A12_T4.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A12_T4.js (previously Failed)
test/language/statements/try/S12.14_A11_T4.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A11_T4.js (previously Failed)
test/language/statements/try/S12.14_A9_T4.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A9_T4.js (previously Failed)
test/language/statements/try/S12.14_A9_T2.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A9_T2.js (previously Failed)
test/language/statements/try/S12.14_A12_T2.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A12_T2.js (previously Failed)
test/language/statements/try/S12.14_A10_T2.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A10_T2.js (previously Failed)
test/language/statements/try/S12.14_A13_T2.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A13_T2.js (previously Failed)
test/language/statements/try/S12.14_A15.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A15.js (previously Failed)
test/language/statements/try/S12.14_A5.js [strict mode] (previously Failed)
test/language/statements/try/S12.14_A5.js (previously Failed)
test/language/statements/try/dstr/obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/try/dstr/obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/try/dstr/obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/try/dstr/obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/try/dstr/ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-init-iter-close.js (previously Failed)
test/language/statements/function/S13.2.1_A7_T3.js (previously Failed)
test/language/statements/function/S14_A3.js [strict mode] (previously Failed)
test/language/statements/function/S14_A3.js (previously Failed)
test/language/statements/function/S13_A2_T3.js [strict mode] (previously Failed)
test/language/statements/function/S13_A2_T3.js (previously Failed)
test/language/statements/function/S13.2.2_A16_T2.js [strict mode] (previously Failed)
test/language/statements/function/S13.2.2_A16_T2.js (previously Failed)
test/language/statements/function/S13.2.2_A16_T3.js [strict mode] (previously Failed)
test/language/statements/function/S13.2.2_A16_T3.js (previously Failed)
test/language/statements/function/S13_A2_T1.js [strict mode] (previously Failed)
test/language/statements/function/S13_A2_T1.js (previously Failed)
test/language/statements/function/S13_A1.js [strict mode] (previously Failed)
test/language/statements/function/S13_A1.js (previously Failed)
test/language/statements/function/S13_A2_T2.js [strict mode] (previously Failed)
test/language/statements/function/S13_A2_T2.js (previously Failed)
test/language/statements/function/S13.2.2_A16_T1.js [strict mode] (previously Failed)
test/language/statements/function/S13.2.2_A16_T1.js (previously Failed)
test/language/statements/function/S13_A18.js [strict mode] (previously Failed)
test/language/statements/function/S13_A18.js (previously Failed)
test/language/statements/function/dstr/obj-init-undefined.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-init-undefined.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-init-unresolvable.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/function/dstr/obj-init-null.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-init-null.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-obj-value-undef.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-obj-value-undef.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-ary-value-null.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-ary-value-null.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-val-null.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-ary-val-null.js (previously Failed)
test/language/statements/function/dstr/ary-init-iter-get-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-init-iter-get-err.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-get-value-err.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-obj-value-null.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-obj-value-null.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-val-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-val-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-obj-val-null.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-obj-val-null.js (previously Failed)
test/language/statements/function/dstr/ary-init-iter-get-err-array-prototype.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-init-iter-get-err-array-prototype.js (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-init-unresolvable.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-init-throws.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-list-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-list-err.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-init-unresolvable.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-init-unresolvable.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-init-throws.js (previously Failed)
test/language/statements/function/dstr/ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-init-iter-close.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-step-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-id-iter-step-err.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-init-throws.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-id-init-throws.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-get-value-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-id-get-value-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-iter-val-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-id-iter-val-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-obj-val-undef.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-elem-obj-val-undef.js (previously Failed)
test/language/statements/do-while/S12.6.1_A10.js [strict mode] (previously Failed)
test/language/statements/do-while/S12.6.1_A10.js (previously Failed)
test/language/statements/let/function-local-closure-set-before-initialization.js [strict mode] (previously Failed)
test/language/statements/let/block-local-closure-set-before-initialization.js [strict mode] (previously Failed)
test/language/statements/let/global-closure-set-before-initialization.js [strict mode] (previously Failed)
test/language/statements/while/S12.6.2_A2.js [strict mode] (previously Failed)
test/language/statements/while/S12.6.2_A2.js (previously Failed)
test/language/statements/while/S12.6.2_A10.js [strict mode] (previously Failed)
test/language/statements/while/S12.6.2_A10.js (previously Failed)
test/language/statements/for/dstr/let-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-init-iter-close.js (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/for/dstr/var-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-init-iter-close.js (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-rest-val-obj.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-rest-val-obj.js (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-rest-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-rest-skip-non-enumerable.js (previously Failed)
test/language/statements/for/dstr/const-ary-init-iter-close.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-init-iter-close.js (previously Failed)
test/language/directive-prologue/get-accsr-not-first-runtime.js (previously Failed)
test/language/directive-prologue/func-expr-runtime.js (previously Failed)
test/language/directive-prologue/func-expr-no-semi-runtime.js (previously Failed)
test/language/directive-prologue/set-accsr-not-first-runtime.js (previously Failed)
test/language/directive-prologue/set-accsr-inside-func-expr-runtime.js (previously Failed)
test/language/directive-prologue/func-decl-no-semi-runtime.js (previously Failed)
test/language/directive-prologue/func-decl-runtime.js (previously Failed)
test/language/directive-prologue/get-accsr-runtime.js (previously Failed)
test/language/directive-prologue/set-accsr-runtime.js (previously Failed)
test/language/directive-prologue/func-expr-inside-func-decl-runtime.js (previously Failed)
test/language/directive-prologue/get-accsr-inside-func-expr-runtime.js (previously Failed)
test/built-ins/Date/prototype/toJSON/called-as-function.js [strict mode] (previously Failed)
test/built-ins/Date/prototype/toJSON/called-as-function.js (previously Failed)
test/built-ins/TypedArray/prototype/sort/arraylength-internal.js [strict mode] (previously Failed)
test/built-ins/TypedArray/prototype/sort/arraylength-internal.js (previously Failed)
test/built-ins/TypedArray/prototype/sort/BigInt/arraylength-internal.js [strict mode] (previously Failed)
test/built-ins/TypedArray/prototype/sort/BigInt/arraylength-internal.js (previously Failed)
test/built-ins/Proxy/deleteProperty/trap-is-null-target-is-proxy.js [strict mode] (previously Failed)
test/built-ins/Proxy/deleteProperty/trap-is-null-target-is-proxy.js (previously Failed)
test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/non-extensible-redefine-key.js [strict mode] (previously Failed)
test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/non-extensible-redefine-key.js (previously Failed)
test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/non-extensible-redefine-key.js [strict mode] (previously Failed)
test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/non-extensible-redefine-key.js (previously Failed)
test/built-ins/Reflect/set/creates-a-data-descriptor.js [strict mode] (previously Failed)
test/built-ins/Reflect/set/creates-a-data-descriptor.js (previously Failed)
test/built-ins/ArrayIteratorPrototype/next/detach-typedarray-in-progress.js [strict mode] (previously Failed)
test/built-ins/ArrayIteratorPrototype/next/detach-typedarray-in-progress.js (previously Failed)
test/built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-2.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-2.js (previously Failed)
test/built-ins/Array/prototype/map/15.4.4.19-8-c-iii-3.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/map/15.4.4.19-8-c-iii-3.js (previously Failed)
test/built-ins/Object/S15.2.1.1_A2_T11.js [strict mode] (previously Failed)
test/built-ins/Object/S15.2.1.1_A2_T11.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-12.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-98.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-98.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-112.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-112.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-315.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-315.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-11.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-7.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-299-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-21.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-7.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-314.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-314.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-315-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-323.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-323.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-3.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-12.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-314-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-10.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-319-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-107.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-107.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-2.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-213.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-213.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-285.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-285.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-8.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-278.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-278.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-115.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-115.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-19.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-9.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-57.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-57.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-6.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-2.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-114.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-114.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-24.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-4.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-279.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-279.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-8.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-290-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-2.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-300-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-211.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-211.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-109.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-109.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-321.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-321.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-295-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-10.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-20.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-299.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-299.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-540-3.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-531-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-273.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-273.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-302.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-302.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-321-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-312.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-312.js (previously Failed)
test/built-ins/Object/defineProperty/S15.2.3.6_A1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/S15.2.3.6_A1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-76.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-76.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-300.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-300.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-209.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-209.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-55.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-55.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-323-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-22.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-302-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-56.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-56.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-23.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-307.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-307.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-230.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-230.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-313-1.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-82-11.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-313.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-313.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-290.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-290.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-231.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-231.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-195.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-195.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-295.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-295.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-311.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-311.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-547-3.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-319.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-319.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-59.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-59.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-75.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-75.js (previously Failed)
test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js [strict mode] (previously Failed)
test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js (previously Failed)
test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js [strict mode] (previously Failed)
test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js (previously Failed)
test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js [strict mode] (previously Failed)
test/built-ins/Object/seal/object-seal-all-own-properties-of-o-are-already-non-configurable.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-36.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-296.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-282.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-289.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-310.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-304.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-312.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-103.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-107.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-35.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-288.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-279.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-207.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-108.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-268.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-104.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-110.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-291.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-274.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-262.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-284.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-267.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-90.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-37.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-66.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-300.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-91.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-301.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-106.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-205.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-101.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-308.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-209.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-40.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-303.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-109.js (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-315.js [strict mode] (previously Failed)
test/built-ins/Object/create/15.2.3.5-4-315.js (previously Failed)
test/built-ins/String/prototype/search/cstm-search-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/search/cstm-search-invocation.js (previously Failed)
test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js (previously Failed)
test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js (previously Failed)
test/built-ins/String/prototype/replace/cstm-replace-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/replace/cstm-replace-invocation.js (previously Failed)
test/built-ins/String/prototype/split/cstm-split-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/split/cstm-split-invocation.js (previously Failed)
test/built-ins/String/prototype/match/cstm-matcher-invocation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/match/cstm-matcher-invocation.js (previously Failed)
Broken tests (114):
test/language/expressions/postfix-increment/S11.3.1_A2.2_T1.js [strict mode] (previously Passed)
test/language/expressions/postfix-increment/S11.3.1_A2.2_T1.js (previously Passed)
test/language/expressions/assignment/S11.13.1_A2.1_T1.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-bool.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-bool.js (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-symbol.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-symbol.js (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-obj.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-obj.js (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-string.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-string.js (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-num.js [strict mode] (previously Passed)
test/language/expressions/assignment/dstr/obj-empty-num.js (previously Passed)
test/language/expressions/object/object-spread-proxy-get-not-called-on-dontenum-keys.js [strict mode] (previously Passed)
test/language/expressions/object/object-spread-proxy-get-not-called-on-dontenum-keys.js (previously Passed)
test/language/expressions/object/dstr/object-rest-proxy-get-not-called-on-dontenum-keys.js [strict mode] (previously Passed)
test/language/expressions/object/dstr/object-rest-proxy-get-not-called-on-dontenum-keys.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.7_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.10_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.9_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.5_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.8_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.2_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.4_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.3_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.1_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.6_T4.js (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T4.js [strict mode] (previously Passed)
test/language/expressions/compound-assignment/S11.13.2_A7.11_T4.js (previously Passed)
test/language/expressions/tagged-template/cache-realm.js [strict mode] (previously Passed)
test/language/expressions/tagged-template/cache-realm.js (previously Passed)
test/language/expressions/postfix-decrement/S11.3.2_A2.2_T1.js [strict mode] (previously Passed)
test/language/expressions/postfix-decrement/S11.3.2_A2.2_T1.js (previously Passed)
test/language/expressions/exponentiation/exp-operator-evaluation-order.js [strict mode] (previously Passed)
test/language/expressions/exponentiation/exp-operator-evaluation-order.js (previously Passed)
test/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-2.js [strict mode] (previously Passed)
test/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-2.js (previously Passed)
test/language/block-scope/leave/try-block-let-declaration-only-shadows-outer-parameter-value-2.js [strict mode] (previously Passed)
test/language/block-scope/leave/try-block-let-declaration-only-shadows-outer-parameter-value-2.js (previously Passed)
test/language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-2.js [strict mode] (previously Passed)
test/language/block-scope/leave/finally-block-let-declaration-only-shadows-outer-parameter-value-2.js (previously Passed)
test/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-1.js [strict mode] (previously Passed)
test/language/block-scope/leave/for-loop-block-let-declaration-only-shadows-outer-parameter-value-1.js (previously Passed)
test/language/block-scope/leave/verify-context-in-for-loop-block.js [strict mode] (previously Passed)
test/language/block-scope/leave/verify-context-in-for-loop-block.js (previously Passed)
test/language/statements/const/dstr/obj-ptrn-rest-getter.js [strict mode] (previously Passed)
test/language/statements/const/dstr/obj-ptrn-rest-getter.js (previously Passed)
test/language/statements/continue/S12.7_A9_T1.js [strict mode] (previously Passed)
test/language/statements/continue/S12.7_A9_T1.js (previously Passed)
test/language/statements/continue/S12.7_A9_T2.js [strict mode] (previously Passed)
test/language/statements/continue/S12.7_A9_T2.js (previously Passed)
test/language/statements/continue/shadowing-loop-variable-in-same-scope-as-continue.js [strict mode] (previously Passed)
test/language/statements/continue/shadowing-loop-variable-in-same-scope-as-continue.js (previously Passed)
test/language/statements/try/scope-catch-block-lex-open.js [strict mode] (previously Passed)
test/language/statements/try/scope-catch-block-lex-open.js (previously Passed)
test/language/statements/function/S13.2.2_A8_T3.js [strict mode] (previously Passed)
test/language/statements/function/S13.2.2_A8_T3.js (previously Passed)
test/language/statements/function/S13_A15_T4.js (previously Passed)
test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js [strict mode] (previously Passed)
test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js (previously Passed)
test/intl402/DateTimeFormat/constructor-options-style-conflict.js [strict mode] (previously Passed)
test/intl402/DateTimeFormat/constructor-options-style-conflict.js (previously Passed)
test/intl402/DisplayNames/options-getoptionsobject.js [strict mode] (previously Passed)
test/intl402/DisplayNames/options-getoptionsobject.js (previously Passed)
test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js [strict mode] (previously Passed)
test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js (previously Passed)
test/intl402/BigInt/prototype/toLocaleString/this-value-invalid.js [strict mode] (previously Passed)
test/intl402/BigInt/prototype/toLocaleString/this-value-invalid.js (previously Passed)
test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js [strict mode] (previously Passed)
test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js (previously Passed)
test/built-ins/Symbol/auto-boxing-strict.js [strict mode] (previously Passed)
test/built-ins/Symbol/prototype/toString/toString-default-attributes-strict.js [strict mode] (previously Passed)
test/built-ins/TypedArray/from/invoked-as-func.js [strict mode] (previously Passed)
test/built-ins/TypedArray/from/invoked-as-func.js (previously Passed)
test/built-ins/Proxy/set/call-parameters.js [strict mode] (previously Passed)
test/built-ins/Proxy/set/call-parameters.js (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype.js [strict mode] (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype.js (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js [strict mode] (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js (previously Passed)
test/built-ins/Proxy/set/trap-is-missing-receiver-multiple-calls-index.js [strict mode] (previously Passed)
test/built-ins/Proxy/set/trap-is-missing-receiver-multiple-calls-index.js (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype-index.js [strict mode] (previously Passed)
test/built-ins/Proxy/set/call-parameters-prototype-index.js (previously Passed)
test/built-ins/TypedArrayConstructors/from/custom-ctor.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/from/custom-ctor.js (previously Passed)
test/built-ins/TypedArrayConstructors/from/invoked-as-func.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/from/invoked-as-func.js (previously Passed)
test/built-ins/TypedArrayConstructors/from/BigInt/custom-ctor.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/from/BigInt/custom-ctor.js (previously Passed)
test/built-ins/TypedArrayConstructors/from/BigInt/invoked-as-func.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/from/BigInt/invoked-as-func.js (previously Passed)
test/built-ins/TypedArrayConstructors/of/custom-ctor.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/of/custom-ctor.js (previously Passed)
test/built-ins/TypedArrayConstructors/of/BigInt/custom-ctor.js [strict mode] (previously Passed)
test/built-ins/TypedArrayConstructors/of/BigInt/custom-ctor.js (previously Passed)
test/built-ins/ArrayBuffer/toindex-length.js [strict mode] (previously Passed)
test/built-ins/ArrayBuffer/toindex-length.js (previously Passed)
test/built-ins/Error/constructor.js [strict mode] (previously Passed)
test/built-ins/Error/constructor.js (previously Passed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js [strict mode] (previously Passed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js (previously Passed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js [strict mode] (previously Passed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js (previously Passed)

@jasonwilliams
Copy link
Member Author

jasonwilliams commented Dec 21, 2021

Sadly we're seeing longer times on the VM run compared to the traditional execution. Looks like a lot of instructions are being churned out.

This was expected, a lot of time is spent going back and forth between allocated objects. We haven't changed this so much here and have plans to improve that in future. I will label each instruction so the profiler shows which instruction is being used the most etc etc

Here's some profiling results from https://github.com/boa-dev/boa/blob/main/boa/benches/bench_scripts/mini_js.js:

VM:
image

Exec:
image

VM branch

+--------------------------------------------------+-----------+-----------------+----------+------------+
| Item                                             | Self time | % of total time | Time     | Item count |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Object::set                                      | 10.63ms   | 18.890          | 20.81ms  | 806        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - GetName                    | 10.48ms   | 18.632          | 12.24ms  | 1057       |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| run                                              | 9.01ms    | 16.019          | 90.07ms  | 53         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Call                       | 3.97ms    | 7.051           | 57.37ms  | 353        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Object::get_own_property                         | 3.96ms    | 7.031           | 3.96ms   | 5358       |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - SetName                    | 1.90ms    | 3.374           | 6.19ms   | 202        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - GetPropertyByName          | 1.76ms    | 3.137           | 2.26ms   | 352        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - GetPropertyByValue         | 1.07ms    | 1.905           | 1.18ms   | 151        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Date                                             | 1.07ms    | 1.897           | 1.07ms   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| create_intrinsics                                | 848.88µs  | 1.509           | 7.72ms   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Array                                            | 754.38µs  | 1.341           | 757.75µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| String                                           | 699.68µs  | 1.244           | 702.78µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Math                                             | 699.67µs  | 1.244           | 703.84µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Object                                           | 612.70µs  | 1.089           | 615.42µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| next()                                           | 356.88µs  | 0.634           | 850.16µs | 96         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| RegExp                                           | 324.85µs  | 0.577           | 326.48µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Identifier                                       | 319.62µs  | 0.568           | 337.11µs | 30         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| console                                          | 315.35µs  | 0.561           | 317.03µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - DefInitArg                 | 272.28µs  | 0.484           | 272.28µs | 51         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Dup                        | 260.63µs  | 0.463           | 260.63µs | 552        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BigInt64Array                                    | 255.38µs  | 0.454           | 255.71µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Number                                           | 224.56µs  | 0.399           | 304.43µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Reflect                                          | 216.43µs  | 0.385           | 218.21µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Map                                              | 208.49µs  | 0.371           | 210.36µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Pop                        | 174.11µs  | 0.309           | 174.11µs | 452        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PushInt8                   | 172.54µs  | 0.307           | 172.54µs | 402        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Set                                              | 170.58µs  | 0.303           | 172.27µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Symbol                                           | 166.77µs  | 0.296           | 168.12µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - LessThan                   | 141.30µs  | 0.251           | 141.30µs | 202        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Main                                             | 128.15µs  | 0.228           | 46.71ms  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - JumpIfFalse                | 120.69µs  | 0.215           | 120.69µs | 202        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Inc                        | 119.34µs  | 0.212           | 119.34µs | 200        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: next                            | 115.81µs  | 0.206           | 122.58µs | 6          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| AssignmentExpression                             | 111.55µs  | 0.198           | 4.03ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - GetFunction                | 108.77µs  | 0.193           | 114.48µs | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| function                                         | 104.29µs  | 0.185           | 104.95µs | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| MemberExpression                                 | 103.06µs  | 0.183           | 2.34ms   | 26         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Realm::create                                    | 86.80µs   | 0.154           | 99.79µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ArrayBuffer                                      | 83.71µs   | 0.149           | 85.28µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| From<JsObject>                                   | 82.84µs   | 0.147           | 82.84µs  | 2555       |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BigInt                                           | 81.32µs   | 0.145           | 82.88µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Jump                       | 78.12µs   | 0.139           | 78.12µs  | 202        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| LeftHandSIdeExpression                           | 73.90µs   | 0.131           | 3.01ms   | 25         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| NumberLiteral                                    | 68.36µs   | 0.122           | 96.06µs  | 7          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| StatementList                                    | 66.99µs   | 0.119           | 3.69ms   | 3          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| MultiplicativeExpression                         | 66.84µs   | 0.119           | 3.34ms   | 24         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - GreaterThan                | 57.49µs   | 0.102           | 57.49µs  | 100        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Return                     | 57.16µs   | 0.102           | 57.16µs  | 52         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| From<String>                                     | 56.92µs   | 0.101           | 56.92µs  | 431        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| PrimaryExpression                                | 55.97µs   | 0.099           | 1.83ms   | 25         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Mul                        | 55.73µs   | 0.099           | 55.73µs  | 100        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Float32Array                                     | 52.78µs   | 0.094           | 53.09µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ExponentiationExpression                         | 47.48µs   | 0.084           | 3.27ms   | 25         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - LogicalAnd                 | 44.99µs   | 0.080           | 44.99µs  | 100        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Boolean                                          | 43.06µs   | 0.077           | 43.38µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Int8Array                                        | 42.49µs   | 0.076           | 42.74µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Error                                            | 42.35µs   | 0.075           | 43.41µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BigUint64Array                                   | 42.25µs   | 0.075           | 42.50µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Uint16Array                                      | 42.10µs   | 0.075           | 42.36µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Uint32Array                                      | 42.09µs   | 0.075           | 42.33µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Float64Array                                     | 41.96µs   | 0.075           | 42.21µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Uint8Array                                       | 41.86µs   | 0.074           | 42.12µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Int32Array                                       | 41.75µs   | 0.074           | 42.01µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Int16Array                                       | 41.60µs   | 0.074           | 41.84µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Uint8ClampedArray                                | 41.21µs   | 0.073           | 41.46µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| UpdateExpression                                 | 38.46µs   | 0.068           | 3.05ms   | 25         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| JSON                                             | 37.88µs   | 0.067           | 39.11µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Arguments                                        | 36.18µs   | 0.064           | 645.54µs | 7          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Relation Expression                              | 36.17µs   | 0.064           | 3.44ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| AdditiveExpression                               | 35.51µs   | 0.063           | 3.37ms   | 24         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - RestParameterPop           | 34.92µs   | 0.062           | 34.92µs  | 52         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ShiftExpression                                  | 33.17µs   | 0.059           | 3.40ms   | 24         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ReferenceError                                   | 32.01µs   | 0.057           | 33.13µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ShortCircuitExpression                           | 30.94µs   | 0.055           | 3.59ms   | 20         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| EqualityExpression                               | 30.39µs   | 0.054           | 3.47ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| TypeError                                        | 30.00µs   | 0.053           | 30.99µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| VariableStatement                                | 29.95µs   | 0.053           | 274.26µs | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BitwiseORExpression                              | 29.81µs   | 0.053           | 3.56ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BitwiseXORExpression                             | 29.79µs   | 0.053           | 3.53ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BitwiseANDExpression                             | 29.68µs   | 0.053           | 3.50ms   | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ConditionalExpression                            | 29.66µs   | 0.053           | 3.62ms   | 20         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Proxy                                            | 28.75µs   | 0.051           | 28.95µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - DefInitVar                 | 28.10µs   | 0.050           | 29.84µs  | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::next_char()                              | 27.21µs   | 0.048           | 27.21µs  | 147        |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ForStatement                                     | 26.90µs   | 0.048           | 1.13ms   | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Operator                                         | 25.50µs   | 0.045           | 27.56µs  | 13         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Statement                                        | 24.84µs   | 0.044           | 4.18ms   | 9          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is_ascii_pred()                     | 24.71µs   | 0.044           | 25.91µs  | 21         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| SyntaxError                                      | 23.80µs   | 0.042           | 24.84µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Intl                                             | 23.78µs   | 0.042           | 24.86µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| RangeError                                       | 23.71µs   | 0.042           | 24.80µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| EvalError                                        | 22.95µs   | 0.041           | 23.88µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| URIError                                         | 22.88µs   | 0.041           | 23.86µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - New                        | 22.48µs   | 0.040           | 23.78µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseInt                        | 19.46µs   | 0.035           | 20.64µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseFloat                      | 18.84µs   | 0.033           | 19.94µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Expression                                       | 18.69µs   | 0.033           | 3.20ms   | 13         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Iterator Prototype                               | 18.54µs   | 0.033           | 18.65µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isNaN                           | 18.22µs   | 0.032           | 19.37µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isFinite                        | 17.89µs   | 0.032           | 18.92µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| CallExpression                                   | 17.04µs   | 0.030           | 666.42µs | 6          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| String Iterator                                  | 16.99µs   | 0.030           | 36.37µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ArrowFunction                                    | 15.84µs   | 0.028           | 78.16µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PushNewArray               | 14.83µs   | 0.026           | 15.19µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PushUndefined              | 13.12µs   | 0.023           | 13.12µs  | 52         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PushZero                   | 12.82µs   | 0.023           | 12.82µs  | 53         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| LexicalEnvironment::new                          | 12.46µs   | 0.022           | 12.52µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| UnaryExpression                                  | 11.27µs   | 0.020           | 3.73ms   | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ArrayIterator                                    | 10.15µs   | 0.018           | 28.83µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::peek_char()                              | 10.08µs   | 0.018           | 10.08µs  | 78         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ForInIterator                                    | 9.91µs    | 0.018           | 48.52µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| StatementListItem                                | 9.58µs    | 0.017           | 3.55ms   | 7          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| MapIterator                                      | 8.58µs    | 0.015           | 26.04µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| SetIterator                                      | 8.56µs    | 0.015           | 26.32µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| RegExp String Iterator                           | 8.49µs    | 0.015           | 25.34µs  | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ExpressionStatement                              | 8.23µs    | 0.015           | 2.73ms   | 5          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PushDeclarativeEnvironment | 8.11µs    | 0.014           | 8.53µs   | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| FunctionExpression                               | 6.79µs    | 0.012           | 1.77ms   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| new_declarative_environment                      | 6.53µs    | 0.012           | 6.53µs   | 56         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| SpreadLiteral                                    | 6.39µs    | 0.011           | 12.24µs  | 5          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is()                                | 5.68µs    | 0.010           | 5.85µs   | 5          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| FunctionStatementList                            | 5.55µs    | 0.010           | 1.82ms   | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - This                       | 5.20µs    | 0.009           | 5.24µs   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::peek()                                   | 4.72µs    | 0.008           | 4.72µs   | 59         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| FormalParameters                                 | 4.38µs    | 0.008           | 5.99µs   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::set_goal()                               | 3.24µs    | 0.006           | 3.24µs   | 99         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Initializer                                      | 3.12µs    | 0.006           | 210.99µs | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| BindingIdentifier                                | 2.30µs    | 0.004           | 2.30µs   | 3          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| ArrayLiteral                                     | 1.95µs    | 0.003           | 3.49µs   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| globalThis                                       | 1.28µs    | 0.002           | 1.31µs   | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PopEnvironment             | 1.15µs    | 0.002           | 1.15µs   | 2          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| cursor::next_byte()                              | 1.02µs    | 0.002           | 1.02µs   | 11         |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - Swap                       | 922.00ns  | 0.002           | 922.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - LogicalNot                 | 521.00ns  | 0.001           | 521.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PopOnReturnAdd             | 421.00ns  | 0.001           | 421.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| NaN                                              | 411.00ns  | 0.001           | 411.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| undefined                                        | 381.00ns  | 0.001           | 381.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| execute_instruction - PopOnReturnSub             | 211.00ns  | 0.000           | 211.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
| Infinity                                         | 170.00ns  | 0.000           | 170.00ns | 1          |
+--------------------------------------------------+-----------+-----------------+----------+------------+
Total cpu time: 56.258793ms
+------+---------------+
| Item | Artifact Size |

branch main

+------------------------------+-----------+-----------------+----------+------------+
| Item                         | Self time | % of total time | Time     | Item count |
+------------------------------+-----------+-----------------+----------+------------+
| Object::set                  | 6.70ms    | 17.859          | 16.04ms  | 613        |
+------------------------------+-----------+-----------------+----------+------------+
| Executable                   | 4.99ms    | 13.292          | 125.92ms | 2741       |
+------------------------------+-----------+-----------------+----------+------------+
| Call                         | 4.77ms    | 12.723          | 53.76ms  | 355        |
+------------------------------+-----------+-----------------+----------+------------+
| Identifier                   | 3.97ms    | 10.590          | 4.54ms   | 1093       |
+------------------------------+-----------+-----------------+----------+------------+
| Value::get_field             | 2.35ms    | 6.262           | 2.89ms   | 508        |
+------------------------------+-----------+-----------------+----------+------------+
| Object::get_own_property     | 2.09ms    | 5.576           | 2.09ms   | 2926       |
+------------------------------+-----------+-----------------+----------+------------+
| Date                         | 1.16ms    | 3.101           | 1.17ms   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| create_intrinsics            | 901.77µs  | 2.404           | 8.62ms   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Array                        | 853.94µs  | 2.276           | 857.24µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Object                       | 848.28µs  | 2.261           | 851.42µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Math                         | 789.82µs  | 2.105           | 794.26µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ForLoop                      | 733.20µs  | 1.954           | 24.03ms  | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| String                       | 644.10µs  | 1.717           | 646.94µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| RegExp                       | 353.79µs  | 0.943           | 355.59µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| console                      | 337.73µs  | 0.900           | 339.51µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| next()                       | 332.21µs  | 0.885           | 823.26µs | 96         |
+------------------------------+-----------+-----------------+----------+------------+
| function                     | 316.10µs  | 0.843           | 317.55µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| BigInt64Array                | 264.19µs  | 0.704           | 264.54µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Number                       | 255.91µs  | 0.682           | 338.59µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Reflect                      | 219.87µs  | 0.586           | 221.68µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Map                          | 218.33µs  | 0.582           | 220.03µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Set                          | 178.50µs  | 0.476           | 180.02µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Symbol                       | 174.23µs  | 0.464           | 175.47µs | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| StatementList                | 160.48µs  | 0.428           | 54.53ms  | 58         |
+------------------------------+-----------+-----------------+----------+------------+
| AssignmentExpression         | 123.18µs  | 0.328           | 3.99ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: next        | 93.96µs   | 0.250           | 100.06µs | 6          |
+------------------------------+-----------+-----------------+----------+------------+
| MemberExpression             | 89.77µs   | 0.239           | 2.24ms   | 26         |
+------------------------------+-----------+-----------------+----------+------------+
| ArrayBuffer                  | 87.55µs   | 0.233           | 89.17µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| BigInt                       | 84.70µs   | 0.226           | 86.28µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| LeftHandSIdeExpression       | 76.26µs   | 0.203           | 2.93ms   | 25         |
+------------------------------+-----------+-----------------+----------+------------+
| NumberLiteral                | 73.97µs   | 0.197           | 103.24µs | 7          |
+------------------------------+-----------+-----------------+----------+------------+
| MultiplicativeExpression     | 66.96µs   | 0.178           | 3.28ms   | 24         |
+------------------------------+-----------+-----------------+----------+------------+
| From<JsObject>               | 65.09µs   | 0.174           | 65.09µs  | 1763       |
+------------------------------+-----------+-----------------+----------+------------+
| Realm::create                | 64.73µs   | 0.173           | 77.16µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ExponentiationExpression     | 57.07µs   | 0.152           | 3.21ms   | 25         |
+------------------------------+-----------+-----------------+----------+------------+
| From<String>                 | 54.77µs   | 0.146           | 54.77µs  | 431        |
+------------------------------+-----------+-----------------+----------+------------+
| Float32Array                 | 54.39µs   | 0.145           | 54.65µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Boolean                      | 45.92µs   | 0.122           | 46.21µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Uint8Array                   | 45.74µs   | 0.122           | 46.04µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Int8Array                    | 44.62µs   | 0.119           | 44.86µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| BigUint64Array               | 44.01µs   | 0.117           | 44.25µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| PrimaryExpression            | 43.69µs   | 0.116           | 1.79ms   | 25         |
+------------------------------+-----------+-----------------+----------+------------+
| Uint16Array                  | 43.32µs   | 0.115           | 43.60µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Float64Array                 | 42.98µs   | 0.115           | 43.23µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Int32Array                   | 42.83µs   | 0.114           | 43.08µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Uint32Array                  | 42.78µs   | 0.114           | 43.00µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Uint8ClampedArray            | 42.62µs   | 0.114           | 42.87µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Int16Array                   | 42.61µs   | 0.114           | 42.84µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Error                        | 42.04µs   | 0.112           | 43.12µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Main                         | 40.90µs   | 0.109           | 27.45ms  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| UpdateExpression             | 40.16µs   | 0.107           | 2.97ms   | 25         |
+------------------------------+-----------+-----------------+----------+------------+
| JSON                         | 39.46µs   | 0.105           | 40.68µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Relation Expression          | 37.83µs   | 0.101           | 3.39ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| AdditiveExpression           | 35.90µs   | 0.096           | 3.32ms   | 24         |
+------------------------------+-----------+-----------------+----------+------------+
| Arguments                    | 35.54µs   | 0.095           | 645.65µs | 7          |
+------------------------------+-----------+-----------------+----------+------------+
| ShiftExpression              | 33.86µs   | 0.090           | 3.35ms   | 24         |
+------------------------------+-----------+-----------------+----------+------------+
| ReferenceError               | 33.83µs   | 0.090           | 34.97µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ShortCircuitExpression       | 31.43µs   | 0.084           | 3.54ms   | 20         |
+------------------------------+-----------+-----------------+----------+------------+
| TypeError                    | 31.30µs   | 0.083           | 32.31µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| EqualityExpression           | 30.61µs   | 0.082           | 3.42ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| BitwiseXORExpression         | 30.32µs   | 0.081           | 3.48ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| Proxy                        | 30.11µs   | 0.080           | 30.31µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| BitwiseORExpression          | 30.05µs   | 0.080           | 3.51ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| BitwiseANDExpression         | 29.85µs   | 0.080           | 3.45ms   | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| ConditionalExpression        | 29.62µs   | 0.079           | 3.57ms   | 20         |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::next_char()          | 28.12µs   | 0.075           | 28.12µs  | 147        |
+------------------------------+-----------+-----------------+----------+------------+
| ForStatement                 | 27.48µs   | 0.073           | 1.16ms   | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| Intl                         | 26.33µs   | 0.070           | 27.50µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Operator                     | 25.72µs   | 0.069           | 27.64µs  | 13         |
+------------------------------+-----------+-----------------+----------+------------+
| New                          | 25.53µs   | 0.068           | 44.11µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is_ascii_pred() | 25.34µs   | 0.068           | 26.56µs  | 21         |
+------------------------------+-----------+-----------------+----------+------------+
| RangeError                   | 24.69µs   | 0.066           | 25.85µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| SyntaxError                  | 24.54µs   | 0.065           | 25.65µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| URIError                     | 24.40µs   | 0.065           | 25.36µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| EvalError                    | 24.17µs   | 0.064           | 25.16µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| VariableStatement            | 23.86µs   | 0.064           | 226.56µs | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| Statement                    | 22.48µs   | 0.060           | 4.15ms   | 9          |
+------------------------------+-----------+-----------------+----------+------------+
| Expression                   | 21.18µs   | 0.056           | 3.21ms   | 13         |
+------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseInt    | 20.51µs   | 0.055           | 21.67µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseFloat  | 19.08µs   | 0.051           | 20.12µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isNaN       | 19.07µs   | 0.051           | 20.20µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Iterator Prototype           | 19.06µs   | 0.051           | 19.16µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ArrayDecl                    | 18.91µs   | 0.050           | 38.80µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isFinite    | 18.62µs   | 0.050           | 19.64µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| CallExpression               | 18.30µs   | 0.049           | 668.79µs | 6          |
+------------------------------+-----------+-----------------+----------+------------+
| String Iterator              | 17.71µs   | 0.047           | 36.77µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Assign                       | 16.93µs   | 0.045           | 17.88µs  | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| ArrowFunction                | 15.05µs   | 0.040           | 77.24µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| UnaryExpression              | 12.74µs   | 0.034           | 3.67ms   | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| LexicalEnvironment::new      | 11.96µs   | 0.032           | 12.01µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| StatementListItem            | 9.89µs    | 0.026           | 3.50ms   | 7          |
+------------------------------+-----------+-----------------+----------+------------+
| ArrayIterator                | 9.84µs    | 0.026           | 28.02µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::peek_char()          | 9.45µs    | 0.025           | 9.45µs   | 78         |
+------------------------------+-----------+-----------------+----------+------------+
| ForInIterator                | 8.98µs    | 0.024           | 26.20µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ExpressionStatement          | 8.49µs    | 0.023           | 2.73ms   | 5          |
+------------------------------+-----------+-----------------+----------+------------+
| MapIterator                  | 8.40µs    | 0.022           | 26.09µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| SetIterator                  | 8.40µs    | 0.022           | 25.52µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| RegExp String Iterator       | 8.39µs    | 0.022           | 24.96µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| FunctionExpression           | 6.98µs    | 0.019           | 1.74ms   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| SpreadLiteral                | 6.71µs    | 0.018           | 12.85µs  | 5          |
+------------------------------+-----------+-----------------+----------+------------+
| new_declarative_environment  | 6.39µs    | 0.017           | 6.39µs   | 58         |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is()            | 5.97µs    | 0.016           | 6.14µs   | 5          |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::peek()               | 5.55µs    | 0.015           | 5.55µs   | 59         |
+------------------------------+-----------+-----------------+----------+------------+
| FunctionStatementList        | 5.43µs    | 0.014           | 1.78ms   | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| FormalParameters             | 4.71µs    | 0.013           | 6.38µs   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::set_goal()           | 3.41µs    | 0.009           | 3.41µs   | 99         |
+------------------------------+-----------+-----------------+----------+------------+
| Initializer                  | 3.29µs    | 0.009           | 167.35µs | 2          |
+------------------------------+-----------+-----------------+----------+------------+
| BindingIdentifier            | 2.56µs    | 0.007           | 2.56µs   | 3          |
+------------------------------+-----------+-----------------+----------+------------+
| Value::set_field             | 2.48µs    | 0.007           | 14.44µs  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| ArrayLiteral                 | 2.17µs    | 0.006           | 3.77µs   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| globalThis                   | 1.29µs    | 0.003           | 1.32µs   | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| cursor::next_byte()          | 1.02µs    | 0.003           | 1.02µs   | 11         |
+------------------------------+-----------+-----------------+----------+------------+
| undefined                    | 230.00ns  | 0.001           | 230.00ns | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| Infinity                     | 160.00ns  | 0.000           | 160.00ns | 1          |
+------------------------------+-----------+-----------------+----------+------------+
| NaN                          | 51.00ns   | 0.000           | 51.00ns  | 1          |
+------------------------------+-----------+-----------------+----------+------------+
Total cpu time: 37.517679ms
+------+---------------+
| Item | Artifact Size |
+------+---------------+

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.

I've added some comments and suggestions. Some of them should probably be acted upon, others are just looking for more information :)

boa/src/context.rs Outdated Show resolved Hide resolved
boa/src/exec/mod.rs Show resolved Hide resolved
boa/src/exec/tests.rs Show resolved Hide resolved
boa/src/exec/tests.rs Show resolved Hide resolved
boa/src/vm/code_block.rs Show resolved Hide resolved
boa/src/vm/mod.rs Outdated Show resolved Hide resolved
boa/src/vm/mod.rs Outdated Show resolved Hide resolved
boa_tester/src/results.rs Show resolved Hide resolved
boa_wasm/src/lib.rs Show resolved Hide resolved
boa/benches/exec.rs Outdated Show resolved Hide resolved
@RageKnify RageKnify self-requested a review December 22, 2021 03:39
boa/src/context.rs Show resolved Hide resolved
@@ -1 +0,0 @@
1 + 1 + 1 + 1 + 1 + 1 / 1 + 1 + 1 * 1 + 1 + 1 + 1;
Copy link
Member

Choose a reason for hiding this comment

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

The reason for this benchmark was that for very long operations, the parser could overflow or be very slow. Maybe we don't want to keep it, but we should probably open a discusión on useful benchmarks.

Copy link
Member

@RageKnify RageKnify left a comment

Choose a reason for hiding this comment

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

Agree with Razican's observations, other than those LGTM

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.

I did most of the required changes, created an issue to track the safety information in the Readable trait, made it crate-only. I think it's ready to be merged, what do you think @RageKnify ?

@Razican
Copy link
Member

Razican commented Dec 24, 2021

Profile summary

+-----------------------------------+-----------+-----------------+----------+------------+
| Item                              | Self time | % of total time | Time     | Item count |
+-----------------------------------+-----------+-----------------+----------+------------+
| run                               | 16.90ms   | 22.017          | 114.44ms | 45         |
+-----------------------------------+-----------+-----------------+----------+------------+
| Object::set                       | 13.09ms   | 17.054          | 25.26ms  | 774        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - GetName                    | 10.80ms   | 14.075          | 12.87ms  | 1033       |
+-----------------------------------+-----------+-----------------+----------+------------+
| Object::get_own_property          | 4.53ms    | 5.902           | 4.53ms   | 5214       |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Call                       | 4.16ms    | 5.425           | 71.63ms  | 345        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - GetPropertyByName          | 2.37ms    | 3.091           | 2.92ms   | 344        |
+-----------------------------------+-----------+-----------------+----------+------------+
| Date                              | 2.13ms    | 2.772           | 2.14ms   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - SetName                    | 1.92ms    | 2.501           | 7.01ms   | 202        |
+-----------------------------------+-----------+-----------------+----------+------------+
| create_intrinsics                 | 1.79ms    | 2.330           | 13.85ms  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Array                             | 1.75ms    | 2.281           | 1.76ms   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Math                              | 1.13ms    | 1.466           | 1.13ms   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| String                            | 1.09ms    | 1.426           | 1.10ms   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - GetPropertyByValue         | 865.01µs  | 1.127           | 952.04µs | 143        |
+-----------------------------------+-----------+-----------------+----------+------------+
| Opcode retrieval                  | 680.41µs  | 0.886           | 680.41µs | 4798       |
+-----------------------------------+-----------+-----------------+----------+------------+
| next()                            | 618.46µs  | 0.806           | 1.54ms   | 96         |
+-----------------------------------+-----------+-----------------+----------+------------+
| RegExp                            | 553.58µs  | 0.721           | 556.67µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Object                            | 527.88µs  | 0.688           | 529.96µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Identifier                        | 521.25µs  | 0.679           | 558.17µs | 30         |
+-----------------------------------+-----------+-----------------+----------+------------+
| console                           | 510.29µs  | 0.665           | 512.92µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Number                            | 503.67µs  | 0.656           | 641.63µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| BigInt64Array                     | 497.83µs  | 0.649           | 498.25µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Realm::create                     | 484.75µs  | 0.631           | 533.63µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Map                               | 362.42µs  | 0.472           | 365.63µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Main                              | 350.67µs  | 0.457           | 60.72ms  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Reflect                           | 348.67µs  | 0.454           | 351.83µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Set                               | 319.63µs  | 0.416           | 322.67µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Symbol                            | 303.75µs  | 0.396           | 306.13µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Dup                        | 288.12µs  | 0.375           | 288.12µs | 544        |
+-----------------------------------+-----------+-----------------+----------+------------+
| AssignmentExpression              | 214.13µs  | 0.279           | 7.48ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| NumberLiteral                     | 193.13µs  | 0.252           | 251.42µs | 7          |
+-----------------------------------+-----------+-----------------+----------+------------+
| MemberExpression                  | 175.25µs  | 0.228           | 4.09ms   | 26         |
+-----------------------------------+-----------+-----------------+----------+------------+
| BigInt                            | 173.67µs  | 0.226           | 176.58µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ArrayBuffer                       | 173.13µs  | 0.226           | 175.96µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| LeftHandSIdeExpression            | 165.33µs  | 0.215           | 5.36ms   | 25         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - GetFunction                | 160.67µs  | 0.209           | 166.71µs | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| MultiplicativeExpression          | 142.95µs  | 0.186           | 5.98ms   | 24         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - DefInitArg                 | 140.37µs  | 0.183           | 140.37µs | 43         |
+-----------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: next             | 130.96µs  | 0.171           | 138.00µs | 6          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Pop                        | 120.32µs  | 0.157           | 120.32µs | 444        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - LessThan                   | 114.17µs  | 0.149           | 114.17µs | 202        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PushInt8                   | 108.96µs  | 0.142           | 108.96µs | 402        |
+-----------------------------------+-----------+-----------------+----------+------------+
| From<JsObject>                    | 103.67µs  | 0.135           | 103.67µs | 2483       |
+-----------------------------------+-----------+-----------------+----------+------------+
| Boolean                           | 102.08µs  | 0.133           | 102.79µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Int8Array                         | 95.08µs   | 0.124           | 95.63µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| StatementList                     | 90.83µs   | 0.118           | 6.68ms   | 3          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Inc                        | 88.62µs   | 0.115           | 88.62µs  | 200        |
+-----------------------------------+-----------+-----------------+----------+------------+
| ExponentiationExpression          | 87.92µs   | 0.115           | 5.84ms   | 25         |
+-----------------------------------+-----------+-----------------+----------+------------+
| function                          | 87.33µs   | 0.114           | 87.88µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| From<String>                      | 82.58µs   | 0.108           | 82.58µs  | 431        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - JumpIfFalse                | 76.92µs   | 0.100           | 76.92µs  | 202        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Mul                        | 76.55µs   | 0.100           | 76.55µs  | 100        |
+-----------------------------------+-----------+-----------------+----------+------------+
| Error                             | 76.25µs   | 0.099           | 78.79µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| JSON                              | 76.21µs   | 0.099           | 78.13µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| UpdateExpression                  | 74.29µs   | 0.097           | 5.43ms   | 25         |
+-----------------------------------+-----------+-----------------+----------+------------+
| Uint16Array                       | 72.50µs   | 0.094           | 72.96µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Int16Array                        | 72.13µs   | 0.094           | 72.50µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| BigUint64Array                    | 71.92µs   | 0.094           | 72.29µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Uint8Array                        | 71.79µs   | 0.094           | 72.17µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Uint8ClampedArray                 | 71.63µs   | 0.093           | 72.08µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Float32Array                      | 71.58µs   | 0.093           | 72.00µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Int32Array                        | 71.38µs   | 0.093           | 71.79µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Float64Array                      | 71.25µs   | 0.093           | 71.71µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Uint32Array                       | 71.12µs   | 0.093           | 71.63µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Relation Expression               | 69.29µs   | 0.090           | 6.18ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| AdditiveExpression                | 68.05µs   | 0.089           | 6.05ms   | 24         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Jump                       | 66.04µs   | 0.086           | 66.04µs  | 202        |
+-----------------------------------+-----------+-----------------+----------+------------+
| PrimaryExpression                 | 65.88µs   | 0.086           | 3.25ms   | 25         |
+-----------------------------------+-----------+-----------------+----------+------------+
| ShiftExpression                   | 64.29µs   | 0.084           | 6.11ms   | 24         |
+-----------------------------------+-----------+-----------------+----------+------------+
| BitwiseANDExpression              | 63.25µs   | 0.082           | 6.30ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| Proxy                             | 61.75µs   | 0.080           | 62.17µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ShortCircuitExpression            | 59.51µs   | 0.078           | 6.48ms   | 20         |
+-----------------------------------+-----------+-----------------+----------+------------+
| BitwiseORExpression               | 58.16µs   | 0.076           | 6.42ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| EqualityExpression                | 57.58µs   | 0.075           | 6.24ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| BitwiseXORExpression              | 57.33µs   | 0.075           | 6.36ms   | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| ConditionalExpression             | 56.41µs   | 0.073           | 6.53ms   | 20         |
+-----------------------------------+-----------+-----------------+----------+------------+
| Arguments                         | 55.21µs   | 0.072           | 1.16ms   | 7          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is_ascii_pred()      | 52.83µs   | 0.069           | 55.42µs  | 21         |
+-----------------------------------+-----------+-----------------+----------+------------+
| ArrowFunction                     | 51.42µs   | 0.067           | 176.42µs | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ForStatement                      | 50.83µs   | 0.066           | 2.19ms   | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| LexicalEnvironment::new           | 48.75µs   | 0.064           | 48.79µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Intl                              | 48.34µs   | 0.063           | 50.13µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Operator                          | 47.87µs   | 0.062           | 52.00µs  | 13         |
+-----------------------------------+-----------+-----------------+----------+------------+
| ReferenceError                    | 47.62µs   | 0.062           | 50.13µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| RangeError                        | 47.42µs   | 0.062           | 49.71µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| TypeError                         | 46.96µs   | 0.061           | 49.00µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| SyntaxError                       | 46.88µs   | 0.061           | 49.00µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| EvalError                         | 46.84µs   | 0.061           | 48.83µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::next_char()               | 46.00µs   | 0.060           | 46.00µs  | 147        |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - DefInitVar                 | 43.38µs   | 0.057           | 45.38µs  | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - GreaterThan                | 42.24µs   | 0.055           | 42.24µs  | 100        |
+-----------------------------------+-----------+-----------------+----------+------------+
| URIError                          | 40.63µs   | 0.053           | 42.33µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Statement                         | 40.00µs   | 0.052           | 7.66ms   | 9          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - LogicalAnd                 | 37.59µs   | 0.049           | 37.59µs  | 100        |
+-----------------------------------+-----------+-----------------+----------+------------+
| Expression                        | 36.25µs   | 0.047           | 5.98ms   | 13         |
+-----------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseInt         | 32.96µs   | 0.043           | 34.29µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: parseFloat       | 32.67µs   | 0.043           | 34.33µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isNaN            | 32.58µs   | 0.042           | 33.96µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| make_builtin_fn: isFinite         | 32.33µs   | 0.042           | 33.63µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ExpressionStatement               | 31.42µs   | 0.041           | 5.03ms   | 5          |
+-----------------------------------+-----------+-----------------+----------+------------+
| CallExpression                    | 31.38µs   | 0.041           | 1.21ms   | 6          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - New                        | 28.08µs   | 0.037           | 30.21µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Iterator Prototype                | 27.83µs   | 0.036           | 27.96µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| VariableStatement                 | 27.46µs   | 0.036           | 372.21µs | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::peek_char()               | 22.58µs   | 0.029           | 22.58µs  | 78         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - RestParameterPop           | 21.79µs   | 0.028           | 21.79µs  | 44         |
+-----------------------------------+-----------+-----------------+----------+------------+
| StatementListItem                 | 17.79µs   | 0.023           | 6.48ms   | 7          |
+-----------------------------------+-----------+-----------------+----------+------------+
| SpreadLiteral                     | 13.33µs   | 0.017           | 25.96µs  | 5          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::next_is()                 | 12.42µs   | 0.016           | 12.63µs  | 5          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ArrayIterator                     | 12.33µs   | 0.016           | 37.54µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| String Iterator                   | 11.75µs   | 0.015           | 36.58µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| RegExp String Iterator            | 11.71µs   | 0.015           | 35.33µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| SetIterator                       | 11.63µs   | 0.015           | 35.67µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| MapIterator                       | 11.54µs   | 0.015           | 35.67µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ForInIterator                     | 11.50µs   | 0.015           | 35.71µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| UnaryExpression                   | 10.54µs   | 0.014           | 6.71ms   | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| FunctionStatementList             | 10.29µs   | 0.013           | 3.27ms   | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| FunctionExpression                | 10.00µs   | 0.013           | 3.17ms   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PushNewArray               | 10.00µs   | 0.013           | 10.42µs  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::peek()                    | 9.80µs    | 0.013           | 9.80µs   | 59         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PushUndefined              | 8.63µs    | 0.011           | 8.63µs   | 44         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PushDeclarativeEnvironment | 7.83µs    | 0.010           | 8.08µs   | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Return                     | 7.00µs    | 0.009           | 7.00µs   | 44         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PushZero                   | 6.92µs    | 0.009           | 6.92µs   | 45         |
+-----------------------------------+-----------+-----------------+----------+------------+
| Initializer                       | 6.00µs    | 0.008           | 293.75µs | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| FormalParameters                  | 5.50µs    | 0.007           | 8.75µs   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::set_goal()                | 5.08µs    | 0.007           | 5.08µs   | 99         |
+-----------------------------------+-----------+-----------------+----------+------------+
| new_declarative_environment       | 4.00µs    | 0.005           | 4.00µs   | 48         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - This                       | 3.92µs    | 0.005           | 3.96µs   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| ArrayLiteral                      | 3.25µs    | 0.004           | 6.42µs   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| BindingIdentifier                 | 1.71µs    | 0.002           | 1.71µs   | 3          |
+-----------------------------------+-----------+-----------------+----------+------------+
| globalThis                        | 1.50µs    | 0.002           | 1.54µs   | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| cursor::next_byte()               | 1.29µs    | 0.002           | 1.29µs   | 11         |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - Swap                       | 666.00ns  | 0.001           | 666.00ns | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PopEnvironment             | 542.00ns  | 0.001           | 542.00ns | 2          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - LogicalNot                 | 333.00ns  | 0.000           | 333.00ns | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PopOnReturnAdd             | 166.00ns  | 0.000           | 166.00ns | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| INST - PopOnReturnSub             | 125.00ns  | 0.000           | 125.00ns | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Execute                           | 84.00ns   | 0.000           | 84.00ns  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| NaN                               | 83.00ns   | 0.000           | 83.00ns  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| undefined                         | 42.00ns   | 0.000           | 42.00ns  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Compilation                       | 42.00ns   | 0.000           | 42.00ns  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
| Infinity                          | 41.00ns   | 0.000           | 41.00ns  | 1          |
+-----------------------------------+-----------+-----------------+----------+------------+
Total cpu time: 76.762917ms
+------+---------------+
| Item | Artifact Size |
+------+---------------+

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.

Looks good to me! :)

@HalidOdat HalidOdat added execution Issues or PRs related to code execution technical debt vm Issues and PRs related to the Boa Virtual Machine. labels Dec 24, 2021
@jasonwilliams jasonwilliams added the Internal Category for changelog label Dec 24, 2021
@Razican
Copy link
Member

Razican commented Dec 24, 2021

bors r+

@bors
Copy link

bors bot commented Dec 24, 2021

🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@Razican
Copy link
Member

Razican commented Dec 24, 2021

bors r+

@bors
Copy link

bors bot commented Dec 24, 2021

🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@Razican Razican linked an issue Dec 25, 2021 that may be closed by this pull request
@Razican
Copy link
Member

Razican commented Dec 25, 2021

Benchmarks:

We definitely have a regression, but I think it's OK to merge.

┌─────────┬──────────────────────────────────────────────┬─────────────────────┬─────────────────────┬─────────────┐
1407
│ (index) │                     name                     │   changesDuration   │   masterDuration    │ difference  │
1408
├─────────┼──────────────────────────────────────────────┼─────────────────────┼─────────────────────┼─────────────┤
1409
│    0    │      'Arithmetic operations (Compiler)'      │  '1001.9±67.32ns'   │      undefined      │   '+NaN'    │
1410
│    1    │     'Arithmetic operations (Execution)'      │ '**238.4±13.78ns**' │    '2.2±0.10µs'     │    '-89'    │
1411
│    2    │        'Arithmetic operations (Full)'        │   '394.7±32.61µs'   │   '**undefined**'   │ '+Infinity' │
1412
│    3    │       'Arithmetic operations (Parser)'       │    '6.3±0.50µs'     │      undefined      │   '+NaN'    │
1413
│    4    │          'Array access (Compiler)'           │  '1467.5±107.19ns'  │      undefined      │   '+NaN'    │
1414
│    5    │          'Array access (Execution)'          │  '**7.7±0.63µs**'   │    '12.0±0.96µs'    │    '-35'    │
1415
│    6    │            'Array access (Full)'             │   '435.2±34.31µs'   │   '**undefined**'   │ '+Infinity' │
1416
│    7    │           'Array access (Parser)'            │    '13.2±0.95µs'    │      undefined      │   '+NaN'    │
1417
│    8    │         'Array creation (Compiler)'          │    '2.4±0.18µs'     │      undefined      │   '+NaN'    │
1418
│    9    │         'Array creation (Execution)'         │  '**2.6±0.17ms**'   │    '3.1±0.17ms'     │    '-17'    │
1419
│   10    │           'Array creation (Full)'            │    '3.1±0.27ms'     │   '**undefined**'   │ '+Infinity' │
1420
│   11    │          'Array creation (Parser)'           │    '14.7±1.31µs'    │      undefined      │   '+NaN'    │
1421
│   12    │            'Array pop (Compiler)'            │    '7.7±0.75µs'     │      undefined      │   '+NaN'    │
1422
│   13    │           'Array pop (Execution)'            │ '**824.9±50.08µs**' │  '1338.8±141.19µs'  │    '-38'    │
1423
│   14    │              'Array pop (Full)'              │  '1376.6±78.76µs'   │   '**undefined**'   │ '+Infinity' │
1424
│   15    │             'Array pop (Parser)'             │   '174.0±11.19µs'   │      undefined      │   '+NaN'    │
1425
│   16    │      'Boolean Object Access (Compiler)'      │    '2.1±0.12µs'     │      undefined      │   '+NaN'    │
1426
│   17    │     'Boolean Object Access (Execution)'      │  '**4.7±0.37µs**'   │    '7.4±0.50µs'     │    '-36'    │
1427
│   18    │        'Boolean Object Access (Full)'        │   '408.1±25.41µs'   │   '**undefined**'   │ '+Infinity' │
1428
│   19    │       'Boolean Object Access (Parser)'       │    '15.2±1.25µs'    │      undefined      │   '+NaN'    │
1429
│   20    │            'Clean js (Compiler)'             │    '5.6±0.48µs'     │      undefined      │   '+NaN'    │
1430
│   21    │            'Clean js (Execution)'            │ '**707.0±45.35µs**' │  '1460.8±101.65µs'  │    '-52'    │
1431
│   22    │              'Clean js (Full)'               │  '1165.4±97.27µs'   │   '**undefined**'   │ '+Infinity' │
1432
│   23    │             'Clean js (Parser)'              │    '35.6±4.44µs'    │  '**32.0±2.22µs**'  │    '+11'    │
1433
│   24    │                'Create Realm'                │   '349.8±24.77ns'   │ '**346.8±23.93ns**' │   '+1.0'    │
1434
│   25    │ 'Dynamic Object Property Access (Compiler)'  │  '1920.6±134.85ns'  │      undefined      │   '+NaN'    │
1435
│   26    │ 'Dynamic Object Property Access (Execution)' │  '**6.8±0.80µs**'   │    '7.8±0.49µs'     │    '-12'    │
1436
│   27    │   'Dynamic Object Property Access (Full)'    │   '410.8±18.53µs'   │   '**undefined**'   │ '+Infinity' │
1437
│   28    │  'Dynamic Object Property Access (Parser)'   │    '12.5±1.22µs'    │      undefined      │   '+NaN'    │
1438
│   29    │            'Expression (Parser)'             │    '5.4±0.49µs'     │   '**undefined**'   │ '+Infinity' │
1439
│   30    │            'Fibonacci (Compiler)'            │    '3.0±0.19µs'     │      undefined      │   '+NaN'    │
1440
│   31    │           'Fibonacci (Execution)'            │  '**2.7±0.18ms**'   │    '3.2±0.17ms'     │    '-16'    │
1441
│   32    │              'Fibonacci (Full)'              │    '3.2±0.21ms'     │   '**undefined**'   │ '+Infinity' │
1442
│   33    │             'Fibonacci (Parser)'             │    '17.8±1.15µs'    │      undefined      │   '+NaN'    │
1443
│   34    │            'For loop (Compiler)'             │    '2.5±0.15µs'     │      undefined      │   '+NaN'    │
1444
│   35    │            'For loop (Execution)'            │  '**20.1±1.17µs**'  │    '49.7±4.82µs'    │    '-60'    │
1445
│   36    │              'For loop (Full)'               │   '435.2±29.34µs'   │   '**undefined**'   │ '+Infinity' │
1446
│   37    │             'For loop (Parser)'              │    '15.6±1.16µs'    │  '**15.2±1.45µs**'  │   '+2.0'    │
1447
│   38    │           'Goal Symbols (Parser)'            │    '11.0±0.70µs'    │   '**undefined**'   │ '+Infinity' │
1448
│   39    │            'Hello World (Parser)'            │    '3.2±0.18µs'     │   '**undefined**'   │ '+Infinity' │
1449
│   40    │             'Long file (Parser)'             │   '720.0±50.69ns'   │   '**undefined**'   │ '+Infinity' │
1450
│   41    │             'Mini js (Compiler)'             │    '5.7±0.44µs'     │      undefined      │   '+NaN'    │
1451
│   42    │            'Mini js (Execution)'             │ '**660.7±57.07µs**' │  '1365.2±94.83µs'   │    '-52'    │
1452
│   43    │               'Mini js (Full)'               │  '1054.3±57.54µs'   │   '**undefined**'   │ '+Infinity' │
1453
│   44    │              'Mini js (Parser)'              │    '30.0±2.13µs'    │  '**27.5±2.23µs**'  │   '+9.0'    │
1454
│   45    │      'Number Object Access (Compiler)'       │  '1758.8±169.69ns'  │      undefined      │   '+NaN'    │
1455
│   46    │      'Number Object Access (Execution)'      │  '**3.6±0.26µs**'   │    '6.0±0.74µs'     │    '-40'    │
1456
│   47    │        'Number Object Access (Full)'         │   '403.1±22.97µs'   │   '**undefined**'   │ '+Infinity' │
1457
│   48    │       'Number Object Access (Parser)'        │    '12.1±1.67µs'    │      undefined      │   '+NaN'    │
1458
│   49    │         'Object Creation (Compiler)'         │  '1553.9±130.70ns'  │      undefined      │   '+NaN'    │
1459
│   50    │        'Object Creation (Execution)'         │  '**6.0±0.45µs**'   │    '7.2±0.49µs'     │    '-17'    │
1460
│   51    │           'Object Creation (Full)'           │   '430.4±33.42µs'   │   '**undefined**'   │ '+Infinity' │
1461
│   52    │          'Object Creation (Parser)'          │    '11.0±0.87µs'    │      undefined      │   '+NaN'    │
1462
│   53    │             'RegExp (Compiler)'              │  '1814.6±142.15ns'  │      undefined      │   '+NaN'    │
1463
│   54    │             'RegExp (Execution)'             │  '**10.7±0.89µs**'  │    '14.2±0.75µs'    │    '-24'    │
1464
│   55    │               'RegExp (Full)'                │   '428.6±31.13µs'   │   '**undefined**'   │ '+Infinity' │
1465
│   56    │              'RegExp (Parser)'               │    '11.0±0.79µs'    │      undefined      │   '+NaN'    │
1466
│   57    │         'RegExp Creation (Compiler)'         │  '1534.3±133.20ns'  │      undefined      │   '+NaN'    │
1467
│   58    │        'RegExp Creation (Execution)'         │    '11.7±0.98µs'    │      undefined      │   '+NaN'    │
1468
│   59    │          'RegExp Creation (Parser)'          │    '9.7±0.83µs'     │      undefined      │   '+NaN'    │
1469
│   60    │         'RegExp Literal (Compiler)'          │  '1840.6±156.58ns'  │      undefined      │   '+NaN'    │
1470
│   61    │         'RegExp Literal (Execution)'         │    '14.0±0.91µs'    │    '13.9±0.96µs'    │    '0.0'    │
1471
│   62    │           'RegExp Literal (Full)'            │   '450.5±44.44µs'   │   '**undefined**'   │ '+Infinity' │
1472
│   63    │          'RegExp Literal (Parser)'           │    '9.2±0.71µs'     │      undefined      │   '+NaN'    │
1473
│   64    │     'RegExp Literal Creation (Compiler)'     │  '1470.0±83.37ns'   │      undefined      │   '+NaN'    │
1474
│   65    │    'RegExp Literal Creation (Execution)'     │  '**10.3±0.62µs**'  │    '11.0±0.66µs'    │   '-6.5'    │
1475
│   66    │       'RegExp Literal Creation (Full)'       │   '419.9±28.06µs'   │   '**undefined**'   │ '+Infinity' │
1476
│   67    │      'RegExp Literal Creation (Parser)'      │    '7.0±0.58µs'     │      undefined      │   '+NaN'    │
1477
│   68    │  'Static Object Property Access (Compiler)'  │  '1677.9±138.13ns'  │      undefined      │   '+NaN'    │
1478
│   69    │ 'Static Object Property Access (Execution)'  │  '**6.0±0.40µs**'   │    '7.5±0.59µs'     │    '-19'    │
1479
│   70    │    'Static Object Property Access (Full)'    │   '423.0±31.22µs'   │   '**undefined**'   │ '+Infinity' │
1480
│   71    │   'Static Object Property Access (Parser)'   │    '10.7±0.68µs'    │      undefined      │   '+NaN'    │
1481
│   72    │      'String Object Access (Compiler)'       │    '2.5±0.19µs'     │      undefined      │   '+NaN'    │
1482
│   73    │      'String Object Access (Execution)'      │  '**6.7±0.69µs**'   │    '9.2±0.63µs'     │    '-27'    │
1483
│   74    │        'String Object Access (Full)'         │   '408.6±24.26µs'   │   '**undefined**'   │ '+Infinity' │
1484
│   75    │       'String Object Access (Parser)'        │    '15.9±1.32µs'    │      undefined      │   '+NaN'    │
1485
│   76    │        'String comparison (Compiler)'        │    '2.5±0.15µs'     │      undefined      │   '+NaN'    │
1486
│   77    │       'String comparison (Execution)'        │  '**7.6±0.53µs**'   │    '8.5±0.88µs'     │    '-11'    │
1487
│   78    │          'String comparison (Full)'          │   '412.1±28.04µs'   │   '**undefined**'   │ '+Infinity' │
1488
│   79    │         'String comparison (Parser)'         │    '11.9±1.01µs'    │      undefined      │   '+NaN'    │
1489
│   80    │      'String concatenation (Compiler)'       │  '1769.2±127.36ns'  │      undefined      │   '+NaN'    │
1490
│   81    │      'String concatenation (Execution)'      │  '**6.5±0.57µs**'   │    '7.2±0.55µs'     │   '-9.1'    │
1491
│   82    │        'String concatenation (Full)'         │   '429.6±35.51µs'   │   '**undefined**'   │ '+Infinity' │
1492
│   83    │       'String concatenation (Parser)'        │    '8.4±1.82µs'     │      undefined      │   '+NaN'    │
1493
│   84    │           'String copy (Compiler)'           │  '1299.5±80.85ns'   │      undefined      │   '+NaN'    │
1494
│   85    │          'String copy (Execution)'           │  '**5.5±0.83µs**'   │    '6.2±0.37µs'     │    '-12'    │
1495
│   86    │             'String copy (Full)'             │   '408.5±30.01µs'   │   '**undefined**'   │ '+Infinity' │
1496
│   87    │            'String copy (Parser)'            │    '6.0±0.36µs'     │      undefined      │   '+NaN'    │
1497
│   88    │             'Symbols (Compiler)'             │   '799.3±59.78ns'   │      undefined      │   '+NaN'    │
1498
│   89    │            'Symbols (Execution)'             │  '**4.9±0.35µs**'   │    '5.8±0.37µs'     │    '-15'    │
1499
│   90    │               'Symbols (Full)'               │   '413.5±44.18µs'   │   '**undefined**'   │ '+Infinity' │
1500
│   91    │              'Symbols (Parser)'              │    '4.9±0.38µs'     │      undefined      │   '+NaN'    │
1501
│   92    │                      ''                      │      undefined      │      undefined      │   '+NaN'    │
1502
└─────────┴──────────────────────────────────────────────┴─────────────────────┴─────────────────────┴─────────────┘

@Razican
Copy link
Member

Razican commented Dec 25, 2021

bors r+

@bors
Copy link

bors bot commented Dec 25, 2021

🕐 Waiting for PR status (Github check) to be set, probably by CI. Bors will automatically try to run when all required PR statuses are set.

@jasonwilliams
Copy link
Member Author

jasonwilliams commented Dec 25, 2021

Yeah when I get some time I’d be interested to run the profiler and see what’s going on.
Why is object::set being ran so often? Seems like that shouldn’t run so much. But this isn’t a blocker

@Razican Razican merged commit dfb3df5 into main Dec 25, 2021
@bors bors bot deleted the justVM branch December 25, 2021 17:56
@Razican Razican added this to the v0.14.0 milestone Feb 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
execution Issues or PRs related to code execution Internal Category for changelog technical debt vm Issues and PRs related to the Boa Virtual Machine.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add safety information about the Readable trait.
5 participants