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] - Allow PropertyNames in BindingPropertyin ObjectBindingPattern #2022

Closed
wants to merge 2 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Apr 9, 2022

This Pull Request changes the following:

  • Allow PropertyNames in BindingPropertyin ObjectBindingPattern. Previously only BindingIdentifiers where allowed.

@raskad raskad added enhancement New feature or request parser Issues surrounding the parser vm Issues and PRs related to the Boa Virtual Machine. labels Apr 9, 2022
@raskad raskad added this to the v0.15.0 milestone Apr 9, 2022
@github-actions
Copy link

github-actions bot commented Apr 9, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 88,650 88,650 0
Passed 50,750 50,884 +134
Ignored 21,711 21,711 0
Failed 16,189 16,055 -134
Panics 0 0 0
Conformance 57.25% 57.40% +0.15%
Fixed tests (134):
test/language/statements/try/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/try/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/try/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/const-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for/dstr/var-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for/dstr/var-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for/dstr/let-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/const/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/const/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/const/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/function/dstr/dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/function/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/variable/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/variable/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/let/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/let/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/let/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/const-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for-of/dstr/var-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/var-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/for-of/dstr/let-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/gen-meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/gen-meth-static-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-static-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/private-meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/private-meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/private-meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/private-meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/gen-meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/meth-static-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-static-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/statements/class/dstr/gen-meth-static-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/gen-meth-static-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/class/dstr/meth-static-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/class/dstr/meth-static-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/statements/generators/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/object/literal-property-name-bigint.js [strict mode] (previously Failed)
test/language/expressions/object/literal-property-name-bigint.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/object/dstr/gen-meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/function/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/private-meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/private-meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/private-meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/private-meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/meth-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/meth-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/meth-static-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-static-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/meth-static-ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-static-ary-ptrn-rest-obj-prop-id.js (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/gen-meth-static-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/class/dstr/meth-static-dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/class/dstr/meth-static-dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-eval-err.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/dflt-obj-ptrn-prop-eval-err.js (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-obj-prop-id.js [strict mode] (previously Failed)
test/language/expressions/generators/dstr/ary-ptrn-rest-obj-prop-id.js (previously Failed)

@codecov
Copy link

codecov bot commented Apr 9, 2022

Codecov Report

Merging #2022 (f1912c5) into main (a1b5191) will increase coverage by 0.45%.
The diff coverage is 32.30%.

@@            Coverage Diff             @@
##             main    #2022      +/-   ##
==========================================
+ Coverage   43.99%   44.44%   +0.45%     
==========================================
  Files         211      210       -1     
  Lines       18665    18490     -175     
==========================================
+ Hits         8211     8218       +7     
+ Misses      10454    10272     -182     
Impacted Files Coverage Δ
..._engine/src/syntax/ast/node/operator/assign/mod.rs 25.53% <ø> (+0.53%) ⬆️
boa_engine/src/bytecompiler.rs 30.34% <18.75%> (-0.15%) ⬇️
boa_engine/src/syntax/parser/statement/mod.rs 29.27% <32.43%> (+0.23%) ⬆️
boa_engine/src/syntax/ast/node/declaration/mod.rs 50.00% <50.00%> (-0.32%) ⬇️
boa_wasm/src/lib.rs
boa_engine/src/builtins/typed_array/mod.rs 3.66% <0.00%> (+<0.01%) ⬆️
.../statement/declaration/hoistable/class_decl/mod.rs 25.26% <0.00%> (+0.07%) ⬆️
boa_engine/src/object/mod.rs 21.11% <0.00%> (+0.11%) ⬆️
...arser/expression/primary/object_initializer/mod.rs 39.07% <0.00%> (+0.11%) ⬆️
... and 54 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 a1b5191...f1912c5. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Apr 9, 2022

Benchmark for 6b5fdcd

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 460.2±0.69ns 450.7±0.73ns -2.06%
Arithmetic operations (Execution) 589.2±1.02ns 563.5±0.44ns -4.36%
Arithmetic operations (Parser) 5.1±0.00µs 5.9±0.01µs +15.69%
Array access (Compiler) 1145.1±5.96ns 1260.8±4.40ns +10.10%
Array access (Execution) 6.9±0.02µs 7.0±0.02µs +1.45%
Array access (Parser) 11.3±0.01µs 12.9±0.13µs +14.16%
Array creation (Compiler) 1590.5±2.69ns 1797.2±5.53ns +13.00%
Array creation (Execution) 2.3±0.00ms 2.3±0.00ms 0.00%
Array creation (Parser) 12.9±0.13µs 14.7±0.02µs +13.95%
Array pop (Compiler) 3.3±0.01µs 3.7±0.01µs +12.12%
Array pop (Execution) 998.6±3.00µs 996.8±3.62µs -0.18%
Array pop (Parser) 127.0±0.15µs 145.1±0.12µs +14.25%
Boolean Object Access (Compiler) 926.8±2.35ns 925.9±1.78ns -0.10%
Boolean Object Access (Execution) 3.7±0.04µs 3.7±0.05µs 0.00%
Boolean Object Access (Parser) 13.6±0.01µs 15.3±0.01µs +12.50%
Clean js (Compiler) 3.0±0.01µs 2.9±0.02µs -3.33%
Clean js (Execution) 612.8±4.96µs 639.2±3.64µs +4.31%
Clean js (Parser) 28.1±0.06µs 31.4±0.04µs +11.74%
Create Realm 248.0±0.19ns 295.5±0.19ns +19.15%
Dynamic Object Property Access (Compiler) 1472.4±4.77ns 1614.6±9.43ns +9.66%
Dynamic Object Property Access (Execution) 4.8±0.02µs 4.8±0.02µs 0.00%
Dynamic Object Property Access (Parser) 11.7±0.11µs 11.5±0.02µs -1.71%
Fibonacci (Compiler) 2.0±0.00µs 2.3±0.01µs +15.00%
Fibonacci (Execution) 1181.3±2.09µs 1182.3±3.94µs +0.08%
Fibonacci (Parser) 15.6±0.03µs 17.5±0.02µs +12.18%
For loop (Compiler) 1724.5±4.17ns 1949.3±6.75ns +13.04%
For loop (Execution) 13.6±0.03µs 13.3±0.03µs -2.21%
For loop (Parser) 13.2±0.02µs 14.9±0.03µs +12.88%
Mini js (Compiler) 2.9±0.01µs 2.8±0.01µs -3.45%
Mini js (Execution) 579.9±2.90µs 600.6±4.87µs +3.57%
Mini js (Parser) 24.7±0.03µs 27.7±0.04µs +12.15%
Number Object Access (Compiler) 903.3±3.44ns 893.4±2.80ns -1.10%
Number Object Access (Execution) 2.9±0.01µs 2.9±0.01µs 0.00%
Number Object Access (Parser) 10.7±0.04µs 11.8±0.01µs +10.28%
Object Creation (Compiler) 1251.6±3.26ns 1381.4±3.88ns +10.37%
Object Creation (Execution) 4.5±0.02µs 5.1±0.02µs +13.33%
Object Creation (Parser) 8.8±0.02µs 10.0±0.01µs +13.64%
RegExp (Compiler) 1480.2±4.27ns 1624.5±5.71ns +9.75%
RegExp (Execution) 10.3±0.03µs 10.0±0.03µs -2.91%
RegExp (Parser) 9.7±0.02µs 11.0±0.02µs +13.40%
RegExp Creation (Compiler) 1412.0±1.89ns 1406.6±19.21ns -0.38%
RegExp Creation (Execution) 7.7±0.02µs 7.5±0.02µs -2.60%
RegExp Creation (Parser) 9.1±0.01µs 9.1±0.05µs 0.00%
RegExp Literal (Compiler) 1440.0±3.03ns 1616.8±10.91ns +12.28%
RegExp Literal (Execution) 10.4±0.11µs 10.0±0.04µs -3.85%
RegExp Literal (Parser) 7.8±0.01µs 9.0±0.02µs +15.38%
RegExp Literal Creation (Compiler) 1403.8±2.28ns 1399.4±3.10ns -0.31%
RegExp Literal Creation (Execution) 7.8±0.02µs 7.5±0.02µs -3.85%
RegExp Literal Creation (Parser) 6.1±0.05µs 7.1±0.03µs +16.39%
Static Object Property Access (Compiler) 1244.1±2.22ns 1403.6±2.42ns +12.82%
Static Object Property Access (Execution) 4.6±0.02µs 5.3±0.01µs +15.22%
Static Object Property Access (Parser) 10.7±0.03µs 10.7±0.01µs 0.00%
String Object Access (Compiler) 1254.7±2.72ns 1242.8±3.67ns -0.95%
String Object Access (Execution) 6.0±0.03µs 5.4±0.01µs -10.00%
String Object Access (Parser) 13.4±0.02µs 15.0±0.01µs +11.94%
String comparison (Compiler) 2.1±0.00µs 1813.8±5.88ns -13.63%
String comparison (Execution) 4.0±0.01µs 4.1±0.01µs +2.50%
String comparison (Parser) 11.9±0.03µs 11.9±0.02µs 0.00%
String concatenation (Compiler) 1637.9±2.77ns 1644.8±7.10ns +0.42%
String concatenation (Execution) 3.8±0.02µs 3.9±0.02µs +2.63%
String concatenation (Parser) 7.3±0.02µs 8.2±0.02µs +12.33%
String copy (Compiler) 1301.8±3.65ns 1140.0±4.10ns -12.43%
String copy (Execution) 3.6±0.01µs 3.7±0.01µs +2.78%
String copy (Parser) 5.4±0.02µs 6.1±0.02µs +12.96%
Symbols (Compiler) 816.3±1.99ns 901.4±5.15ns +10.43%
Symbols (Execution) 3.7±0.01µs 3.7±0.01µs 0.00%
Symbols (Parser) 4.1±0.01µs 4.7±0.01µs +14.63%

@github-actions
Copy link

github-actions bot commented Apr 9, 2022

Benchmark for 1867ad3

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 622.9±6.14ns 627.3±7.55ns +0.71%
Arithmetic operations (Execution) 801.2±0.89ns 781.3±5.44ns -2.48%
Arithmetic operations (Parser) 6.3±0.09µs 6.4±0.10µs +1.59%
Array access (Compiler) 1504.8±22.20ns 1562.5±26.13ns +3.83%
Array access (Execution) 9.1±0.14µs 9.4±0.14µs +3.30%
Array access (Parser) 14.0±0.16µs 13.7±0.22µs -2.14%
Array creation (Compiler) 2.1±0.03µs 2.2±0.03µs +4.76%
Array creation (Execution) 3.1±0.01ms 3.2±0.03ms +3.23%
Array creation (Parser) 16.1±0.19µs 16.1±0.11µs 0.00%
Array pop (Compiler) 4.5±0.05µs 4.8±0.07µs +6.67%
Array pop (Execution) 1359.5±8.57µs 1393.8±10.05µs +2.52%
Array pop (Parser) 161.6±2.25µs 163.5±3.78µs +1.18%
Boolean Object Access (Compiler) 1135.5±9.91ns 1126.3±9.46ns -0.81%
Boolean Object Access (Execution) 4.9±0.06µs 5.1±0.03µs +4.08%
Boolean Object Access (Parser) 17.3±0.14µs 16.8±0.26µs -2.89%
Clean js (Compiler) 4.0±0.03µs 4.0±0.04µs 0.00%
Clean js (Execution) 820.5±9.87µs 867.3±7.94µs +5.70%
Clean js (Parser) 34.4±0.50µs 34.5±0.43µs +0.29%
Create Realm 335.2±3.83ns 333.6±5.83ns -0.48%
Dynamic Object Property Access (Compiler) 1890.4±28.88ns 1946.4±36.86ns +2.96%
Dynamic Object Property Access (Execution) 6.4±0.06µs 6.6±0.06µs +3.12%
Dynamic Object Property Access (Parser) 12.7±0.16µs 12.3±0.16µs -3.15%
Fibonacci (Compiler) 2.7±0.05µs 2.8±0.05µs +3.70%
Fibonacci (Execution) 1578.4±10.03µs 1610.5±13.82µs +2.03%
Fibonacci (Parser) 19.5±0.23µs 19.4±0.16µs -0.51%
For loop (Compiler) 2.3±0.03µs 2.4±0.04µs +4.35%
For loop (Execution) 18.4±0.20µs 18.1±0.30µs -1.63%
For loop (Parser) 16.7±0.21µs 16.2±0.22µs -2.99%
Mini js (Compiler) 3.9±0.04µs 3.9±0.05µs 0.00%
Mini js (Execution) 781.8±9.17µs 811.7±11.44µs +3.82%
Mini js (Parser) 30.2±0.54µs 30.1±0.44µs -0.33%
Number Object Access (Compiler) 1105.1±8.48ns 1090.5±12.18ns -1.32%
Number Object Access (Execution) 3.8±0.03µs 3.9±0.04µs +2.63%
Number Object Access (Parser) 13.4±0.17µs 13.0±0.20µs -2.99%
Object Creation (Compiler) 1665.5±21.84ns 1654.8±19.67ns -0.64%
Object Creation (Execution) 6.1±0.03µs 6.2±0.05µs +1.64%
Object Creation (Parser) 11.0±0.12µs 11.0±0.15µs 0.00%
RegExp (Compiler) 1942.4±6.43ns 2.0±0.03µs +2.97%
RegExp (Execution) 13.6±0.13µs 13.4±0.16µs -1.47%
RegExp (Parser) 12.0±0.15µs 11.7±0.14µs -2.50%
RegExp Creation (Compiler) 1663.6±26.79ns 1747.1±26.39ns +5.02%
RegExp Creation (Execution) 10.5±0.08µs 10.2±0.10µs -2.86%
RegExp Creation (Parser) 10.0±0.14µs 9.9±0.10µs -1.00%
RegExp Literal (Compiler) 1932.5±23.86ns 2.0±0.04µs +3.49%
RegExp Literal (Execution) 13.5±0.16µs 13.6±0.05µs +0.74%
RegExp Literal (Parser) 9.6±0.10µs 9.5±0.15µs -1.04%
RegExp Literal Creation (Compiler) 1682.7±11.96ns 1806.3±42.53ns +7.35%
RegExp Literal Creation (Execution) 10.4±0.09µs 10.1±0.11µs -2.88%
RegExp Literal Creation (Parser) 7.5±0.10µs 7.5±0.08µs 0.00%
Static Object Property Access (Compiler) 1684.9±28.96ns 1733.1±22.05ns +2.86%
Static Object Property Access (Execution) 6.2±0.06µs 6.4±0.04µs +3.23%
Static Object Property Access (Parser) 11.8±0.12µs 11.7±0.07µs -0.85%
String Object Access (Compiler) 1593.5±16.07ns 1636.1±7.83ns +2.67%
String Object Access (Execution) 7.0±0.09µs 7.4±0.06µs +5.71%
String Object Access (Parser) 17.0±0.19µs 16.7±0.21µs -1.76%
String comparison (Compiler) 2.5±0.03µs 2.7±0.04µs +8.00%
String comparison (Execution) 5.4±0.05µs 5.6±0.06µs +3.70%
String comparison (Parser) 13.2±0.15µs 13.0±0.23µs -1.52%
String concatenation (Compiler) 2.0±0.02µs 2.1±0.03µs +5.00%
String concatenation (Execution) 5.2±0.07µs 5.3±0.07µs +1.92%
String concatenation (Parser) 9.0±0.06µs 8.8±0.14µs -2.22%
String copy (Compiler) 1563.0±18.15ns 1638.4±18.87ns +4.82%
String copy (Execution) 4.9±0.03µs 5.0±0.06µs +2.04%
String copy (Parser) 6.6±0.07µs 6.6±0.02µs 0.00%
Symbols (Compiler) 1099.0±12.34ns 1112.2±18.09ns +1.20%
Symbols (Execution) 5.0±0.04µs 5.1±0.05µs +2.00%
Symbols (Parser) 5.1±0.07µs 5.0±0.05µs -1.96%

Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

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

Looks good to me! :)

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 good to me!

@Razican
Copy link
Member

Razican commented Apr 9, 2022

bors r+

bors bot pushed a commit that referenced this pull request Apr 9, 2022
…2022)

This Pull Request changes the following:

- Allow `PropertyName`s in `BindingProperty`in `ObjectBindingPattern`. Previously only `BindingIdentifier`s where allowed.
@bors
Copy link

bors bot commented Apr 9, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Allow PropertyNames in BindingPropertyin ObjectBindingPattern [Merged by Bors] - Allow PropertyNames in BindingPropertyin ObjectBindingPattern Apr 9, 2022
@bors bors bot closed this Apr 9, 2022
@bors bors bot deleted the dstr-object-binding-property-name branch April 9, 2022 15:13
Razican pushed a commit that referenced this pull request Jun 8, 2022
…2022)

This Pull Request changes the following:

- Allow `PropertyName`s in `BindingProperty`in `ObjectBindingPattern`. Previously only `BindingIdentifier`s where allowed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request parser Issues surrounding the parser vm Issues and PRs related to the Boa Virtual Machine.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants