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] - Feature JsTypedArrays #2003

Closed
wants to merge 2 commits into from
Closed

Conversation

HalidOdat
Copy link
Member

This PR adds a wrapper around the raw builtins for JavaScript typed arrays, like #1746

@HalidOdat HalidOdat added enhancement New feature or request API labels Apr 3, 2022
@HalidOdat HalidOdat added this to the v0.15.0 milestone Apr 3, 2022
@codecov
Copy link

codecov bot commented Apr 3, 2022

Codecov Report

Merging #2003 (0d520b8) into main (aeb5460) will decrease coverage by 0.05%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #2003      +/-   ##
==========================================
- Coverage   43.99%   43.93%   -0.06%     
==========================================
  Files         211      211              
  Lines       18665    18690      +25     
==========================================
  Hits         8211     8211              
- Misses      10454    10479      +25     
Impacted Files Coverage Δ
boa_engine/src/builtins/typed_array/mod.rs 3.66% <0.00%> (+<0.01%) ⬆️
boa_engine/src/object/jstypedarray.rs 0.00% <0.00%> (ø)
boa_engine/src/object/mod.rs 21.11% <ø> (+0.11%) ⬆️
boa_engine/src/value/conversions.rs 20.00% <0.00%> (-2.73%) ⬇️
..._engine/src/syntax/parser/statement/try_stm/mod.rs 42.10% <0.00%> (-13.07%) ⬇️
...a_engine/src/syntax/parser/statement/if_stm/mod.rs 37.25% <0.00%> (-11.64%) ⬇️
...x/parser/statement/iteration/do_while_statement.rs 44.11% <0.00%> (-9.46%) ⬇️
...gine/src/syntax/parser/statement/expression/mod.rs 19.51% <0.00%> (-9.06%) ⬇️
...a_engine/src/syntax/parser/statement/switch/mod.rs 40.00% <0.00%> (-8.28%) ⬇️
boa_engine/src/realm.rs 33.33% <0.00%> (-6.67%) ⬇️
... and 73 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 aeb5460...0d520b8. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Apr 3, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 88,720 88,720 0
Passed 53,146 53,146 0
Ignored 21,853 21,853 0
Failed 13,721 13,721 0
Panics 0 0 0
Conformance 59.90% 59.90% 0.00%

@github-actions
Copy link

github-actions bot commented Apr 3, 2022

Benchmark for 35b568d

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 644.1±41.19ns 674.6±46.56ns +4.74%
Arithmetic operations (Execution) 727.5±39.50ns 751.9±69.31ns +3.35%
Arithmetic operations (Parser) 5.9±0.50µs 5.8±0.35µs -1.69%
Array access (Compiler) 1676.1±75.28ns 1649.5±94.55ns -1.59%
Array access (Execution) 9.0±0.56µs 8.8±0.55µs -2.22%
Array access (Parser) 13.0±0.90µs 13.9±2.28µs +6.92%
Array creation (Compiler) 2.3±0.11µs 2.3±0.13µs 0.00%
Array creation (Execution) 2.7±0.19ms 2.7±0.19ms 0.00%
Array creation (Parser) 14.8±1.30µs 15.5±1.38µs +4.73%
Array pop (Compiler) 4.5±0.36µs 4.4±0.29µs -2.22%
Array pop (Execution) 1218.6±215.36µs 1175.1±70.10µs -3.57%
Array pop (Parser) 153.3±7.10µs 155.6±9.93µs +1.50%
Boolean Object Access (Compiler) 1297.0±79.95ns 1388.6±211.10ns +7.06%
Boolean Object Access (Execution) 4.8±0.32µs 4.8±0.68µs 0.00%
Boolean Object Access (Parser) 16.1±1.16µs 15.7±1.08µs -2.48%
Clean js (Compiler) 4.2±0.23µs 4.2±0.27µs 0.00%
Clean js (Execution) 780.4±49.97µs 760.2±39.89µs -2.59%
Clean js (Parser) 32.4±2.48µs 32.1±2.04µs -0.93%
Create Realm 314.7±17.62ns 333.1±22.47ns +5.85%
Dynamic Object Property Access (Compiler) 2.0±0.12µs 2.0±0.14µs 0.00%
Dynamic Object Property Access (Execution) 6.3±0.49µs 6.2±0.45µs -1.59%
Dynamic Object Property Access (Parser) 11.8±1.19µs 12.2±0.84µs +3.39%
Fibonacci (Compiler) 3.0±0.21µs 2.9±0.15µs -3.33%
Fibonacci (Execution) 1633.7±140.87µs 1592.3±80.64µs -2.53%
Fibonacci (Parser) 17.4±0.98µs 18.1±1.98µs +4.02%
For loop (Compiler) 2.5±0.21µs 2.4±0.15µs -4.00%
For loop (Execution) 18.2±1.02µs 17.8±1.08µs -2.20%
For loop (Parser) 15.0±1.06µs 15.7±1.13µs +4.67%
Mini js (Compiler) 4.2±0.43µs 4.1±0.28µs -2.38%
Mini js (Execution) 734.7±57.74µs 716.0±56.03µs -2.55%
Mini js (Parser) 28.8±2.83µs 29.1±2.29µs +1.04%
Number Object Access (Compiler) 1279.7±67.02ns 1282.7±72.07ns +0.23%
Number Object Access (Execution) 3.7±0.91µs 3.6±0.19µs -2.70%
Number Object Access (Parser) 12.3±0.83µs 12.7±0.91µs +3.25%
Object Creation (Compiler) 1755.6±161.60ns 1774.8±106.03ns +1.09%
Object Creation (Execution) 6.0±0.40µs 6.0±0.32µs 0.00%
Object Creation (Parser) 10.1±0.61µs 10.4±0.58µs +2.97%
RegExp (Compiler) 2.2±0.18µs 2.0±0.13µs -9.09%
RegExp (Execution) 13.3±1.06µs 13.2±0.80µs -0.75%
RegExp (Parser) 11.1±0.67µs 11.5±0.49µs +3.60%
RegExp Creation (Compiler) 1893.4±143.19ns 1888.3±153.14ns -0.27%
RegExp Creation (Execution) 9.6±0.56µs 9.7±0.56µs +1.04%
RegExp Creation (Parser) 9.3±0.57µs 9.7±0.59µs +4.30%
RegExp Literal (Compiler) 2.0±0.11µs 2.1±0.13µs +5.00%
RegExp Literal (Execution) 13.8±1.29µs 13.0±0.71µs -5.80%
RegExp Literal (Parser) 8.7±0.68µs 9.1±0.46µs +4.60%
RegExp Literal Creation (Compiler) 1789.8±104.68ns 1778.5±102.28ns -0.63%
RegExp Literal Creation (Execution) 9.7±0.55µs 9.8±0.66µs +1.03%
RegExp Literal Creation (Parser) 7.1±0.43µs 7.3±0.35µs +2.82%
Static Object Property Access (Compiler) 1837.2±107.68ns 1810.8±107.53ns -1.44%
Static Object Property Access (Execution) 6.0±0.32µs 6.0±0.35µs 0.00%
Static Object Property Access (Parser) 10.7±0.68µs 11.5±0.81µs +7.48%
String Object Access (Compiler) 1771.0±115.32ns 1779.8±111.23ns +0.50%
String Object Access (Execution) 7.0±0.55µs 7.2±0.79µs +2.86%
String Object Access (Parser) 15.4±1.12µs 15.7±1.07µs +1.95%
String comparison (Compiler) 2.7±0.39µs 2.7±0.15µs 0.00%
String comparison (Execution) 5.3±0.24µs 5.2±0.38µs -1.89%
String comparison (Parser) 12.3±0.79µs 12.3±1.04µs 0.00%
String concatenation (Compiler) 2.1±0.11µs 2.1±0.13µs 0.00%
String concatenation (Execution) 5.1±0.33µs 5.0±0.24µs -1.96%
String concatenation (Parser) 8.3±0.65µs 8.3±0.43µs 0.00%
String copy (Compiler) 1695.2±93.11ns 1683.7±69.30ns -0.68%
String copy (Execution) 4.8±0.28µs 4.7±0.29µs -2.08%
String copy (Parser) 6.3±0.43µs 6.3±0.39µs 0.00%
Symbols (Compiler) 1269.4±101.02ns 1195.4±68.78ns -5.83%
Symbols (Execution) 4.8±0.33µs 4.9±0.33µs +2.08%
Symbols (Parser) 4.7±0.29µs 4.9±0.27µs +4.26%

@HalidOdat HalidOdat force-pushed the feature/jstypedarrays branch 3 times, most recently from 23535b0 to c175ea2 Compare April 8, 2022 03:14
@HalidOdat HalidOdat marked this pull request as ready for review April 8, 2022 03:15
@github-actions
Copy link

github-actions bot commented Apr 8, 2022

Benchmark for 178363f

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 463.1±0.56ns 538.8±2.81ns +16.35%
Arithmetic operations (Execution) 572.1±1.13ns 572.8±0.88ns +0.12%
Arithmetic operations (Parser) 5.2±0.01µs 5.3±0.01µs +1.92%
Array access (Compiler) 1171.9±14.27ns 1124.9±2.79ns -4.01%
Array access (Execution) 6.8±0.02µs 6.8±0.02µs 0.00%
Array access (Parser) 11.1±0.01µs 11.2±0.01µs +0.90%
Array creation (Compiler) 1607.9±3.19ns 1629.1±3.91ns +1.32%
Array creation (Execution) 2.3±0.00ms 2.3±0.00ms 0.00%
Array creation (Parser) 12.7±0.02µs 12.6±0.02µs -0.79%
Array pop (Compiler) 3.4±0.01µs 3.8±0.01µs +11.76%
Array pop (Execution) 1000.1±4.10µs 999.5±2.90µs -0.06%
Array pop (Parser) 126.9±0.12µs 130.2±0.22µs +2.60%
Boolean Object Access (Compiler) 937.6±2.11ns 1068.8±6.60ns +13.99%
Boolean Object Access (Execution) 3.6±0.01µs 3.6±0.01µs 0.00%
Boolean Object Access (Parser) 13.3±0.01µs 13.3±0.02µs 0.00%
Clean js (Compiler) 2.9±0.01µs 2.9±0.01µs 0.00%
Clean js (Execution) 607.9±6.70µs 605.1±2.63µs -0.46%
Clean js (Parser) 27.5±0.04µs 27.4±0.11µs -0.36%
Create Realm 294.3±0.22ns 286.5±11.85ns -2.65%
Dynamic Object Property Access (Compiler) 1440.5±3.05ns 1448.2±6.70ns +0.53%
Dynamic Object Property Access (Execution) 4.7±0.03µs 4.7±0.05µs 0.00%
Dynamic Object Property Access (Parser) 9.9±0.04µs 9.9±0.02µs 0.00%
Fibonacci (Compiler) 2.0±0.00µs 2.0±0.01µs 0.00%
Fibonacci (Execution) 1175.6±1.26µs 1175.9±1.31µs +0.03%
Fibonacci (Parser) 15.2±0.02µs 15.2±0.02µs 0.00%
For loop (Compiler) 1740.2±3.60ns 1736.2±2.43ns -0.23%
For loop (Execution) 13.4±0.03µs 13.3±0.05µs -0.75%
For loop (Parser) 13.0±0.02µs 13.1±0.01µs +0.77%
Mini js (Compiler) 2.9±0.01µs 2.9±0.01µs 0.00%
Mini js (Execution) 579.4±3.79µs 573.3±2.50µs -1.05%
Mini js (Parser) 24.3±0.06µs 24.2±0.03µs -0.41%
Number Object Access (Compiler) 913.7±2.52ns 911.1±2.99ns -0.28%
Number Object Access (Execution) 2.9±0.01µs 2.9±0.01µs 0.00%
Number Object Access (Parser) 10.5±0.01µs 10.4±0.01µs -0.95%
Object Creation (Compiler) 1223.0±5.04ns 1397.7±2.77ns +14.28%
Object Creation (Execution) 4.4±0.01µs 4.5±0.02µs +2.27%
Object Creation (Parser) 8.6±0.02µs 8.6±0.02µs 0.00%
RegExp (Compiler) 1485.7±6.90ns 1427.1±3.21ns -3.94%
RegExp (Execution) 10.3±0.03µs 10.2±0.03µs -0.97%
RegExp (Parser) 9.5±0.01µs 9.5±0.01µs 0.00%
RegExp Creation (Compiler) 1267.4±16.09ns 1421.8±2.15ns +12.18%
RegExp Creation (Execution) 7.7±0.02µs 8.6±0.05µs +11.69%
RegExp Creation (Parser) 8.9±0.02µs 7.9±0.10µs -11.24%
RegExp Literal (Compiler) 1440.7±2.98ns 1639.8±3.96ns +13.82%
RegExp Literal (Execution) 10.2±0.04µs 10.3±0.04µs +0.98%
RegExp Literal (Parser) 7.7±0.02µs 7.7±0.01µs 0.00%
RegExp Literal Creation (Compiler) 1255.7±3.14ns 1272.3±3.21ns +1.32%
RegExp Literal Creation (Execution) 7.7±0.01µs 7.6±0.04µs -1.30%
RegExp Literal Creation (Parser) 6.0±0.01µs 6.0±0.01µs 0.00%
Static Object Property Access (Compiler) 1245.3±2.75ns 1247.8±2.72ns +0.20%
Static Object Property Access (Execution) 4.6±0.01µs 4.6±0.01µs 0.00%
Static Object Property Access (Parser) 10.4±0.01µs 10.5±0.03µs +0.96%
String Object Access (Compiler) 1264.9±3.23ns 1263.1±4.16ns -0.14%
String Object Access (Execution) 5.2±0.01µs 5.2±0.01µs 0.00%
String Object Access (Parser) 13.1±0.01µs 13.1±0.04µs 0.00%
String comparison (Compiler) 1865.3±6.21ns 1864.4±5.96ns -0.05%
String comparison (Execution) 4.0±0.02µs 4.6±0.01µs +15.00%
String comparison (Parser) 10.4±0.01µs 10.5±0.03µs +0.96%
String concatenation (Compiler) 1445.3±3.13ns 1452.3±4.15ns +0.48%
String concatenation (Execution) 3.8±0.02µs 3.8±0.02µs 0.00%
String concatenation (Parser) 8.2±0.03µs 7.2±0.03µs -12.20%
String copy (Compiler) 1155.2±3.94ns 1145.9±5.39ns -0.81%
String copy (Execution) 3.6±0.01µs 3.6±0.01µs 0.00%
String copy (Parser) 5.4±0.01µs 5.4±0.02µs 0.00%
Symbols (Compiler) 832.7±2.99ns 817.9±1.97ns -1.78%
Symbols (Execution) 3.6±0.01µs 3.7±0.01µs +2.78%
Symbols (Parser) 4.6±0.01µs 4.1±0.23µs -10.87%

@github-actions
Copy link

github-actions bot commented Apr 8, 2022

Benchmark for cffc440

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 533.5±33.66ns 538.4±27.78ns +0.92%
Arithmetic operations (Execution) 736.3±21.41ns 707.3±43.08ns -3.94%
Arithmetic operations (Parser) 5.9±0.28µs 5.9±0.24µs 0.00%
Array access (Compiler) 1367.3±99.46ns 1389.4±58.67ns +1.62%
Array access (Execution) 8.7±0.36µs 8.6±0.36µs -1.15%
Array access (Parser) 12.3±0.51µs 11.7±0.77µs -4.88%
Array creation (Compiler) 1825.6±129.06ns 1918.5±84.36ns +5.09%
Array creation (Execution) 2.9±0.11ms 2.7±0.16ms -6.90%
Array creation (Parser) 14.3±0.69µs 13.9±0.89µs -2.80%
Array pop (Compiler) 3.9±0.22µs 4.4±0.14µs +12.82%
Array pop (Execution) 1262.0±56.68µs 1154.5±60.05µs -8.52%
Array pop (Parser) 153.5±6.73µs 149.4±6.90µs -2.67%
Boolean Object Access (Compiler) 1025.3±63.73ns 1011.0±56.66ns -1.39%
Boolean Object Access (Execution) 4.9±0.13µs 4.5±0.27µs -8.16%
Boolean Object Access (Parser) 15.1±0.92µs 14.7±1.09µs -2.65%
Clean js (Compiler) 3.5±0.24µs 3.8±0.21µs +8.57%
Clean js (Execution) 773.3±24.42µs 754.2±38.59µs -2.47%
Clean js (Parser) 32.7±1.80µs 31.5±1.55µs -3.67%
Create Realm 333.1±19.90ns 308.3±16.20ns -7.45%
Dynamic Object Property Access (Compiler) 1754.9±119.83ns 1789.5±102.84ns +1.97%
Dynamic Object Property Access (Execution) 5.9±0.36µs 5.8±0.26µs -1.69%
Dynamic Object Property Access (Parser) 11.5±0.50µs 10.8±0.66µs -6.09%
Fibonacci (Compiler) 2.6±0.15µs 2.4±0.14µs -7.69%
Fibonacci (Execution) 1392.9±77.69µs 1436.2±76.36µs +3.11%
Fibonacci (Parser) 16.4±1.14µs 18.1±0.47µs +10.37%
For loop (Compiler) 2.3±0.11µs 2.2±0.14µs -4.35%
For loop (Execution) 16.1±0.84µs 16.3±0.96µs +1.24%
For loop (Parser) 13.6±0.88µs 15.8±0.43µs +16.18%
Mini js (Compiler) 3.6±0.19µs 3.6±0.14µs 0.00%
Mini js (Execution) 736.2±30.43µs 702.1±39.96µs -4.63%
Mini js (Parser) 28.8±1.21µs 28.5±1.07µs -1.04%
Number Object Access (Compiler) 1015.2±57.15ns 1010.0±41.11ns -0.51%
Number Object Access (Execution) 3.8±0.05µs 3.4±0.20µs -10.53%
Number Object Access (Parser) 12.4±0.53µs 12.4±0.53µs 0.00%
Object Creation (Compiler) 1544.1±96.20ns 1480.7±90.44ns -4.11%
Object Creation (Execution) 5.2±0.35µs 5.4±0.34µs +3.85%
Object Creation (Parser) 9.8±0.53µs 9.5±0.56µs -3.06%
RegExp (Compiler) 1793.4±98.08ns 1811.0±75.26ns +0.98%
RegExp (Execution) 12.6±1.00µs 12.9±0.54µs +2.38%
RegExp (Parser) 10.5±0.41µs 10.9±0.50µs +3.81%
RegExp Creation (Compiler) 1602.5±65.04ns 1579.2±65.49ns -1.45%
RegExp Creation (Execution) 9.2±0.52µs 9.5±0.41µs +3.26%
RegExp Creation (Parser) 9.0±0.28µs 8.9±0.56µs -1.11%
RegExp Literal (Compiler) 1863.3±79.53ns 1801.6±92.51ns -3.31%
RegExp Literal (Execution) 13.1±0.55µs 13.1±0.31µs 0.00%
RegExp Literal (Parser) 8.5±0.37µs 8.8±0.42µs +3.53%
RegExp Literal Creation (Compiler) 1626.3±80.76ns 1574.9±72.47ns -3.16%
RegExp Literal Creation (Execution) 9.7±0.38µs 9.2±0.52µs -5.15%
RegExp Literal Creation (Parser) 6.7±0.26µs 6.7±0.27µs 0.00%
Static Object Property Access (Compiler) 1549.0±100.30ns 1550.8±109.40ns +0.12%
Static Object Property Access (Execution) 6.0±0.37µs 6.1±0.19µs +1.67%
Static Object Property Access (Parser) 10.3±0.61µs 10.4±0.53µs +0.97%
String Object Access (Compiler) 1405.1±82.25ns 1388.3±68.21ns -1.20%
String Object Access (Execution) 6.9±0.20µs 6.2±0.34µs -10.14%
String Object Access (Parser) 15.7±0.73µs 15.3±0.61µs -2.55%
String comparison (Compiler) 2.2±0.11µs 2.2±0.12µs 0.00%
String comparison (Execution) 5.3±0.15µs 4.8±0.30µs -9.43%
String comparison (Parser) 11.9±0.61µs 12.4±0.65µs +4.20%
String concatenation (Compiler) 1876.8±84.73ns 1778.9±135.77ns -5.22%
String concatenation (Execution) 5.0±0.24µs 4.8±0.22µs -4.00%
String concatenation (Parser) 8.2±0.36µs 7.9±0.43µs -3.66%
String copy (Compiler) 1436.8±90.85ns 1426.7±65.26ns -0.70%
String copy (Execution) 4.9±0.08µs 4.4±0.35µs -10.20%
String copy (Parser) 5.9±0.35µs 6.2±0.31µs +5.08%
Symbols (Compiler) 1035.9±60.84ns 985.5±73.72ns -4.87%
Symbols (Execution) 4.4±0.23µs 4.5±0.18µs +2.27%
Symbols (Parser) 4.3±0.33µs 4.4±0.25µs +2.33%

@github-actions
Copy link

github-actions bot commented Apr 8, 2022

Benchmark for fcb3290

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 644.0±34.29ns 625.6±26.46ns -2.86%
Arithmetic operations (Execution) 649.5±37.19ns 685.3±44.86ns +5.51%
Arithmetic operations (Parser) 6.5±0.35µs 6.6±0.37µs +1.54%
Array access (Compiler) 1695.0±471.52ns 1611.9±88.72ns -4.90%
Array access (Execution) 9.3±0.47µs 9.0±0.37µs -3.23%
Array access (Parser) 13.8±0.82µs 13.6±0.78µs -1.45%
Array creation (Compiler) 2.2±0.09µs 2.2±0.13µs 0.00%
Array creation (Execution) 2.6±0.13ms 2.6±0.13ms 0.00%
Array creation (Parser) 15.9±2.93µs 15.4±0.97µs -3.14%
Array pop (Compiler) 4.4±0.41µs 4.3±0.39µs -2.27%
Array pop (Execution) 1139.7±68.83µs 1216.3±79.72µs +6.72%
Array pop (Parser) 160.3±11.15µs 169.0±12.96µs +5.43%
Boolean Object Access (Compiler) 1254.0±59.17ns 1260.3±64.79ns +0.50%
Boolean Object Access (Execution) 5.0±0.29µs 5.1±0.29µs +2.00%
Boolean Object Access (Parser) 16.0±0.87µs 16.4±0.93µs +2.50%
Clean js (Compiler) 4.0±0.19µs 4.1±0.19µs +2.50%
Clean js (Execution) 772.7±71.31µs 750.3±35.24µs -2.90%
Clean js (Parser) 33.7±1.51µs 33.6±1.92µs -0.30%
Create Realm 322.8±19.56ns 323.0±28.36ns +0.06%
Dynamic Object Property Access (Compiler) 1996.1±145.81ns 2.0±0.14µs +0.20%
Dynamic Object Property Access (Execution) 6.5±0.29µs 6.7±0.31µs +3.08%
Dynamic Object Property Access (Parser) 12.1±0.82µs 11.8±0.58µs -2.48%
Fibonacci (Compiler) 2.8±0.13µs 2.8±0.16µs 0.00%
Fibonacci (Execution) 1679.9±62.91µs 1673.4±78.82µs -0.39%
Fibonacci (Parser) 18.4±0.91µs 18.9±1.63µs +2.72%
For loop (Compiler) 2.3±0.12µs 2.5±0.14µs +8.70%
For loop (Execution) 17.7±1.00µs 18.3±1.24µs +3.39%
For loop (Parser) 16.1±1.28µs 15.7±0.79µs -2.48%
Mini js (Compiler) 3.9±0.24µs 4.0±0.23µs +2.56%
Mini js (Execution) 700.0±38.48µs 704.6±26.20µs +0.66%
Mini js (Parser) 29.7±2.46µs 29.9±1.57µs +0.67%
Number Object Access (Compiler) 1215.2±70.81ns 1220.1±81.79ns +0.40%
Number Object Access (Execution) 3.8±0.18µs 4.0±0.21µs +5.26%
Number Object Access (Parser) 12.9±0.69µs 13.0±0.76µs +0.78%
Object Creation (Compiler) 1708.5±71.99ns 1731.4±179.63ns +1.34%
Object Creation (Execution) 6.4±0.34µs 6.4±0.74µs 0.00%
Object Creation (Parser) 10.5±0.62µs 10.3±0.48µs -1.90%
RegExp (Compiler) 2.1±0.12µs 2.0±0.11µs -4.76%
RegExp (Execution) 13.0±0.62µs 13.5±1.25µs +3.85%
RegExp (Parser) 11.6±0.94µs 11.9±1.58µs +2.59%
RegExp Creation (Compiler) 1771.7±105.71ns 1757.1±91.43ns -0.82%
RegExp Creation (Execution) 9.7±0.51µs 10.0±1.27µs +3.09%
RegExp Creation (Parser) 9.9±1.58µs 9.4±0.52µs -5.05%
RegExp Literal (Compiler) 2.0±0.14µs 1983.9±95.11ns -0.80%
RegExp Literal (Execution) 13.3±0.59µs 13.3±0.87µs 0.00%
RegExp Literal (Parser) 9.5±0.80µs 9.4±0.70µs -1.05%
RegExp Literal Creation (Compiler) 1789.2±83.48ns 1777.4±78.73ns -0.66%
RegExp Literal Creation (Execution) 10.1±0.77µs 10.1±0.78µs 0.00%
RegExp Literal Creation (Parser) 7.4±0.48µs 7.2±0.36µs -2.70%
Static Object Property Access (Compiler) 1730.2±105.88ns 1740.2±95.00ns +0.58%
Static Object Property Access (Execution) 6.3±0.35µs 6.5±0.33µs +3.17%
Static Object Property Access (Parser) 11.3±0.94µs 11.3±0.69µs 0.00%
String Object Access (Compiler) 1668.2±82.65ns 1764.8±115.56ns +5.79%
String Object Access (Execution) 7.0±0.32µs 7.4±0.40µs +5.71%
String Object Access (Parser) 16.2±0.89µs 16.2±1.23µs 0.00%
String comparison (Compiler) 2.6±0.21µs 2.6±0.13µs 0.00%
String comparison (Execution) 5.6±0.33µs 5.6±0.29µs 0.00%
String comparison (Parser) 12.6±1.04µs 12.8±0.90µs +1.59%
String concatenation (Compiler) 2.0±0.12µs 2.1±0.12µs +5.00%
String concatenation (Execution) 5.4±0.37µs 5.4±0.37µs 0.00%
String concatenation (Parser) 8.7±0.45µs 8.7±0.53µs 0.00%
String copy (Compiler) 1700.5±206.31ns 1612.7±109.93ns -5.16%
String copy (Execution) 4.9±0.29µs 5.3±0.41µs +8.16%
String copy (Parser) 6.3±0.38µs 6.4±0.35µs +1.59%
Symbols (Compiler) 1189.6±59.38ns 1224.1±55.72ns +2.90%
Symbols (Execution) 5.1±0.24µs 5.3±0.26µs +3.92%
Symbols (Parser) 4.9±0.33µs 4.9±0.30µs 0.00%

@github-actions
Copy link

github-actions bot commented Apr 8, 2022

Benchmark for decec61

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 633.5±35.89ns 733.6±46.28ns +15.80%
Arithmetic operations (Execution) 655.3±46.35ns 717.3±65.66ns +9.46%
Arithmetic operations (Parser) 6.9±0.46µs 6.6±1.36µs -4.35%
Array access (Compiler) 1620.7±99.64ns 1673.4±100.72ns +3.25%
Array access (Execution) 8.9±0.69µs 10.4±0.97µs +16.85%
Array access (Parser) 15.3±0.97µs 14.8±1.13µs -3.27%
Array creation (Compiler) 2.2±0.15µs 2.3±0.15µs +4.55%
Array creation (Execution) 2.7±0.21ms 3.1±0.21ms +14.81%
Array creation (Parser) 19.0±1.87µs 16.9±1.30µs -11.05%
Array pop (Compiler) 4.1±0.25µs 4.6±0.37µs +12.20%
Array pop (Execution) 1250.9±111.26µs 1304.5±83.93µs +4.28%
Array pop (Parser) 184.4±12.47µs 187.7±22.17µs +1.79%
Boolean Object Access (Compiler) 1352.0±85.26ns 1360.6±162.71ns +0.64%
Boolean Object Access (Execution) 5.1±0.40µs 5.2±0.53µs +1.96%
Boolean Object Access (Parser) 18.6±1.43µs 17.2±1.00µs -7.53%
Clean js (Compiler) 4.1±0.24µs 4.8±0.27µs +17.07%
Clean js (Execution) 728.4±58.97µs 874.7±73.54µs +20.09%
Clean js (Parser) 36.2±2.29µs 33.1±2.60µs -8.56%
Create Realm 336.2±27.11ns 379.8±19.86ns +12.97%
Dynamic Object Property Access (Compiler) 2.2±0.16µs 1898.9±118.93ns -13.69%
Dynamic Object Property Access (Execution) 6.2±0.46µs 6.3±0.50µs +1.61%
Dynamic Object Property Access (Parser) 13.3±1.15µs 14.0±1.06µs +5.26%
Fibonacci (Compiler) 3.1±0.17µs 3.1±0.22µs 0.00%
Fibonacci (Execution) 1768.5±139.46µs 1692.6±94.74µs -4.29%
Fibonacci (Parser) 21.3±2.04µs 22.6±1.60µs +6.10%
For loop (Compiler) 2.5±0.14µs 2.5±0.22µs 0.00%
For loop (Execution) 17.3±1.39µs 19.4±1.47µs +12.14%
For loop (Parser) 17.4±1.22µs 19.0±1.24µs +9.20%
Mini js (Compiler) 3.8±0.23µs 4.1±0.28µs +7.89%
Mini js (Execution) 705.2±59.54µs 790.1±41.42µs +12.04%
Mini js (Parser) 31.4±1.71µs 30.0±2.16µs -4.46%
Number Object Access (Compiler) 1288.2±65.87ns 1191.8±81.09ns -7.48%
Number Object Access (Execution) 3.8±0.28µs 4.2±0.31µs +10.53%
Number Object Access (Parser) 14.8±0.96µs 14.5±1.35µs -2.03%
Object Creation (Compiler) 1846.6±103.75ns 1727.0±83.23ns -6.48%
Object Creation (Execution) 5.9±0.36µs 6.1±0.45µs +3.39%
Object Creation (Parser) 11.8±0.84µs 12.6±1.39µs +6.78%
RegExp (Compiler) 2.1±0.22µs 2.3±0.16µs +9.52%
RegExp (Execution) 12.4±0.89µs 14.2±1.54µs +14.52%
RegExp (Parser) 13.5±0.80µs 12.6±1.00µs -6.67%
RegExp Creation (Compiler) 1837.4±114.64ns 1860.6±136.04ns +1.26%
RegExp Creation (Execution) 9.5±0.89µs 10.3±0.79µs +8.42%
RegExp Creation (Parser) 11.1±0.61µs 11.1±0.90µs 0.00%
RegExp Literal (Compiler) 2.2±0.12µs 2.3±0.15µs +4.55%
RegExp Literal (Execution) 12.3±0.85µs 14.0±1.26µs +13.82%
RegExp Literal (Parser) 11.2±0.60µs 10.4±1.00µs -7.14%
RegExp Literal Creation (Compiler) 1868.1±127.36ns 1653.7±106.05ns -11.48%
RegExp Literal Creation (Execution) 9.8±0.89µs 10.1±0.91µs +3.06%
RegExp Literal Creation (Parser) 7.9±0.48µs 8.5±0.38µs +7.59%
Static Object Property Access (Compiler) 1849.7±126.69ns 1782.1±121.96ns -3.65%
Static Object Property Access (Execution) 6.5±0.64µs 6.4±0.39µs -1.54%
Static Object Property Access (Parser) 12.1±0.69µs 12.7±0.53µs +4.96%
String Object Access (Compiler) 1679.1±120.88ns 1855.6±138.03ns +10.51%
String Object Access (Execution) 6.8±0.55µs 7.4±0.48µs +8.82%
String Object Access (Parser) 17.3±0.87µs 17.2±1.16µs -0.58%
String comparison (Compiler) 2.6±0.20µs 2.9±0.41µs +11.54%
String comparison (Execution) 5.4±0.28µs 5.8±0.37µs +7.41%
String comparison (Parser) 13.5±0.67µs 14.0±0.99µs +3.70%
String concatenation (Compiler) 2.1±0.14µs 2.1±0.15µs 0.00%
String concatenation (Execution) 5.3±0.42µs 5.6±0.35µs +5.66%
String concatenation (Parser) 10.0±0.53µs 10.1±0.81µs +1.00%
String copy (Compiler) 1703.2±105.68ns 1787.2±127.33ns +4.93%
String copy (Execution) 5.0±0.29µs 5.3±0.32µs +6.00%
String copy (Parser) 7.2±0.36µs 7.3±0.35µs +1.39%
Symbols (Compiler) 1272.9±77.71ns 1186.5±65.17ns -6.79%
Symbols (Execution) 5.0±0.35µs 5.6±0.49µs +12.00%
Symbols (Parser) 5.4±0.37µs 5.8±0.37µs +7.41%

@HalidOdat HalidOdat requested a review from raskad April 13, 2022 11:59
@github-actions
Copy link

Benchmark for 958d01f

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 443.2±1.06ns 443.7±1.10ns +0.11%
Arithmetic operations (Execution) 558.4±1.27ns 559.0±2.60ns +0.11%
Arithmetic operations (Parser) 5.2±0.01µs 5.3±0.02µs +1.92%
Array access (Compiler) 1116.6±2.76ns 1134.3±3.78ns +1.59%
Array access (Execution) 6.8±0.02µs 6.8±0.03µs 0.00%
Array access (Parser) 11.3±0.02µs 11.4±0.06µs +0.88%
Array creation (Compiler) 1596.1±2.40ns 1641.3±18.05ns +2.83%
Array creation (Execution) 2.4±0.00ms 2.3±0.00ms -4.17%
Array creation (Parser) 12.7±0.05µs 12.8±0.05µs +0.79%
Array pop (Compiler) 3.2±0.01µs 3.2±0.01µs 0.00%
Array pop (Execution) 1021.8±3.52µs 1018.5±5.80µs -0.32%
Array pop (Parser) 127.5±0.29µs 128.5±0.34µs +0.78%
Boolean Object Access (Compiler) 925.2±2.62ns 930.3±2.35ns +0.55%
Boolean Object Access (Execution) 3.6±0.00µs 3.6±0.03µs 0.00%
Boolean Object Access (Parser) 13.0±0.01µs 13.3±0.04µs +2.31%
Clean js (Compiler) 2.9±0.01µs 2.9±0.01µs 0.00%
Clean js (Execution) 620.7±2.60µs 618.8±3.54µs -0.31%
Clean js (Parser) 27.6±0.04µs 27.7±0.10µs +0.36%
Create Realm 240.1±2.31ns 239.4±1.29ns -0.29%
Dynamic Object Property Access (Compiler) 1449.3±4.14ns 1472.5±13.00ns +1.60%
Dynamic Object Property Access (Execution) 4.8±0.02µs 4.8±0.03µs 0.00%
Dynamic Object Property Access (Parser) 10.0±0.03µs 10.1±0.04µs +1.00%
Fibonacci (Compiler) 2.0±0.01µs 2.0±0.01µs 0.00%
Fibonacci (Execution) 1332.7±2.11µs 1151.1±3.99µs -13.63%
Fibonacci (Parser) 15.2±0.06µs 15.3±0.07µs +0.66%
For loop (Compiler) 1745.3±3.56ns 1748.7±14.18ns +0.19%
For loop (Execution) 15.2±0.04µs 13.5±0.09µs -11.18%
For loop (Parser) 13.0±0.04µs 13.2±0.04µs +1.54%
Mini js (Compiler) 3.2±0.01µs 2.9±0.01µs -9.38%
Mini js (Execution) 586.4±3.65µs 583.6±2.93µs -0.48%
Mini js (Parser) 24.1±0.03µs 24.7±0.20µs +2.49%
Number Object Access (Compiler) 894.8±3.25ns 897.6±3.04ns +0.31%
Number Object Access (Execution) 2.8±0.00µs 2.8±0.01µs 0.00%
Number Object Access (Parser) 10.3±0.03µs 10.3±0.03µs 0.00%
Object Creation (Compiler) 1213.4±1.41ns 1236.0±13.97ns +1.86%
Object Creation (Execution) 4.4±0.01µs 4.4±0.02µs 0.00%
Object Creation (Parser) 8.6±0.02µs 8.7±0.03µs +1.16%
RegExp (Compiler) 1455.7±3.93ns 1460.3±11.45ns +0.32%
RegExp (Execution) 9.7±0.03µs 9.8±0.04µs +1.03%
RegExp (Parser) 9.5±0.02µs 9.6±0.02µs +1.05%
RegExp Creation (Compiler) 1243.3±2.64ns 1266.5±12.32ns +1.87%
RegExp Creation (Execution) 7.3±0.02µs 7.3±0.05µs 0.00%
RegExp Creation (Parser) 8.0±0.02µs 8.0±0.01µs 0.00%
RegExp Literal (Compiler) 1454.0±3.43ns 1466.2±15.58ns +0.84%
RegExp Literal (Execution) 9.7±0.03µs 9.8±0.06µs +1.03%
RegExp Literal (Parser) 7.8±0.04µs 7.8±0.02µs 0.00%
RegExp Literal Creation (Compiler) 1250.2±3.42ns 1246.5±12.73ns -0.30%
RegExp Literal Creation (Execution) 7.3±0.01µs 7.3±0.03µs 0.00%
RegExp Literal Creation (Parser) 6.2±0.01µs 6.1±0.02µs -1.61%
Static Object Property Access (Compiler) 1241.4±3.71ns 1259.4±16.95ns +1.45%
Static Object Property Access (Execution) 4.6±0.02µs 4.6±0.02µs 0.00%
Static Object Property Access (Parser) 9.2±0.03µs 9.3±0.03µs +1.09%
String Object Access (Compiler) 1272.1±3.32ns 1266.8±4.10ns -0.42%
String Object Access (Execution) 5.2±0.01µs 5.2±0.02µs 0.00%
String Object Access (Parser) 12.9±0.03µs 13.1±0.02µs +1.55%
String comparison (Compiler) 1833.6±6.01ns 1835.3±9.51ns +0.09%
String comparison (Execution) 4.0±0.01µs 4.5±0.01µs +12.50%
String comparison (Parser) 10.4±0.02µs 10.7±0.03µs +2.88%
String concatenation (Compiler) 1475.8±3.06ns 1630.8±2.62ns +10.50%
String concatenation (Execution) 3.9±0.02µs 3.8±0.03µs -2.56%
String concatenation (Parser) 7.3±0.02µs 7.3±0.03µs 0.00%
String copy (Compiler) 1162.5±4.10ns 1167.5±4.75ns +0.43%
String copy (Execution) 3.6±0.01µs 3.6±0.01µs 0.00%
String copy (Parser) 5.4±0.01µs 5.4±0.02µs 0.00%
Symbols (Compiler) 805.1±1.89ns 807.2±7.86ns +0.26%
Symbols (Execution) 4.1±0.02µs 3.6±0.01µs -12.20%
Symbols (Parser) 4.1±0.02µs 4.7±0.03µs +14.63%

Copy link
Member

@jedel1043 jedel1043 left a comment

Choose a reason for hiding this comment

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

Good work!

A bit off topic, but what are your plans for the JsObjectType trait?

@jedel1043
Copy link
Member

bors r+

bors bot pushed a commit that referenced this pull request Apr 14, 2022
This PR adds a wrapper around the raw builtins for JavaScript typed arrays, like #1746
@bors
Copy link

bors bot commented Apr 14, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Feature JsTypedArrays [Merged by Bors] - Feature JsTypedArrays Apr 14, 2022
@bors bors bot closed this Apr 14, 2022
@bors bors bot deleted the feature/jstypedarrays branch April 14, 2022 23:30
Razican pushed a commit that referenced this pull request Jun 8, 2022
This PR adds a wrapper around the raw builtins for JavaScript typed arrays, like #1746
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants