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 Function constructor #2090

Closed
wants to merge 2 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented May 26, 2022

This Pull Request changes the following:

  • Implement Function constructor
  • Ignore non-standard caller feature in 262 tests
  • Fix Function.apply length
  • Use TypeError in Function.caller and Function.arguments accessors

@raskad raskad added enhancement New feature or request builtins PRs and Issues related to builtins/intrinsics labels May 26, 2022
@raskad raskad added this to the v0.15.0 milestone May 26, 2022
@github-actions
Copy link

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 90,265 90,265 0
Passed 54,889 55,212 +323
Ignored 23,351 23,374 +23
Failed 12,025 11,679 -346
Panics 0 0 0
Conformance 60.81% 61.17% +0.36%
Fixed tests (360):
test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js [strict mode] (previously Failed)
test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js (previously Failed)
test/built-ins/ThrowTypeError/distinct-cross-realm.js [strict mode] (previously Failed)
test/built-ins/ThrowTypeError/distinct-cross-realm.js (previously Failed)
test/built-ins/Function/15.3.2.1-10-6gs.js (previously Failed)
test/built-ins/Function/S15.3_A3_T5.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T5.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T2.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T5.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T5.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-54gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-52gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-10gs.js (previously Failed)
test/built-ins/Function/S15.3.5_A2_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.5_A2_T2.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T3.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T3.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T1.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-7gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T6.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T6.js (previously Failed)
test/built-ins/Function/15.3.2.1-11-1-s.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-58gs.js (previously Failed)
test/built-ins/Function/S15.3.1_A1_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.1_A1_T1.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-9gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-26gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-19gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-11gs.js [strict mode] (previously Failed)
test/built-ins/Function/call-bind-this-realm-value.js [strict mode] (previously Failed)
test/built-ins/Function/call-bind-this-realm-value.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-24gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-22gs.js [strict mode] (previously Failed)
test/built-ins/Function/StrictFunction_restricted-properties.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-59gs.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-27gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-1gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-25gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T13.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T13.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-48gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T2.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T6.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T6.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T4.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T4.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T1.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T9.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T9.js (previously Failed)
test/built-ins/Function/S15.3_A3_T3.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T3.js (previously Failed)
test/built-ins/Function/S15.3_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T1.js (previously Failed)
test/built-ins/Function/S15.3_A3_T6.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T6.js (previously Failed)
test/built-ins/Function/private-identifiers-not-empty.js [strict mode] (previously Failed)
test/built-ins/Function/private-identifiers-not-empty.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T1.js (previously Failed)
test/built-ins/Function/StrictFunction_reservedwords_with.js [strict mode] (previously Failed)
test/built-ins/Function/StrictFunction_reservedwords_with.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-21gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-28gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T5.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T5.js (previously Failed)
test/built-ins/Function/S15.3.5_A2_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.5_A2_T1.js (previously Failed)
test/built-ins/Function/15.3.5-1gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T8.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T8.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-13gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.5_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.5_A3_T1.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-15gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-17gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-29gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T10.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T10.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T9.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T9.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-5gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-8gs.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-3gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-23gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5-2gs.js [strict mode] (previously Failed)
test/built-ins/Function/15.3.5.4_2-50gs.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T8.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T8.js (previously Failed)
test/built-ins/Function/proto-from-ctor-realm-prototype.js [strict mode] (previously Failed)
test/built-ins/Function/proto-from-ctor-realm-prototype.js (previously Failed)
test/built-ins/Function/S15.3_A3_T4.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T4.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T6.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A1_T6.js (previously Failed)
test/built-ins/Function/15.3.5.4_2-95gs.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T3.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A2_T3.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T2.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T4.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T4.js (previously Failed)
test/built-ins/Function/S15.3_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3_A3_T2.js (previously Failed)
test/built-ins/Function/15.3.2.1-11-5-s.js (previously Failed)
test/built-ins/Function/15.3.2.1-11-3-s.js (previously Failed)
test/built-ins/Function/S15.3.5_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.5_A3_T2.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T5.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T5.js (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T7.js [strict mode] (previously Failed)
test/built-ins/Function/S15.3.2.1_A3_T7.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T1.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T3.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T3.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T1.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T1.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T3.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T3.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T3.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T3.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T2.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T2.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T2.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T1.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A2_T1.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T3.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A3_T3.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T2.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A4_T2.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T2.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T2.js (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T1.js [strict mode] (previously Failed)
test/built-ins/Function/length/S15.3.5.1_A1_T1.js (previously Failed)
test/built-ins/Function/prototype/S15.3.5.2_A1_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/S15.3.5.2_A1_T1.js (previously Failed)
test/built-ins/Function/prototype/S15.3.5.2_A1_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/S15.3.5.2_A1_T2.js (previously Failed)
test/built-ins/Function/prototype/restricted-property-arguments.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/restricted-property-arguments.js (previously Failed)
test/built-ins/Function/prototype/restricted-property-caller.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/restricted-property-caller.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T1.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T4.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T4.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T3.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T2.js (previously Failed)
test/built-ins/Function/prototype/apply/length.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/length.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T2.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T8.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T8.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T7.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T9.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T9.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T3.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T5.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T5.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T1.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T9.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T5.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T5.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T8.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T8.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T7.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A3_T2.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T4.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T4.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T10.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T10.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T6.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T6.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A7_T1.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A8_T6.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A8_T6.js (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/apply/S15.3.4.3_A5_T7.js (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-20-2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-20-2.js (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-21-3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-21-3.js (previously Failed)
test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js (previously Failed)
test/built-ins/Function/prototype/bind/S15.3.4.5_A1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/S15.3.4.5_A1.js (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-21-2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-21-2.js (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-20-3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/15.3.4.5-20-3.js (previously Failed)
test/built-ins/Function/prototype/bind/S15.3.4.5_A2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/bind/S15.3.4.5_A2.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T3.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A7_T6.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A7_T6.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T1.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T2.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T9.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T9.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T1.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T7.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T7.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T2.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T3.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T3.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T8.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T8.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T5.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T5.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T6.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T6.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T2.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T2.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T10.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T10.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T8.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A5_T8.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T5.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T5.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T4.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T4.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T9.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T7.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T7.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T1.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A3_T1.js (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T4.js [strict mode] (previously Failed)
test/built-ins/Function/prototype/call/S15.3.4.4_A6_T4.js (previously Failed)
test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js [strict mode] (previously Failed)
test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js (previously Failed)
test/built-ins/String/prototype/replace/S15.5.4.11_A1_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/replace/S15.5.4.11_A1_T6.js (previously Failed)
test/built-ins/Object/entries/tamper-with-global-object.js [strict mode] (previously Failed)
test/built-ins/Object/entries/tamper-with-global-object.js (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js [strict mode] (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-187.js (previously Failed)
test/built-ins/Object/values/tamper-with-global-object.js [strict mode] (previously Failed)
test/built-ins/Object/values/tamper-with-global-object.js (previously Failed)
test/built-ins/GeneratorFunction/instance-restricted-properties.js [strict mode] (previously Failed)
test/built-ins/GeneratorFunction/instance-restricted-properties.js (previously Failed)
test/language/directive-prologue/10.1.1-30-s.js (previously Failed)
test/language/directive-prologue/10.1.1-31-s.js (previously Failed)
test/language/directive-prologue/10.1.1-32-s.js (previously Failed)
test/language/expressions/instanceof/S15.3.5.3_A3_T1.js [strict mode] (previously Failed)
test/language/expressions/instanceof/S15.3.5.3_A3_T1.js (previously Failed)
test/language/expressions/instanceof/S15.3.5.3_A2_T5.js [strict mode] (previously Failed)
test/language/expressions/instanceof/S15.3.5.3_A2_T5.js (previously Failed)
test/language/expressions/arrow-function/ArrowFunction_restricted-properties.js [strict mode] (previously Failed)
test/language/expressions/arrow-function/ArrowFunction_restricted-properties.js (previously Failed)
test/language/expressions/this/S11.1.1_A4.1.js [strict mode] (previously Failed)
test/language/expressions/this/S11.1.1_A4.1.js (previously Failed)
test/language/expressions/class/restricted-properties.js [strict mode] (previously Failed)
test/language/expressions/class/restricted-properties.js (previously Failed)
test/language/expressions/import.meta/syntax/goal-function-params-or-body.js [strict mode] (previously Failed)
test/language/expressions/import.meta/syntax/goal-function-params-or-body.js (previously Failed)
test/language/function-code/10.4.3-1-84-s.js (previously Failed)
test/language/function-code/10.4.3-1-83-s.js (previously Failed)
test/language/function-code/10.4.3-1-83gs.js (previously Failed)
test/language/function-code/10.4.3-1-84gs.js (previously Failed)
test/language/statements/with/12.10.1-4-s.js (previously Failed)
test/language/statements/with/12.10.1-8-s.js (previously Failed)
test/language/statements/generators/restricted-properties.js [strict mode] (previously Failed)
test/language/statements/generators/restricted-properties.js (previously Failed)
test/language/statements/function/13.2-17-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-17-s.js (previously Failed)
test/language/statements/function/13.2-19-b-3gs.js [strict mode] (previously Failed)
test/language/statements/function/13.2-22-s.js (previously Failed)
test/language/statements/function/13.2-9-s.js (previously Failed)
test/language/statements/function/13.2-6-s.js (previously Failed)
test/language/statements/function/13.2-4-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-18-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-18-s.js (previously Failed)
test/language/statements/function/13.2-30-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-30-s.js (previously Failed)
test/language/statements/function/13.0-14-s.js (previously Failed)
test/language/statements/function/13.2-14-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-14-s.js (previously Failed)
test/language/statements/function/13.2-21-s.js (previously Failed)
test/language/statements/function/S13.2.2_A8_T3.js [strict mode] (previously Failed)
test/language/statements/function/S13.2.2_A8_T3.js (previously Failed)
test/language/statements/function/13.2-13-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-13-s.js (previously Failed)
test/language/statements/function/13.0-13-s.js (previously Failed)
test/language/statements/function/13.2-10-s.js [strict mode] (previously Failed)
test/language/statements/function/13.2-10-s.js (previously Failed)
test/language/statements/function/13.2-5-s.js (previously Failed)
test/language/statements/function/13.2-25-s.js (previously Failed)
test/language/statements/function/13.2-26-s.js (previously Failed)
test/language/statements/function/13.2-2-s.js [strict mode] (previously Failed)
test/language/statements/class/restricted-properties.js [strict mode] (previously Failed)
test/language/statements/class/restricted-properties.js (previously Failed)
test/language/statements/class/definition/methods-restricted-properties.js [strict mode] (previously Failed)
test/language/statements/class/definition/methods-restricted-properties.js (previously Failed)
test/harness/fnGlobalObject.js [strict mode] (previously Failed)
test/harness/fnGlobalObject.js (previously Failed)
test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-params.js [strict mode] (previously Failed)
test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-params.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-update.js (previously Failed)
test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-a-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-stmt-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/if-decl-else-decl-b-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/block-decl-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/if-stmt-else-decl-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/switch-case-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/switch-dflt-global-existing-non-enumerable-global-init.js (previously Failed)
test/annexB/language/global-code/if-decl-no-else-global-existing-non-enumerable-global-init.js (previously Failed)
Broken tests (14):
test/built-ins/Function/S15.3.2.1_A1_T7.js [strict mode] (previously Passed)
test/built-ins/Function/S15.3.2.1_A1_T7.js (previously Passed)
test/built-ins/Function/prototype/toString/built-in-function-object.js [strict mode] (previously Passed)
test/built-ins/Function/prototype/toString/built-in-function-object.js (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-close-comment-body.js [strict mode] (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-close-comment-body.js (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-open-comment-body.js [strict mode] (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-open-comment-body.js (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-close-comment-params.js [strict mode] (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-close-comment-params.js (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-open-comment-params.js [strict mode] (previously Passed)
test/annexB/built-ins/Function/createdynfn-html-open-comment-params.js (previously Passed)
test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-body.js [strict mode] (previously Passed)
test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-body.js (previously Passed)

@codecov
Copy link

codecov bot commented May 26, 2022

Codecov Report

Merging #2090 (40ef642) into main (55060c6) will decrease coverage by 0.06%.
The diff coverage is 11.49%.

@@            Coverage Diff             @@
##             main    #2090      +/-   ##
==========================================
- Coverage   43.86%   43.79%   -0.07%     
==========================================
  Files         216      216              
  Lines       19575    19626      +51     
==========================================
+ Hits         8586     8595       +9     
- Misses      10989    11031      +42     
Impacted Files Coverage Δ
boa_engine/src/builtins/error/type.rs 94.73% <ø> (ø)
boa_engine/src/syntax/parser/mod.rs 36.76% <0.00%> (-2.30%) ⬇️
boa_engine/src/builtins/function/mod.rs 24.34% <9.75%> (-4.87%) ⬇️
boa_engine/src/bytecompiler.rs 31.73% <14.28%> (-0.02%) ⬇️
boa_engine/src/object/mod.rs 20.48% <0.00%> (+0.37%) ⬆️

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 55060c6...40ef642. Read the comment docs.

@github-actions
Copy link

Benchmark for 46ed152

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 534.9±0.75ns 558.8±5.87ns +4.47%
Arithmetic operations (Execution) 648.7±6.95ns 663.5±0.74ns +2.28%
Arithmetic operations (Parser) 5.8±0.01µs 5.9±0.01µs +1.72%
Array access (Compiler) 1424.5±3.06ns 1515.0±17.27ns +6.35%
Array access (Execution) 8.2±0.04µs 8.1±0.03µs -1.22%
Array access (Parser) 13.2±0.02µs 13.2±0.02µs 0.00%
Array creation (Compiler) 2.2±0.01µs 2.3±0.01µs +4.55%
Array creation (Execution) 2.5±0.00ms 2.6±0.00ms +4.00%
Array creation (Parser) 15.3±0.09µs 15.5±0.03µs +1.31%
Array pop (Compiler) 4.1±0.01µs 4.3±0.02µs +4.88%
Array pop (Execution) 1145.2±3.35µs 1189.5±3.44µs +3.87%
Array pop (Parser) 146.4±0.20µs 150.6±0.24µs +2.87%
Boolean Object Access (Compiler) 1142.3±5.07ns 1152.9±4.74ns +0.93%
Boolean Object Access (Execution) 4.1±0.01µs 4.2±0.01µs +2.44%
Boolean Object Access (Parser) 15.8±0.01µs 16.0±0.02µs +1.27%
Clean js (Compiler) 4.6±0.01µs 4.7±0.00µs +2.17%
Clean js (Execution) 702.8±5.15µs 710.1±2.91µs +1.04%
Clean js (Parser) 33.3±0.03µs 33.6±0.10µs +0.90%
Create Realm 229.4±0.17ns 223.3±0.24ns -2.66%
Dynamic Object Property Access (Compiler) 1686.3±4.91ns 1773.4±5.30ns +5.17%
Dynamic Object Property Access (Execution) 5.4±0.01µs 5.4±0.02µs 0.00%
Dynamic Object Property Access (Parser) 11.9±0.02µs 11.9±0.02µs 0.00%
Fibonacci (Compiler) 2.6±0.01µs 2.8±0.00µs +7.69%
Fibonacci (Execution) 1329.5±3.95µs 1293.3±3.10µs -2.72%
Fibonacci (Parser) 18.1±0.04µs 18.2±0.03µs +0.55%
For loop (Compiler) 2.5±0.01µs 2.5±0.01µs 0.00%
For loop (Execution) 16.1±0.03µs 15.8±0.02µs -1.86%
For loop (Parser) 15.7±0.02µs 15.9±0.04µs +1.27%
Mini js (Compiler) 4.1±0.01µs 4.2±0.02µs +2.44%
Mini js (Execution) 661.2±5.62µs 665.9±3.97µs +0.71%
Mini js (Parser) 29.0±0.13µs 29.3±0.06µs +1.03%
Number Object Access (Compiler) 1100.1±1.33ns 1100.6±1.58ns +0.05%
Number Object Access (Execution) 3.2±0.01µs 3.2±0.02µs 0.00%
Number Object Access (Parser) 12.2±0.05µs 12.5±0.01µs +2.46%
Object Creation (Compiler) 1459.8±2.45ns 1572.7±6.30ns +7.73%
Object Creation (Execution) 5.1±0.01µs 4.9±0.02µs -3.92%
Object Creation (Parser) 10.4±0.02µs 10.3±0.02µs -0.96%
RegExp (Compiler) 1685.6±7.16ns 1765.1±3.08ns +4.72%
RegExp (Execution) 11.8±0.07µs 12.2±0.06µs +3.39%
RegExp (Parser) 11.4±0.02µs 11.4±0.03µs 0.00%
RegExp Creation (Compiler) 1499.5±2.86ns 1557.0±5.56ns +3.83%
RegExp Creation (Execution) 8.8±0.11µs 9.2±0.04µs +4.55%
RegExp Creation (Parser) 9.6±0.02µs 9.5±0.02µs -1.04%
RegExp Literal (Compiler) 1671.5±5.03ns 1767.8±4.07ns +5.76%
RegExp Literal (Execution) 11.7±0.08µs 12.3±0.08µs +5.13%
RegExp Literal (Parser) 9.2±0.02µs 9.2±0.05µs 0.00%
RegExp Literal Creation (Compiler) 1502.6±2.98ns 1592.2±6.85ns +5.96%
RegExp Literal Creation (Execution) 8.8±0.03µs 9.2±0.05µs +4.55%
RegExp Literal Creation (Parser) 7.2±0.01µs 7.2±0.03µs 0.00%
Static Object Property Access (Compiler) 1502.6±3.26ns 1611.8±4.56ns +7.27%
Static Object Property Access (Execution) 5.3±0.01µs 5.2±0.01µs -1.89%
Static Object Property Access (Parser) 11.1±0.02µs 11.1±0.03µs 0.00%
String Object Access (Compiler) 1446.2±4.35ns 1443.9±3.33ns -0.16%
String Object Access (Execution) 6.0±0.03µs 6.0±0.02µs 0.00%
String Object Access (Parser) 15.5±0.02µs 15.7±0.02µs +1.29%
String comparison (Compiler) 2.2±0.01µs 2.3±0.01µs +4.55%
String comparison (Execution) 4.5±0.01µs 4.6±0.01µs +2.22%
String comparison (Parser) 12.4±0.06µs 12.5±0.03µs +0.81%
String concatenation (Compiler) 1697.5±3.90ns 1757.5±2.47ns +3.53%
String concatenation (Execution) 4.3±0.01µs 4.3±0.01µs 0.00%
String concatenation (Parser) 8.5±0.03µs 8.5±0.03µs 0.00%
String copy (Compiler) 1395.3±3.07ns 1467.1±5.11ns +5.15%
String copy (Execution) 4.0±0.01µs 4.1±0.01µs +2.50%
String copy (Parser) 6.5±0.01µs 6.4±0.01µs -1.54%
Symbols (Compiler) 1053.3±2.81ns 1093.5±2.33ns +3.82%
Symbols (Execution) 4.2±0.01µs 4.1±0.02µs -2.38%
Symbols (Parser) 5.1±0.01µs 5.0±0.01µs -1.96%

Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

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

Looks very good! I added some suggestions :)

boa_engine/src/builtins/function/mod.rs Outdated Show resolved Hide resolved
boa_engine/src/bytecompiler.rs Show resolved Hide resolved
@github-actions
Copy link

Benchmark for 018afd9

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 542.2±0.75ns 591.1±1.45ns +9.02%
Arithmetic operations (Execution) 649.4±0.71ns 667.0±0.55ns +2.71%
Arithmetic operations (Parser) 5.9±0.01µs 5.9±0.01µs 0.00%
Array access (Compiler) 1446.3±3.27ns 1500.8±9.99ns +3.77%
Array access (Execution) 8.2±0.03µs 8.2±0.03µs 0.00%
Array access (Parser) 13.2±0.02µs 13.2±0.02µs 0.00%
Array creation (Compiler) 2.2±0.01µs 2.2±0.01µs 0.00%
Array creation (Execution) 2.5±0.00ms 2.6±0.00ms +4.00%
Array creation (Parser) 15.3±0.02µs 15.3±0.02µs 0.00%
Array pop (Compiler) 4.1±0.01µs 4.3±0.01µs +4.88%
Array pop (Execution) 1142.2±3.08µs 1191.8±4.67µs +4.34%
Array pop (Parser) 146.3±0.15µs 149.6±0.18µs +2.26%
Boolean Object Access (Compiler) 1148.8±3.51ns 1180.3±6.27ns +2.74%
Boolean Object Access (Execution) 4.2±0.01µs 4.2±0.00µs 0.00%
Boolean Object Access (Parser) 15.9±0.01µs 16.1±0.01µs +1.26%
Clean js (Compiler) 4.7±0.01µs 4.7±0.01µs 0.00%
Clean js (Execution) 706.4±3.26µs 705.4±3.33µs -0.14%
Clean js (Parser) 33.3±0.05µs 33.4±0.05µs +0.30%
Create Realm 253.3±2.67ns 222.4±0.57ns -12.20%
Dynamic Object Property Access (Compiler) 1692.0±7.96ns 1789.8±6.19ns +5.78%
Dynamic Object Property Access (Execution) 5.4±0.01µs 5.3±0.01µs -1.85%
Dynamic Object Property Access (Parser) 12.0±0.02µs 11.9±0.03µs -0.83%
Fibonacci (Compiler) 2.6±0.01µs 2.7±0.01µs +3.85%
Fibonacci (Execution) 1330.3±3.72µs 1301.3±2.59µs -2.18%
Fibonacci (Parser) 18.1±0.02µs 18.0±0.03µs -0.55%
For loop (Compiler) 2.5±0.00µs 2.5±0.01µs 0.00%
For loop (Execution) 15.9±0.03µs 16.0±0.02µs +0.63%
For loop (Parser) 15.6±0.02µs 15.7±0.03µs +0.64%
Mini js (Compiler) 4.0±0.01µs 4.1±0.02µs +2.50%
Mini js (Execution) 660.8±3.69µs 663.8±2.94µs +0.45%
Mini js (Parser) 28.9±0.03µs 29.2±0.04µs +1.04%
Number Object Access (Compiler) 1078.8±1.87ns 1101.2±1.83ns +2.08%
Number Object Access (Execution) 3.2±0.01µs 3.2±0.01µs 0.00%
Number Object Access (Parser) 12.3±0.02µs 12.6±0.02µs +2.44%
Object Creation (Compiler) 1481.0±4.26ns 1566.6±4.42ns +5.78%
Object Creation (Execution) 5.1±0.01µs 5.0±0.01µs -1.96%
Object Creation (Parser) 10.5±0.01µs 10.4±0.02µs -0.95%
RegExp (Compiler) 1688.4±3.68ns 1748.5±22.62ns +3.56%
RegExp (Execution) 11.8±0.06µs 11.8±0.06µs 0.00%
RegExp (Parser) 11.4±0.02µs 11.4±0.01µs 0.00%
RegExp Creation (Compiler) 1521.7±3.46ns 1593.2±18.39ns +4.70%
RegExp Creation (Execution) 8.9±0.04µs 8.8±0.04µs -1.12%
RegExp Creation (Parser) 9.6±0.02µs 9.5±0.02µs -1.04%
RegExp Literal (Compiler) 1690.3±3.26ns 1724.0±2.65ns +1.99%
RegExp Literal (Execution) 11.8±0.07µs 11.9±0.06µs +0.85%
RegExp Literal (Parser) 9.2±0.02µs 9.1±0.01µs -1.09%
RegExp Literal Creation (Compiler) 1507.3±1.14ns 1580.6±6.84ns +4.86%
RegExp Literal Creation (Execution) 8.8±0.04µs 8.8±0.04µs 0.00%
RegExp Literal Creation (Parser) 7.3±0.03µs 7.2±0.01µs -1.37%
Static Object Property Access (Compiler) 1513.4±2.33ns 1603.8±5.74ns +5.97%
Static Object Property Access (Execution) 5.2±0.01µs 5.2±0.01µs 0.00%
Static Object Property Access (Parser) 11.2±0.02µs 11.1±0.02µs -0.89%
String Object Access (Compiler) 1413.1±3.56ns 1452.2±3.20ns +2.77%
String Object Access (Execution) 6.0±0.02µs 6.0±0.02µs 0.00%
String Object Access (Parser) 15.5±0.15µs 15.8±0.14µs +1.94%
String comparison (Compiler) 2.2±0.01µs 2.3±0.02µs +4.55%
String comparison (Execution) 4.6±0.01µs 4.6±0.01µs 0.00%
String comparison (Parser) 12.3±0.02µs 12.6±0.02µs +2.44%
String concatenation (Compiler) 1720.8±2.57ns 1768.8±2.21ns +2.79%
String concatenation (Execution) 4.4±0.01µs 4.4±0.01µs 0.00%
String concatenation (Parser) 8.5±0.01µs 8.6±0.02µs +1.18%
String copy (Compiler) 1411.8±3.64ns 1443.6±3.06ns +2.25%
String copy (Execution) 4.1±0.02µs 4.2±0.02µs +2.44%
String copy (Parser) 6.5±0.02µs 6.5±0.01µs 0.00%
Symbols (Compiler) 1058.7±3.97ns 1109.3±3.19ns +4.78%
Symbols (Execution) 4.2±0.02µs 4.2±0.01µs 0.00%
Symbols (Parser) 5.0±0.01µs 5.0±0.02µs 0.00%

@Razican
Copy link
Member

Razican commented Jun 1, 2022

bors r+

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

- Implement `Function` constructor
- Ignore non-standard `caller` feature in 262 tests
- Fix `Function.apply` length
- Use `TypeError` in `Function.caller` and `Function.arguments` accessors
@bors
Copy link

bors bot commented Jun 1, 2022

Pull request successfully merged into main.

Build succeeded:

1 similar comment
@bors
Copy link

bors bot commented Jun 1, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Implement Function constructor [Merged by Bors] - Implement Function constructor Jun 1, 2022
@bors bors bot closed this Jun 1, 2022
@bors bors bot deleted the implement-function-constructor branch June 1, 2022 17:07
Razican pushed a commit that referenced this pull request Jun 8, 2022
This Pull Request changes the following:

- Implement `Function` constructor
- Ignore non-standard `caller` feature in 262 tests
- Fix `Function.apply` length
- Use `TypeError` in `Function.caller` and `Function.arguments` accessors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builtins PRs and Issues related to builtins/intrinsics enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants