Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[Merged by Bors] - Implement super expressions #2116

Closed
wants to merge 3 commits into from
Closed

[Merged by Bors] - Implement super expressions #2116

wants to merge 3 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Jun 13, 2022

This Pull Request changes the following:

  • Implement super expression parsing / execution.
  • Implement early errors for super expressions.
  • Refactor / add internal slot representation for environment and function objects.

@raskad raskad added enhancement New feature or request parser Issues surrounding the parser execution Issues or PRs related to code execution ast Issue surrounding the abstract syntax tree run-benchmark Label used to run banchmarks on PRs labels Jun 13, 2022
@raskad raskad added this to the v0.16.0 milestone Jun 13, 2022
@github-actions
Copy link

github-actions bot commented Jun 13, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 90,663 90,663 0
Passed 57,670 58,166 +496
Ignored 13,832 13,832 0
Failed 19,161 18,665 -496
Panics 0 0 0
Conformance 63.61% 64.16% +0.55%
Fixed tests (496):
test/built-ins/Promise/resolve/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/resolve/ctx-ctor.js (previously Failed)
test/built-ins/Promise/any/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/any/ctx-ctor.js (previously Failed)
test/built-ins/Promise/any/invoke-resolve-on-values-every-iteration-of-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/any/invoke-resolve-on-values-every-iteration-of-custom.js (previously Failed)
test/built-ins/Promise/any/invoke-resolve-on-promises-every-iteration-of-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/any/invoke-resolve-on-promises-every-iteration-of-custom.js (previously Failed)
test/built-ins/Promise/all/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/all/ctx-ctor.js (previously Failed)
test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-custom.js (previously Failed)
test/built-ins/Promise/race/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/race/ctx-ctor.js (previously Failed)
test/built-ins/Promise/race/invoke-resolve-on-promises-every-iteration-of-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/race/invoke-resolve-on-promises-every-iteration-of-custom.js (previously Failed)
test/built-ins/Promise/allSettled/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/allSettled/ctx-ctor.js (previously Failed)
test/built-ins/Promise/allSettled/invoke-resolve-on-promises-every-iteration-of-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/allSettled/invoke-resolve-on-promises-every-iteration-of-custom.js (previously Failed)
test/built-ins/Promise/prototype/then/ctor-custom.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/then/ctor-custom.js (previously Failed)
test/built-ins/Promise/prototype/finally/rejected-observable-then-calls-PromiseResolve.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/rejected-observable-then-calls-PromiseResolve.js (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-species-constructor-reject-count.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-species-constructor-reject-count.js (previously Failed)
test/built-ins/Promise/prototype/finally/resolved-observable-then-calls-PromiseResolve.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/resolved-observable-then-calls-PromiseResolve.js (previously Failed)
test/built-ins/Promise/prototype/finally/species-constructor.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/species-constructor.js (previously Failed)
test/built-ins/Promise/prototype/finally/rejected-observable-then-calls-argument.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/rejected-observable-then-calls-argument.js (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-resolve-count.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-resolve-count.js (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-reject-count.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-reject-count.js (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-species-constructor-resolve-count.js [strict mode] (previously Failed)
test/built-ins/Promise/prototype/finally/subclass-species-constructor-resolve-count.js (previously Failed)
test/built-ins/Promise/reject/ctx-ctor.js [strict mode] (previously Failed)
test/built-ins/Promise/reject/ctx-ctor.js (previously Failed)
test/built-ins/Function/internals/Construct/derived-this-uninitialized.js [strict mode] (previously Failed)
test/built-ins/Function/internals/Construct/derived-this-uninitialized.js (previously Failed)
test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js [strict mode] (previously Failed)
test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js (previously Failed)
test/built-ins/Function/internals/Call/class-ctor.js [strict mode] (previously Failed)
test/built-ins/Function/internals/Call/class-ctor.js (previously Failed)
test/built-ins/ArrayBuffer/isView/arg-is-typedarray-subclass-instance.js [strict mode] (previously Failed)
test/built-ins/ArrayBuffer/isView/arg-is-typedarray-subclass-instance.js (previously Failed)
test/built-ins/Symbol/species/subclassing.js [strict mode] (previously Failed)
test/built-ins/Symbol/species/subclassing.js (previously Failed)
test/built-ins/RegExp/named-groups/groups-object-subclass.js [strict mode] (previously Failed)
test/built-ins/RegExp/named-groups/groups-object-subclass.js (previously Failed)
test/built-ins/RegExp/named-groups/groups-object-subclass-sans.js [strict mode] (previously Failed)
test/built-ins/RegExp/named-groups/groups-object-subclass-sans.js (previously Failed)
test/language/computed-property-names/to-name-side-effects/numbers-class.js [strict mode] (previously Failed)
test/language/computed-property-names/to-name-side-effects/numbers-class.js (previously Failed)
test/language/computed-property-names/to-name-side-effects/class.js [strict mode] (previously Failed)
test/language/computed-property-names/to-name-side-effects/class.js (previously Failed)
test/language/computed-property-names/class/method/number.js [strict mode] (previously Failed)
test/language/computed-property-names/class/method/number.js (previously Failed)
test/language/computed-property-names/class/method/string.js [strict mode] (previously Failed)
test/language/computed-property-names/class/method/string.js (previously Failed)
test/language/computed-property-names/class/method/generator.js [strict mode] (previously Failed)
test/language/computed-property-names/class/method/generator.js (previously Failed)
test/language/computed-property-names/class/method/symbol.js [strict mode] (previously Failed)
test/language/computed-property-names/class/method/symbol.js (previously Failed)
test/language/rest-parameters/with-new-target.js [strict mode] (previously Failed)
test/language/rest-parameters/with-new-target.js (previously Failed)
test/language/statements/class/static-init-super-property.js [strict mode] (previously Failed)
test/language/statements/class/static-init-super-property.js (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto.js [strict mode] (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto.js (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-contains-return-override.js [strict mode] (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-contains-return-override.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-this.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-this.js (previously Failed)
test/language/statements/class/subclass/builtins.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtins.js (previously Failed)
test/language/statements/class/subclass/binding.js [strict mode] (previously Failed)
test/language/statements/class/subclass/binding.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-string.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-string.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-number.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-number.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-symbol.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-symbol.js (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-super.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-empty.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-empty.js (previously Failed)
test/language/statements/class/subclass/default-constructor.js [strict mode] (previously Failed)
test/language/statements/class/subclass/default-constructor.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-undefined.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-undefined.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-object.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-object.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-boolean.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-boolean.js (previously Failed)
test/language/statements/class/subclass/default-constructor-spread-override.js [strict mode] (previously Failed)
test/language/statements/class/subclass/default-constructor-spread-override.js (previously Failed)
test/language/statements/class/subclass/class-definition-parent-proto-null.js [strict mode] (previously Failed)
test/language/statements/class/subclass/class-definition-parent-proto-null.js (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-null.js [strict mode] (previously Failed)
test/language/statements/class/subclass/derived-class-return-override-with-null.js (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-missing-return-override.js [strict mode] (previously Failed)
test/language/statements/class/subclass/class-definition-null-proto-missing-return-override.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Promise/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Promise/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Function/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/URIError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/TypeError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/URIError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/EvalError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/TypeError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/RangeError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/RangeError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/EvalError-message.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-super.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/ArrayBuffer/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Map/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Map/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Date/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/GeneratorFunction/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Number/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Number/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Boolean/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Boolean/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Symbol/new-symbol-with-super-throws.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Set/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Set/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Error/message-property-assignment.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Object/constructor-return-undefined-throws.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Object/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/RegExp/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/DataView/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/DataView/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/TypedArray/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/TypedArray/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/regular-subclassing.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/length.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/String/length.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/super-must-be-called.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js [strict mode] (previously Failed)
test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-single-argument.js (previously Failed)
test/language/statements/class/super/in-getter.js [strict mode] (previously Failed)
test/language/statements/class/super/in-getter.js (previously Failed)
test/language/statements/class/super/in-methods.js [strict mode] (previously Failed)
test/language/statements/class/super/in-methods.js (previously Failed)
test/language/statements/class/super/in-constructor.js [strict mode] (previously Failed)
test/language/statements/class/super/in-constructor.js (previously Failed)
test/language/statements/class/super/in-setter.js [strict mode] (previously Failed)
test/language/statements/class/super/in-setter.js (previously Failed)
test/language/statements/class/super/in-static-setter.js [strict mode] (previously Failed)
test/language/statements/class/super/in-static-setter.js (previously Failed)
test/language/statements/class/super/in-static-methods.js [strict mode] (previously Failed)
test/language/statements/class/super/in-static-methods.js (previously Failed)
test/language/statements/class/super/in-static-getter.js [strict mode] (previously Failed)
test/language/statements/class/super/in-static-getter.js (previously Failed)
test/language/statements/class/definition/this-access-restriction-2.js [strict mode] (previously Failed)
test/language/statements/class/definition/this-access-restriction-2.js (previously Failed)
test/language/statements/class/definition/constructor-property.js [strict mode] (previously Failed)
test/language/statements/class/definition/constructor-property.js (previously Failed)
test/language/statements/class/definition/prototype-property.js [strict mode] (previously Failed)
test/language/statements/class/definition/prototype-property.js (previously Failed)
test/language/statements/class/definition/constructor.js [strict mode] (previously Failed)
test/language/statements/class/definition/constructor.js (previously Failed)
test/language/statements/class/definition/prototype-wiring.js [strict mode] (previously Failed)
test/language/statements/class/definition/prototype-wiring.js (previously Failed)
test/language/statements/class/definition/this-check-ordering.js [strict mode] (previously Failed)
test/language/statements/class/definition/this-check-ordering.js (previously Failed)
test/language/statements/class/definition/side-effects-in-extends.js [strict mode] (previously Failed)
test/language/statements/class/definition/side-effects-in-extends.js (previously Failed)
test/language/statements/class/arguments/access.js [strict mode] (previously Failed)
test/language/statements/class/arguments/access.js (previously Failed)
test/language/statements/class/arguments/default-constructor.js [strict mode] (previously Failed)
test/language/statements/class/arguments/default-constructor.js (previously Failed)
test/language/statements/class/elements/prod-private-method-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-method-before-super-return-in-field-initializer.js (previously Failed)
test/language/statements/class/elements/private-static-method-not-writable.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-static-method-not-writable.js (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-arrow-function.js [strict mode] (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-arrow-function.js (previously Failed)
test/language/statements/class/elements/prod-private-getter-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-getter-before-super-return-in-constructor.js (previously Failed)
test/language/statements/class/elements/privatefieldget-success-4.js [strict mode] (previously Failed)
test/language/statements/class/elements/privatefieldget-success-4.js (previously Failed)
test/language/statements/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/set-access-of-missing-private-static-setter.js [strict mode] (previously Failed)
test/language/statements/class/elements/set-access-of-missing-private-static-setter.js (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-function.js [strict mode] (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-function.js (previously Failed)
test/language/statements/class/elements/set-access-of-missing-private-setter.js [strict mode] (previously Failed)
test/language/statements/class/elements/set-access-of-missing-private-setter.js (previously Failed)
test/language/statements/class/elements/private-setter-access-on-inner-arrow-function.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-setter-access-on-inner-arrow-function.js (previously Failed)
test/language/statements/class/elements/private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/public-class-field-initialization-is-visible-to-proxy.js [strict mode] (previously Failed)
test/language/statements/class/elements/public-class-field-initialization-is-visible-to-proxy.js (previously Failed)
test/language/statements/class/elements/derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/prod-private-setter-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-setter-before-super-return-in-field-initializer.js (previously Failed)
test/language/statements/class/elements/private-method-not-writable.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-method-not-writable.js (previously Failed)
test/language/statements/class/elements/nested-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/nested-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/static-private-setter.js [strict mode] (previously Failed)
test/language/statements/class/elements/static-private-setter.js (previously Failed)
test/language/statements/class/elements/private-setter-brand-check.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-setter-brand-check.js (previously Failed)
test/language/statements/class/elements/privatefield-on-proxy.js [strict mode] (previously Failed)
test/language/statements/class/elements/privatefield-on-proxy.js (previously Failed)
test/language/statements/class/elements/privategetter-on-proxy.js [strict mode] (previously Failed)
test/language/statements/class/elements/privategetter-on-proxy.js (previously Failed)
test/language/statements/class/elements/super-fielddefinition-initializer-abrupt-completion.js [strict mode] (previously Failed)
test/language/statements/class/elements/super-fielddefinition-initializer-abrupt-completion.js (previously Failed)
test/language/statements/class/elements/private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/class-field-is-observable-by-proxy.js [strict mode] (previously Failed)
test/language/statements/class/elements/class-field-is-observable-by-proxy.js (previously Failed)
test/language/statements/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/set-access-of-shadowed-private-method.js [strict mode] (previously Failed)
test/language/statements/class/elements/set-access-of-shadowed-private-method.js (previously Failed)
test/language/statements/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/set-access-of-private-method.js [strict mode] (previously Failed)
test/language/statements/class/elements/set-access-of-private-method.js (previously Failed)
test/language/statements/class/elements/privatefieldput-primitive-receiver.js (previously Failed)
test/language/statements/class/elements/private-setter-access-on-inner-function.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-setter-access-on-inner-function.js (previously Failed)
test/language/statements/class/elements/nested-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/nested-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/statements/class/elements/prod-private-setter-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-setter-before-super-return-in-constructor.js (previously Failed)
test/language/statements/class/elements/private-static-method-shadowed-by-setter-on-nested-class.js [strict mode] (previously Failed)
test/language/statements/class/elements/private-static-method-shadowed-by-setter-on-nested-class.js (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-class.js [strict mode] (previously Failed)
test/language/statements/class/elements/static-private-setter-access-on-inner-class.js (previously Failed)
test/language/statements/class/elements/prod-private-method-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-method-before-super-return-in-constructor.js (previously Failed)
test/language/statements/class/elements/privatemethods-on-proxy.js [strict mode] (previously Failed)
test/language/statements/class/elements/privatemethods-on-proxy.js (previously Failed)
test/language/statements/class/elements/prod-private-getter-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/statements/class/elements/prod-private-getter-before-super-return-in-field-initializer.js (previously Failed)
test/language/statements/class/elements/privatefieldset-typeerror-1.js [strict mode] (previously Failed)
test/language/statements/class/elements/privatefieldset-typeerror-1.js (previously Failed)
test/language/statements/class/elements/derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/statements/class/elements/derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/statements/class/elements/syntax/valid/grammar-static-ctor-meth-valid.js [strict mode] (previously Failed)
test/language/statements/class/elements/syntax/valid/grammar-static-ctor-meth-valid.js (previously Failed)
test/language/statements/class/syntax/class-body-has-direct-super-class-heritage.js [strict mode] (previously Failed)
test/language/statements/class/syntax/class-body-has-direct-super-class-heritage.js (previously Failed)
test/language/statements/class/strict-mode/arguments-callee.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-obj-undefined.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-obj-undefined.js (previously Failed)
test/language/expressions/super/call-spread-mult-expr.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-expr.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-get-get.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-get-get.js (previously Failed)
test/language/expressions/super/prop-expr-cls-key-err.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-key-err.js (previously Failed)
test/language/expressions/super/prop-dot-obj-null-proto.js [strict mode] (previously Failed)
test/language/expressions/super/prop-dot-obj-null-proto.js (previously Failed)
test/language/expressions/super/call-spread-mult-obj-ident.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-obj-ident.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-get.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-get.js (previously Failed)
test/language/expressions/super/call-bind-this-value-twice.js [strict mode] (previously Failed)
test/language/expressions/super/call-bind-this-value-twice.js (previously Failed)
test/language/expressions/super/call-bind-this-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-bind-this-value.js (previously Failed)
test/language/expressions/super/prop-expr-obj-err.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-obj-err.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-obj-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-obj-unresolvable.js (previously Failed)
test/language/expressions/super/prop-dot-cls-val.js [strict mode] (previously Failed)
test/language/expressions/super/prop-dot-cls-val.js (previously Failed)
test/language/expressions/super/call-spread-obj-overrides-prev-properties.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-overrides-prev-properties.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-step.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-step.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-unresolvable.js (previously Failed)
test/language/expressions/super/call-spread-obj-undefined.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-undefined.js (previously Failed)
test/language/expressions/super/prop-dot-cls-val-from-arrow.js [strict mode] (previously Failed)
test/language/expressions/super/prop-dot-cls-val-from-arrow.js (previously Failed)
test/language/expressions/super/call-spread-obj-skip-non-enumerable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-skip-non-enumerable.js (previously Failed)
test/language/expressions/super/prop-expr-obj-null-proto.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-obj-null-proto.js (previously Failed)
test/language/expressions/super/call-spread-obj-manipulate-outter-obj-in-getter.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-manipulate-outter-obj-in-getter.js (previously Failed)
test/language/expressions/super/call-spread-sngl-expr.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-sngl-expr.js (previously Failed)
test/language/expressions/super/realm.js [strict mode] (previously Failed)
test/language/expressions/super/realm.js (previously Failed)
test/language/expressions/super/call-spread-obj-override-immutable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-override-immutable.js (previously Failed)
test/language/expressions/super/prop-expr-cls-null-proto.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-null-proto.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-unresolvable.js (previously Failed)
test/language/expressions/super/call-spread-obj-getter-init.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-getter-init.js (previously Failed)
test/language/expressions/super/call-spread-obj-null.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-null.js (previously Failed)
test/language/expressions/super/prop-dot-cls-null-proto.js [strict mode] (previously Failed)
test/language/expressions/super/prop-dot-cls-null-proto.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-value.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-call.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-call.js (previously Failed)
test/language/expressions/super/call-spread-sngl-obj-ident.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-sngl-obj-ident.js (previously Failed)
test/language/expressions/super/call-spread-obj-symbol-property.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-symbol-property.js (previously Failed)
test/language/expressions/super/prop-expr-cls-val.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-val.js (previously Failed)
test/language/expressions/super/prop-expr-cls-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-unresolvable.js (previously Failed)
test/language/expressions/super/call-expr-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-expr-value.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-obj-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-obj-unresolvable.js (previously Failed)
test/language/expressions/super/call-spread-obj-mult-spread.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-mult-spread.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-value.js (previously Failed)
test/language/expressions/super/call-construct-error.js [strict mode] (previously Failed)
test/language/expressions/super/call-construct-error.js (previously Failed)
test/language/expressions/super/call-spread-sngl-empty.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-sngl-empty.js (previously Failed)
test/language/expressions/super/prop-dot-cls-val-from-eval.js [strict mode] (previously Failed)
test/language/expressions/super/prop-dot-cls-val-from-eval.js (previously Failed)
test/language/expressions/super/call-spread-sngl-iter.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-sngl-iter.js (previously Failed)
test/language/expressions/super/call-proto-not-ctor.js [strict mode] (previously Failed)
test/language/expressions/super/call-proto-not-ctor.js (previously Failed)
test/language/expressions/super/call-spread-mult-iter.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-iter.js (previously Failed)
test/language/expressions/super/super-reference-resolution.js [strict mode] (previously Failed)
test/language/expressions/super/super-reference-resolution.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-get-call.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-get-call.js (previously Failed)
test/language/expressions/super/call-spread-obj-getter-descriptor.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-getter-descriptor.js (previously Failed)
test/language/expressions/super/call-spread-mult-empty.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-empty.js (previously Failed)
test/language/expressions/super/prop-expr-obj-unresolvable.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-obj-unresolvable.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-iter-get-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-iter-get-value.js (previously Failed)
test/language/expressions/super/call-spread-mult-obj-null.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-mult-obj-null.js (previously Failed)
test/language/expressions/super/prop-expr-cls-err.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-err.js (previously Failed)
test/language/expressions/super/call-spread-sngl-literal.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-sngl-literal.js (previously Failed)
test/language/expressions/super/call-spread-obj-mult-spread-getter.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-mult-spread-getter.js (previously Failed)
test/language/expressions/super/prop-expr-cls-val-from-eval.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-val-from-eval.js (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-step.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-mult-err-itr-step.js (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-value.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-err-sngl-err-itr-get-value.js (previously Failed)
test/language/expressions/super/call-spread-obj-spread-order.js [strict mode] (previously Failed)
test/language/expressions/super/call-spread-obj-spread-order.js (previously Failed)
test/language/expressions/super/prop-expr-cls-val-from-arrow.js [strict mode] (previously Failed)
test/language/expressions/super/prop-expr-cls-val-from-arrow.js (previously Failed)
test/language/expressions/arrow-function/lexical-super-call-from-within-constructor.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/lexical-super-call-from-within-constructor.js (previously Failed)
test/language/expressions/arrow-function/lexical-super-property-from-within-constructor.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/lexical-super-property-from-within-constructor.js (previously Failed)
test/language/expressions/arrow-function/lexical-super-property.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/lexical-super-property.js (previously Failed)
test/language/expressions/this/S11.1.1_A4.2.js [strict mode] (previously Failed)
test/language/expressions/this/S11.1.1_A4.2.js (previously Failed)
test/language/expressions/this/S11.1.1_A3.2.js [strict mode] (previously Failed)
test/language/expressions/this/S11.1.1_A3.2.js (previously Failed)
test/language/expressions/class/elements/prod-private-method-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-method-before-super-return-in-field-initializer.js (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-arrow-function.js [strict mode] (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-arrow-function.js (previously Failed)
test/language/expressions/class/elements/prod-private-getter-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-getter-before-super-return-in-constructor.js (previously Failed)
test/language/expressions/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-function.js [strict mode] (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-function.js (previously Failed)
test/language/expressions/class/elements/private-setter-access-on-inner-arrow-function.js [strict mode] (previously Failed)
test/language/expressions/class/elements/private-setter-access-on-inner-arrow-function.js (previously Failed)
test/language/expressions/class/elements/private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/arrow-body-private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/prod-private-setter-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-setter-before-super-return-in-field-initializer.js (previously Failed)
test/language/expressions/class/elements/nested-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/nested-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/static-private-setter.js [strict mode] (previously Failed)
test/language/expressions/class/elements/static-private-setter.js (previously Failed)
test/language/expressions/class/elements/private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/arrow-body-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/private-setter-access-on-inner-function.js [strict mode] (previously Failed)
test/language/expressions/class/elements/private-setter-access-on-inner-function.js (previously Failed)
test/language/expressions/class/elements/nested-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/nested-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-1.js [strict mode] (previously Failed)
test/language/expressions/class/elements/nested-private-derived-cls-direct-eval-contains-superproperty-1.js (previously Failed)
test/language/expressions/class/elements/prod-private-setter-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-setter-before-super-return-in-constructor.js (previously Failed)
test/language/expressions/class/elements/private-static-method-shadowed-by-setter-on-nested-class.js [strict mode] (previously Failed)
test/language/expressions/class/elements/private-static-method-shadowed-by-setter-on-nested-class.js (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-class.js [strict mode] (previously Failed)
test/language/expressions/class/elements/static-private-setter-access-on-inner-class.js (previously Failed)
test/language/expressions/class/elements/prod-private-method-before-super-return-in-constructor.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-method-before-super-return-in-constructor.js (previously Failed)
test/language/expressions/class/elements/prod-private-getter-before-super-return-in-field-initializer.js [strict mode] (previously Failed)
test/language/expressions/class/elements/prod-private-getter-before-super-return-in-field-initializer.js (previously Failed)
test/language/expressions/class/elements/derived-cls-direct-eval-contains-superproperty-2.js [strict mode] (previously Failed)
test/language/expressions/class/elements/derived-cls-direct-eval-contains-superproperty-2.js (previously Failed)
test/language/expressions/class/elements/syntax/valid/grammar-static-ctor-meth-valid.js [strict mode] (previously Failed)
test/language/expressions/class/elements/syntax/valid/grammar-static-ctor-meth-valid.js (previously Failed)

@codecov
Copy link

codecov bot commented Jun 13, 2022

Codecov Report

Merging #2116 (2ae9468) into main (b7cf41c) will decrease coverage by 0.83%.
The diff coverage is 26.41%.

@@            Coverage Diff             @@
##             main    #2116      +/-   ##
==========================================
- Coverage   43.52%   42.68%   -0.84%     
==========================================
  Files         220      222       +2     
  Lines       20028    20763     +735     
==========================================
+ Hits         8717     8863     +146     
- Misses      11311    11900     +589     
Impacted Files Coverage Δ
boa_engine/src/builtins/eval/mod.rs 12.50% <0.00%> (+0.73%) ⬆️
boa_engine/src/object/mod.rs 20.36% <ø> (ø)
...e/src/syntax/ast/node/field/get_super_field/mod.rs 0.00% <0.00%> (ø)
boa_engine/src/syntax/ast/node/super_call/mod.rs 0.00% <0.00%> (ø)
.../syntax/parser/expression/left_hand_side/member.rs 26.92% <0.00%> (-12.21%) ⬇️
boa_engine/src/vm/call_frame.rs 100.00% <ø> (ø)
boa_engine/src/vm/opcode.rs 50.00% <ø> (ø)
boa_engine/src/bytecompiler.rs 31.33% <1.60%> (-0.88%) ⬇️
boa_engine/src/vm/mod.rs 49.05% <3.46%> (-7.62%) ⬇️
boa_engine/src/context/mod.rs 31.57% <16.66%> (-0.60%) ⬇️
... and 40 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 d355d3c...2ae9468. Read the comment docs.

@github-actions
Copy link

Benchmark for f4aa3ec

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 552.8±1.99ns 527.4±1.13ns -4.59%
Arithmetic operations (Execution) 651.7±0.47ns 619.8±0.60ns -4.89%
Arithmetic operations (Parser) 5.8±0.01µs 5.8±0.01µs 0.00%
Array access (Compiler) 1483.3±2.66ns 1485.3±12.75ns +0.13%
Array access (Execution) 8.1±0.03µs 8.1±0.03µs 0.00%
Array access (Parser) 13.0±0.02µs 13.3±0.02µs +2.31%
Array creation (Compiler) 2.3±0.00µs 2.2±0.01µs -4.35%
Array creation (Execution) 2.6±0.02ms 2.6±0.00ms 0.00%
Array creation (Parser) 15.2±0.02µs 15.5±0.02µs +1.97%
Array pop (Compiler) 4.2±0.02µs 4.2±0.02µs 0.00%
Array pop (Execution) 1170.5±3.19µs 1173.8±8.34µs +0.28%
Array pop (Parser) 143.6±0.26µs 144.4±0.76µs +0.56%
Boolean Object Access (Compiler) 1159.1±5.38ns 1163.6±11.10ns +0.39%
Boolean Object Access (Execution) 4.3±0.01µs 4.2±0.02µs -2.33%
Boolean Object Access (Parser) 16.0±0.02µs 16.0±0.02µs 0.00%
Clean js (Compiler) 4.8±0.02µs 4.7±0.02µs -2.08%
Clean js (Execution) 710.1±2.82µs 722.5±4.06µs +1.75%
Clean js (Parser) 32.8±0.03µs 33.5±0.05µs +2.13%
Create Realm 230.0±2.39ns 228.7±1.72ns -0.57%
Dynamic Object Property Access (Compiler) 1751.1±2.74ns 1772.9±11.80ns +1.24%
Dynamic Object Property Access (Execution) 5.4±0.01µs 5.3±0.02µs -1.85%
Dynamic Object Property Access (Parser) 11.9±0.02µs 12.0±0.03µs +0.84%
Fibonacci (Compiler) 2.7±0.01µs 2.7±0.01µs 0.00%
Fibonacci (Execution) 1321.0±3.00µs 1320.7±5.83µs -0.02%
Fibonacci (Parser) 17.7±0.09µs 18.0±0.05µs +1.69%
For loop (Compiler) 2.5±0.01µs 2.5±0.03µs 0.00%
For loop (Execution) 15.8±0.03µs 16.5±0.05µs +4.43%
For loop (Parser) 15.4±0.02µs 15.9±0.03µs +3.25%
Mini js (Compiler) 4.1±0.02µs 4.1±0.02µs 0.00%
Mini js (Execution) 669.0±3.58µs 672.9±3.95µs +0.58%
Mini js (Parser) 28.8±0.04µs 29.2±0.06µs +1.39%
Number Object Access (Compiler) 1092.2±1.81ns 1082.8±4.98ns -0.86%
Number Object Access (Execution) 3.2±0.01µs 3.3±0.03µs +3.12%
Number Object Access (Parser) 12.4±0.02µs 12.5±0.04µs +0.81%
Object Creation (Compiler) 1531.4±4.43ns 1567.7±8.77ns +2.37%
Object Creation (Execution) 5.1±0.02µs 5.0±0.02µs -1.96%
Object Creation (Parser) 10.5±0.02µs 10.5±0.05µs 0.00%
RegExp (Compiler) 1719.7±3.19ns 1724.4±8.46ns +0.27%
RegExp (Execution) 12.1±0.06µs 11.6±0.07µs -4.13%
RegExp (Parser) 11.3±0.01µs 11.4±0.07µs +0.88%
RegExp Creation (Compiler) 1556.8±5.69ns 1540.4±3.54ns -1.05%
RegExp Creation (Execution) 9.2±0.05µs 8.8±0.04µs -4.35%
RegExp Creation (Parser) 9.3±0.09µs 9.6±0.03µs +3.23%
RegExp Literal (Compiler) 1711.3±3.42ns 1687.4±7.23ns -1.40%
RegExp Literal (Execution) 12.1±0.08µs 11.6±0.07µs -4.13%
RegExp Literal (Parser) 9.0±0.02µs 9.2±0.02µs +2.22%
RegExp Literal Creation (Compiler) 1561.1±6.15ns 1557.1±3.92ns -0.26%
RegExp Literal Creation (Execution) 9.2±0.04µs 8.8±0.03µs -4.35%
RegExp Literal Creation (Parser) 7.1±0.01µs 7.3±0.03µs +2.82%
Static Object Property Access (Compiler) 1569.9±6.23ns 1577.3±10.99ns +0.47%
Static Object Property Access (Execution) 5.2±0.04µs 5.1±0.04µs -1.92%
Static Object Property Access (Parser) 11.2±0.02µs 11.3±0.02µs +0.89%
String Object Access (Compiler) 1420.8±3.13ns 1436.5±10.63ns +1.11%
String Object Access (Execution) 6.1±0.01µs 6.0±0.02µs -1.64%
String Object Access (Parser) 15.7±0.02µs 15.5±0.10µs -1.27%
String comparison (Compiler) 2.2±0.01µs 2.2±0.01µs 0.00%
String comparison (Execution) 4.6±0.01µs 4.5±0.01µs -2.17%
String comparison (Parser) 11.9±0.02µs 12.1±0.09µs +1.68%
String concatenation (Compiler) 1737.1±2.79ns 1728.2±8.65ns -0.51%
String concatenation (Execution) 4.3±0.03µs 4.3±0.01µs 0.00%
String concatenation (Parser) 8.3±0.03µs 8.6±0.03µs +3.61%
String copy (Compiler) 1450.8±3.41ns 1416.1±6.53ns -2.39%
String copy (Execution) 4.1±0.02µs 4.1±0.02µs 0.00%
String copy (Parser) 6.3±0.02µs 6.5±0.02µs +3.17%
Symbols (Compiler) 1090.9±2.72ns 1111.6±5.28ns +1.90%
Symbols (Execution) 4.2±0.01µs 4.2±0.01µs 0.00%
Symbols (Parser) 4.9±0.02µs 5.0±0.06µs +2.04%

boa_engine/src/builtins/function/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/builtins/eval/mod.rs Outdated Show resolved Hide resolved
/// Parse the given source text in strict mode.
pub(crate) fn parse_strict<S>(&mut self, src: S) -> Result<StatementList, ParseError>
/// Parse the given source text with eval specific handling.
pub(crate) fn parse_eval<S>(
Copy link
Member

Choose a reason for hiding this comment

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

We can probably use this in boa_tester, in the $262 object that gets passed to the context. It has a special eval function that currently does the parsing twice, but can probably benefit from this.

Copy link
Member Author

Choose a reason for hiding this comment

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

You mean $262.evalScript() right? I think that is different. This one is specific to the PerformEval op: https://tc39.es/ecma262/#sec-performeval

Copy link
Member

Choose a reason for hiding this comment

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

Ye, that's what I meant xD didn't remember it well. But yes, I get that. Maybe we can do the same somehow in evalScript().

boa_engine/src/context/mod.rs Show resolved Hide resolved
@boa-dev boa-dev deleted a comment from github-actions bot Jun 13, 2022
@boa-dev boa-dev deleted a comment from github-actions bot Jun 13, 2022
@boa-dev boa-dev deleted a comment from github-actions bot Jun 13, 2022
@boa-dev boa-dev deleted a comment from github-actions bot Jun 13, 2022
@boa-dev boa-dev deleted a comment from github-actions bot Jun 13, 2022
@github-actions
Copy link

Benchmark for bc073cb

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 549.6±0.98ns 533.2±1.21ns -2.98%
Arithmetic operations (Execution) 670.5±0.60ns 628.7±2.66ns -6.23%
Arithmetic operations (Parser) 5.9±0.01µs 5.9±0.01µs 0.00%
Array access (Compiler) 1462.5±6.04ns 1480.4±7.64ns +1.22%
Array access (Execution) 8.0±0.02µs 8.0±0.02µs 0.00%
Array access (Parser) 13.1±0.01µs 13.0±0.02µs -0.76%
Array creation (Compiler) 2.3±0.00µs 1987.5±10.28ns -13.59%
Array creation (Execution) 2.6±0.01ms 2.5±0.00ms -3.85%
Array creation (Parser) 15.3±0.02µs 15.3±0.03µs 0.00%
Array pop (Compiler) 4.2±0.01µs 4.2±0.03µs 0.00%
Array pop (Execution) 1160.3±5.78µs 1140.9±3.01µs -1.67%
Array pop (Parser) 144.1±0.81µs 144.1±0.22µs 0.00%
Boolean Object Access (Compiler) 1148.0±5.20ns 1018.4±5.19ns -11.29%
Boolean Object Access (Execution) 4.3±0.01µs 4.3±0.02µs 0.00%
Boolean Object Access (Parser) 16.0±0.02µs 15.8±0.01µs -1.25%
Clean js (Compiler) 4.7±0.01µs 4.7±0.02µs 0.00%
Clean js (Execution) 713.2±2.97µs 705.3±3.22µs -1.11%
Clean js (Parser) 32.8±0.03µs 33.3±0.13µs +1.52%
Create Realm 273.4±2.48ns 228.0±0.17ns -16.61%
Dynamic Object Property Access (Compiler) 1730.2±2.48ns 1535.4±8.65ns -11.26%
Dynamic Object Property Access (Execution) 5.4±0.01µs 4.7±0.05µs -12.96%
Dynamic Object Property Access (Parser) 12.0±0.02µs 11.9±0.05µs -0.83%
Fibonacci (Compiler) 2.7±0.01µs 2.7±0.01µs 0.00%
Fibonacci (Execution) 1321.7±2.47µs 1329.3±2.59µs +0.58%
Fibonacci (Parser) 17.8±0.03µs 17.8±0.03µs 0.00%
For loop (Compiler) 2.5±0.01µs 2.5±0.02µs 0.00%
For loop (Execution) 15.8±0.03µs 16.2±0.04µs +2.53%
For loop (Parser) 15.4±0.02µs 15.6±0.04µs +1.30%
Mini js (Compiler) 4.1±0.02µs 4.2±0.01µs +2.44%
Mini js (Execution) 670.2±4.09µs 655.9±2.87µs -2.13%
Mini js (Parser) 28.6±0.02µs 29.0±0.12µs +1.40%
Number Object Access (Compiler) 1086.5±2.00ns 1087.0±6.26ns +0.05%
Number Object Access (Execution) 3.3±0.01µs 3.2±0.01µs -3.03%
Number Object Access (Parser) 12.4±0.02µs 12.5±0.03µs +0.81%
Object Creation (Compiler) 1529.0±4.27ns 1546.4±3.19ns +1.14%
Object Creation (Execution) 5.1±0.02µs 5.0±0.02µs -1.96%
Object Creation (Parser) 10.4±0.02µs 10.4±0.02µs 0.00%
RegExp (Compiler) 1727.6±3.34ns 1757.2±16.28ns +1.71%
RegExp (Execution) 12.0±0.09µs 11.7±0.06µs -2.50%
RegExp (Parser) 11.5±0.03µs 11.4±0.02µs -0.87%
RegExp Creation (Compiler) 1555.0±6.24ns 1586.5±11.78ns +2.03%
RegExp Creation (Execution) 9.2±0.06µs 8.8±0.03µs -4.35%
RegExp Creation (Parser) 9.5±0.02µs 9.4±0.05µs -1.05%
RegExp Literal (Compiler) 1726.8±3.31ns 1756.2±14.40ns +1.70%
RegExp Literal (Execution) 12.0±0.08µs 11.6±0.06µs -3.33%
RegExp Literal (Parser) 9.2±0.01µs 9.2±0.02µs 0.00%
RegExp Literal Creation (Compiler) 1565.9±6.87ns 1584.6±12.89ns +1.19%
RegExp Literal Creation (Execution) 9.2±0.05µs 8.8±0.03µs -4.35%
RegExp Literal Creation (Parser) 7.1±0.01µs 7.1±0.02µs 0.00%
Static Object Property Access (Compiler) 1572.8±6.32ns 1544.7±11.87ns -1.79%
Static Object Property Access (Execution) 5.2±0.02µs 5.2±0.01µs 0.00%
Static Object Property Access (Parser) 11.2±0.02µs 11.0±0.03µs -1.79%
String Object Access (Compiler) 1416.1±3.26ns 1434.6±7.69ns +1.31%
String Object Access (Execution) 6.1±0.02µs 5.9±0.02µs -3.28%
String Object Access (Parser) 15.6±0.02µs 15.5±0.03µs -0.64%
String comparison (Compiler) 2.2±0.01µs 2.3±0.01µs +4.55%
String comparison (Execution) 4.5±0.01µs 4.5±0.01µs 0.00%
String comparison (Parser) 12.0±0.02µs 12.0±0.07µs 0.00%
String concatenation (Compiler) 1725.0±2.74ns 1728.0±9.40ns +0.17%
String concatenation (Execution) 4.3±0.03µs 4.3±0.02µs 0.00%
String concatenation (Parser) 8.4±0.01µs 8.4±0.03µs 0.00%
String copy (Compiler) 1426.0±2.07ns 1426.1±7.59ns +0.01%
String copy (Execution) 4.1±0.02µs 4.0±0.02µs -2.44%
String copy (Parser) 6.4±0.01µs 6.3±0.03µs -1.56%
Symbols (Compiler) 1076.6±2.27ns 1125.2±4.15ns +4.51%
Symbols (Execution) 4.2±0.01µs 4.2±0.01µs 0.00%
Symbols (Parser) 5.0±0.01µs 4.9±0.01µs -2.00%

bors bot pushed a commit that referenced this pull request Jun 13, 2022
This changes the trigger type for PR benchmarks back to the default (`opened`, `synchronize`, `reopened`).  As part of #2114 I added the `labeled` trigger type. This causes the benchmarks to run when the `run-benchmark` label is present and another label is added.
For example in #2116 I added the `run-benchmark` label while creating the PR. The benchmarks then where triggered six times; one for the PR creation (`opened`) and five times for each label that I initially added to the PR.

The only drawback is that the benchmarks are not triggered, when we just add the label, but unfortunately I don't have a clever idea on how to achieve that right now. We will have to add the label and then trigger the run via a `synchronize` (push).
Ok(body) => body,
Err(e) => return context.throw_syntax_error(e),
Err(e) => return context.throw_syntax_error(e.to_string()),
Copy link
Member

Choose a reason for hiding this comment

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

That works too, yes, but my thoughts were more on using the following:

map_err(ToString::to_string)

instead of adding a closure in map_err, but maybe it wasn't possible, due to by value/by reference function signatures.

@raskad
Copy link
Member Author

raskad commented Jun 22, 2022

Rebased.

@github-actions
Copy link

Benchmark for c10876a

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 547.5±0.94ns 536.8±1.60ns -1.95%
Arithmetic operations (Execution) 614.4±0.57ns 629.5±1.08ns +2.46%
Arithmetic operations (Parser) 5.8±0.01µs 5.9±0.01µs +1.72%
Array access (Compiler) 1460.1±2.97ns 1442.9±2.83ns -1.18%
Array access (Execution) 8.1±0.04µs 8.1±0.02µs 0.00%
Array access (Parser) 13.0±0.04µs 13.1±0.02µs +0.77%
Array creation (Compiler) 2.2±0.01µs 2.2±0.01µs 0.00%
Array creation (Execution) 2.4±0.02ms 2.7±0.00ms +12.50%
Array creation (Parser) 14.8±0.03µs 15.3±0.07µs +3.38%
Array pop (Compiler) 4.1±0.01µs 4.2±0.02µs +2.44%
Array pop (Execution) 1126.9±3.18µs 1212.6±5.26µs +7.60%
Array pop (Parser) 144.7±0.77µs 146.0±0.19µs +0.90%
Boolean Object Access (Compiler) 1161.2±2.96ns 1138.0±3.85ns -2.00%
Boolean Object Access (Execution) 4.4±0.03µs 4.2±0.01µs -4.55%
Boolean Object Access (Parser) 15.7±0.03µs 15.8±0.02µs +0.64%
Clean js (Compiler) 4.8±0.01µs 4.7±0.01µs -2.08%
Clean js (Execution) 704.5±4.46µs 726.7±2.42µs +3.15%
Clean js (Parser) 32.4±0.03µs 32.9±0.04µs +1.54%
Create Realm 227.7±0.16ns 237.2±1.77ns +4.17%
Dynamic Object Property Access (Compiler) 1730.7±6.90ns 1727.1±6.38ns -0.21%
Dynamic Object Property Access (Execution) 5.3±0.02µs 5.2±0.01µs -1.89%
Dynamic Object Property Access (Parser) 11.7±0.03µs 11.9±0.02µs +1.71%
Fibonacci (Compiler) 2.7±0.01µs 2.7±0.02µs 0.00%
Fibonacci (Execution) 1312.1±2.61µs 1307.4±14.64µs -0.36%
Fibonacci (Parser) 17.5±0.03µs 17.7±0.02µs +1.14%
For loop (Compiler) 2.5±0.01µs 2.5±0.01µs 0.00%
For loop (Execution) 15.9±0.07µs 16.8±0.04µs +5.66%
For loop (Parser) 15.1±0.02µs 15.6±0.10µs +3.31%
Mini js (Compiler) 4.2±0.01µs 4.1±0.01µs -2.38%
Mini js (Execution) 660.4±4.90µs 674.4±3.04µs +2.12%
Mini js (Parser) 28.3±0.03µs 28.8±0.03µs +1.77%
Number Object Access (Compiler) 1087.8±2.46ns 1074.3±2.74ns -1.24%
Number Object Access (Execution) 3.4±0.03µs 3.2±0.01µs -5.88%
Number Object Access (Parser) 12.1±0.02µs 12.3±0.04µs +1.65%
Object Creation (Compiler) 1531.8±6.42ns 1550.7±6.42ns +1.23%
Object Creation (Execution) 5.0±0.03µs 5.0±0.02µs 0.00%
Object Creation (Parser) 10.1±0.04µs 10.3±0.02µs +1.98%
RegExp (Compiler) 1768.8±15.47ns 1709.9±5.48ns -3.33%
RegExp (Execution) 11.7±0.04µs 11.8±0.07µs +0.85%
RegExp (Parser) 11.1±0.03µs 11.3±0.02µs +1.80%
RegExp Creation (Compiler) 1571.1±14.06ns 1537.8±5.72ns -2.12%
RegExp Creation (Execution) 8.8±0.05µs 8.8±0.04µs 0.00%
RegExp Creation (Parser) 9.2±0.02µs 9.4±0.01µs +2.17%
RegExp Literal (Compiler) 1743.0±16.01ns 1706.6±4.68ns -2.09%
RegExp Literal (Execution) 11.8±0.03µs 11.8±0.06µs 0.00%
RegExp Literal (Parser) 8.9±0.02µs 9.1±0.02µs +2.25%
RegExp Literal Creation (Compiler) 1588.4±12.17ns 1528.7±4.24ns -3.76%
RegExp Literal Creation (Execution) 8.8±0.04µs 8.7±0.03µs -1.14%
RegExp Literal Creation (Parser) 6.9±0.02µs 7.1±0.01µs +2.90%
Static Object Property Access (Compiler) 1567.5±5.37ns 1585.3±9.83ns +1.14%
Static Object Property Access (Execution) 5.1±0.02µs 5.1±0.02µs 0.00%
Static Object Property Access (Parser) 10.9±0.02µs 11.0±0.02µs +0.92%
String Object Access (Compiler) 1440.4±8.92ns 1483.3±11.70ns +2.98%
String Object Access (Execution) 6.3±0.05µs 6.0±0.02µs -4.76%
String Object Access (Parser) 15.3±0.04µs 15.3±0.02µs 0.00%
String comparison (Compiler) 2.2±0.01µs 2.3±0.01µs +4.55%
String comparison (Execution) 4.5±0.01µs 4.5±0.01µs 0.00%
String comparison (Parser) 11.8±0.02µs 12.1±0.06µs +2.54%
String concatenation (Compiler) 1722.3±4.21ns 1743.0±7.45ns +1.20%
String concatenation (Execution) 4.3±0.01µs 4.3±0.01µs 0.00%
String concatenation (Parser) 8.2±0.02µs 8.4±0.02µs +2.44%
String copy (Compiler) 1426.9±2.53ns 1428.4±8.19ns +0.11%
String copy (Execution) 4.0±0.01µs 4.0±0.01µs 0.00%
String copy (Parser) 6.2±0.02µs 6.3±0.03µs +1.61%
Symbols (Compiler) 1074.1±2.23ns 1091.6±5.77ns +1.63%
Symbols (Execution) 4.2±0.01µs 4.2±0.02µs 0.00%
Symbols (Parser) 4.8±0.01µs 4.8±0.02µs 0.00%

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 reviewed it, but I'm not confident enough with the VM. Looks pretty good, but I expect a hit in Parser performance, due to the tree traversal.

I added some comments, mostly related to documentation, but now that I think of it, adding backticks everywhere might not make much sense xD just give it a look and let me know :)

boa_engine/src/syntax/ast/node/declaration/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/syntax/ast/node/declaration/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/syntax/ast/node/super_call/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/syntax/ast/node/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/vm/mod.rs Outdated Show resolved Hide resolved
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.

This Looks good from my side! :)

@Razican
Copy link
Member

Razican commented Jun 30, 2022

bors r+

@bors
Copy link

bors bot commented Jun 30, 2022

🕐 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.

@github-actions
Copy link

Benchmark for 0353c96

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 653.9±1.96ns 667.0±2.41ns +2.00%
Arithmetic operations (Execution) 745.2±0.73ns 736.0±0.82ns -1.23%
Arithmetic operations (Parser) 6.6±0.01µs 6.6±0.01µs 0.00%
Array access (Compiler) 1714.0±8.71ns 1735.8±5.13ns +1.27%
Array access (Execution) 9.7±0.08µs 9.7±0.08µs 0.00%
Array access (Parser) 14.3±0.05µs 14.7±0.03µs +2.80%
Array creation (Compiler) 2.6±0.01µs 2.6±0.01µs 0.00%
Array creation (Execution) 3.2±0.00ms 3.2±0.00ms 0.00%
Array creation (Parser) 16.7±0.03µs 17.0±0.04µs +1.80%
Array pop (Compiler) 5.2±0.01µs 5.0±0.02µs -3.85%
Array pop (Execution) 1439.8±3.13µs 1429.1±5.40µs -0.74%
Array pop (Parser) 162.6±0.33µs 166.5±0.31µs +2.40%
Boolean Object Access (Compiler) 1243.2±5.47ns 1215.8±9.19ns -2.20%
Boolean Object Access (Execution) 5.2±0.01µs 5.0±0.01µs -3.85%
Boolean Object Access (Parser) 17.5±0.03µs 18.1±0.03µs +3.43%
Clean js (Compiler) 5.5±0.02µs 5.4±0.02µs -1.82%
Clean js (Execution) 862.5±5.57µs 877.9±4.70µs +1.79%
Clean js (Parser) 36.2±0.05µs 36.8±0.06µs +1.66%
Create Realm 329.8±0.37ns 280.0±3.04ns -15.10%
Dynamic Object Property Access (Compiler) 2.0±0.00µs 2.0±0.01µs 0.00%
Dynamic Object Property Access (Execution) 6.5±0.05µs 6.4±0.03µs -1.54%
Dynamic Object Property Access (Parser) 12.9±0.06µs 13.3±0.02µs +3.10%
Fibonacci (Compiler) 3.1±0.01µs 3.1±0.01µs 0.00%
Fibonacci (Execution) 1548.6±3.49µs 1589.5±6.72µs +2.64%
Fibonacci (Parser) 19.7±0.03µs 20.0±0.03µs +1.52%
For loop (Compiler) 2.9±0.00µs 2.9±0.01µs 0.00%
For loop (Execution) 19.5±0.11µs 20.2±0.20µs +3.59%
For loop (Parser) 17.3±0.03µs 17.6±0.04µs +1.73%
Mini js (Compiler) 4.9±0.02µs 4.9±0.02µs 0.00%
Mini js (Execution) 814.4±3.72µs 815.3±5.56µs +0.11%
Mini js (Parser) 31.1±0.05µs 31.9±0.05µs +2.57%
Number Object Access (Compiler) 1184.3±5.11ns 1168.9±2.88ns -1.30%
Number Object Access (Execution) 4.0±0.01µs 3.9±0.01µs -2.50%
Number Object Access (Parser) 13.5±0.02µs 14.0±0.01µs +3.70%
Object Creation (Compiler) 1830.8±11.93ns 1808.5±4.57ns -1.22%
Object Creation (Execution) 6.1±0.02µs 6.1±0.04µs 0.00%
Object Creation (Parser) 11.3±0.02µs 11.6±0.03µs +2.65%
RegExp (Compiler) 2.0±0.01µs 2.0±0.01µs 0.00%
RegExp (Execution) 14.2±0.06µs 14.4±0.05µs +1.41%
RegExp (Parser) 12.3±0.03µs 12.6±0.02µs +2.44%
RegExp Creation (Compiler) 1831.7±15.69ns 1816.5±4.93ns -0.83%
RegExp Creation (Execution) 10.9±0.04µs 10.9±0.03µs 0.00%
RegExp Creation (Parser) 10.3±0.03µs 10.6±0.02µs +2.91%
RegExp Literal (Compiler) 2.1±0.02µs 2.0±0.01µs -4.76%
RegExp Literal (Execution) 14.2±0.06µs 14.5±0.05µs +2.11%
RegExp Literal (Parser) 9.9±0.03µs 10.2±0.02µs +3.03%
RegExp Literal Creation (Compiler) 1834.2±13.46ns 1817.9±5.37ns -0.89%
RegExp Literal Creation (Execution) 11.0±0.03µs 11.0±0.03µs 0.00%
RegExp Literal Creation (Parser) 7.7±0.03µs 8.0±0.04µs +3.90%
Static Object Property Access (Compiler) 1842.3±13.11ns 1819.6±5.46ns -1.23%
Static Object Property Access (Execution) 6.3±0.03µs 6.2±0.03µs -1.59%
Static Object Property Access (Parser) 12.0±0.02µs 12.4±0.02µs +3.33%
String Object Access (Compiler) 1606.9±5.26ns 1575.6±10.59ns -1.95%
String Object Access (Execution) 7.5±0.06µs 7.2±0.02µs -4.00%
String Object Access (Parser) 17.2±0.06µs 17.9±0.18µs +4.07%
String comparison (Compiler) 2.7±0.02µs 2.7±0.02µs 0.00%
String comparison (Execution) 5.4±0.02µs 5.5±0.02µs +1.85%
String comparison (Parser) 13.3±0.02µs 13.8±0.07µs +3.76%
String concatenation (Compiler) 2.1±0.01µs 2.1±0.01µs 0.00%
String concatenation (Execution) 5.1±0.02µs 5.2±0.02µs +1.96%
String concatenation (Parser) 9.2±0.01µs 9.5±0.08µs +3.26%
String copy (Compiler) 1690.8±13.70ns 1676.3±5.55ns -0.86%
String copy (Execution) 4.8±0.03µs 4.9±0.03µs +2.08%
String copy (Parser) 6.9±0.15µs 7.1±0.02µs +2.90%
Symbols (Compiler) 1273.3±2.38ns 1296.7±7.59ns +1.84%
Symbols (Execution) 5.0±0.02µs 5.1±0.03µs +2.00%
Symbols (Parser) 5.4±0.02µs 5.4±0.02µs 0.00%

@raskad
Copy link
Member Author

raskad commented Jun 30, 2022

bors r+

bors bot pushed a commit that referenced this pull request Jun 30, 2022
This Pull Request changes the following:

- Implement `super` expression parsing / execution.
- Implement early errors for `super` expressions.
- Refactor / add internal slot representation for environment and function objects.
@bors
Copy link

bors bot commented Jun 30, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Implement super expressions [Merged by Bors] - Implement super expressions Jun 30, 2022
@bors bors bot closed this Jun 30, 2022
@bors bors bot deleted the super branch June 30, 2022 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ast Issue surrounding the abstract syntax tree enhancement New feature or request execution Issues or PRs related to code execution parser Issues surrounding the parser run-benchmark Label used to run banchmarks on PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants