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] - Make iterator spec complaint #1889

Closed
wants to merge 1 commit into from
Closed

Conversation

HalidOdat
Copy link
Member

@HalidOdat HalidOdat commented Mar 2, 2022

This PR is also related to #577

Changes:

  • Implements IteratorValue (IteratorResult::value())
  • Implements IteratorComplete (IteratorResult::complete())
  • Implements IteratorStep (IteratorRecord::step())
  • Makes IteratorNext (IteratorRecord::next()) spec compliant
  • Deprecates/removes JsValue::get_field().

@HalidOdat HalidOdat added bug Something isn't working execution Issues or PRs related to code execution labels Mar 2, 2022
@github-actions
Copy link

github-actions bot commented Mar 2, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 88,342 88,342 0
Passed 43,231 43,233 +2
Ignored 21,413 21,413 0
Failed 23,698 23,696 -2
Panics 0 0 0
Conformance 48.94% 48.94% +0.00%
Fixed tests (2):
test/language/statements/for-of/iterator-next-result-type.js [strict mode] (previously Failed)
test/language/statements/for-of/iterator-next-result-type.js (previously Failed)

@HalidOdat HalidOdat added this to the v0.14.0 milestone Mar 2, 2022
@codecov
Copy link

codecov bot commented Mar 2, 2022

Codecov Report

Merging #1889 (d6c0ae5) into main (00a1900) will decrease coverage by 0.01%.
The diff coverage is 80.32%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1889      +/-   ##
==========================================
- Coverage   46.61%   46.59%   -0.02%     
==========================================
  Files         205      205              
  Lines       16726    16753      +27     
==========================================
+ Hits         7796     7806      +10     
- Misses       8930     8947      +17     
Impacted Files Coverage Δ
boa_engine/src/value/mod.rs 51.48% <ø> (-0.70%) ⬇️
boa_engine/src/builtins/iterable/mod.rs 49.01% <72.00%> (-1.67%) ⬇️
boa_engine/src/vm/mod.rs 70.94% <80.00%> (+0.24%) ⬆️
boa_engine/src/builtins/map/mod.rs 85.10% <100.00%> (+0.16%) ⬆️
boa_engine/src/builtins/set/mod.rs 87.95% <100.00%> (-0.29%) ⬇️
boa_engine/src/object/jsobject.rs 49.68% <0.00%> (-0.63%) ⬇️
boa_engine/src/object/internal_methods/array.rs 77.77% <0.00%> (-0.41%) ⬇️
...arser/expression/primary/object_initializer/mod.rs 40.46% <0.00%> (-0.34%) ⬇️

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 00a1900...d6c0ae5. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Mar 2, 2022

Benchmark for 56da1df

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 509.5±1.80ns 517.8±0.99ns +1.63%
Arithmetic operations (Execution) 1978.7±5.91ns 1979.1±5.09ns +0.02%
Arithmetic operations (Parser) 5.2±0.03µs 5.2±0.01µs 0.00%
Array access (Compiler) 1270.7±2.44ns 1266.7±2.54ns -0.31%
Array access (Execution) 9.7±0.05µs 9.7±0.05µs 0.00%
Array access (Parser) 11.5±0.03µs 11.4±0.02µs -0.87%
Array creation (Compiler) 1824.2±3.09ns 1806.8±8.22ns -0.95%
Array creation (Execution) 3.2±0.01ms 3.1±0.00ms -3.13%
Array creation (Parser) 13.0±0.03µs 12.9±0.02µs -0.77%
Array pop (Compiler) 4.0±0.01µs 3.9±0.01µs -2.50%
Array pop (Execution) 1389.4±3.73µs 1330.0±3.52µs -4.28%
Array pop (Parser) 129.2±0.07µs 129.7±0.49µs +0.39%
Boolean Object Access (Compiler) 1108.8±4.71ns 1103.0±2.93ns -0.52%
Boolean Object Access (Execution) 5.7±0.02µs 5.7±0.02µs 0.00%
Boolean Object Access (Parser) 14.1±0.01µs 13.8±0.05µs -2.13%
Clean js (Compiler) 3.3±0.01µs 3.3±0.01µs 0.00%
Clean js (Execution) 1099.5±10.00µs 1088.2±19.96µs -1.03%
Clean js (Parser) 28.2±0.03µs 28.0±0.04µs -0.71%
Create Realm 271.0±3.02ns 271.6±0.58ns +0.22%
Dynamic Object Property Access (Compiler) 1633.3±8.94ns 1612.5±2.78ns -1.27%
Dynamic Object Property Access (Execution) 6.8±0.03µs 6.8±0.04µs 0.00%
Dynamic Object Property Access (Parser) 10.3±0.03µs 10.2±0.02µs -0.97%
Fibonacci (Compiler) 2.3±0.00µs 2.2±0.00µs -4.35%
Fibonacci (Execution) 1750.9±2.65µs 1752.3±2.65µs +0.08%
Fibonacci (Parser) 15.7±0.02µs 15.5±0.03µs -1.27%
For loop (Compiler) 1935.6±4.58ns 1914.3±8.39ns -1.10%
For loop (Execution) 41.8±0.11µs 41.7±0.29µs -0.24%
For loop (Parser) 13.4±0.02µs 13.3±0.06µs -0.75%
Mini js (Compiler) 3.2±0.02µs 3.2±0.01µs 0.00%
Mini js (Execution) 1008.5±8.38µs 1005.3±9.49µs -0.32%
Mini js (Parser) 24.5±0.04µs 24.3±0.03µs -0.82%
Number Object Access (Compiler) 1040.6±3.63ns 1031.7±4.13ns -0.86%
Number Object Access (Execution) 4.4±0.02µs 4.5±0.02µs +2.27%
Number Object Access (Parser) 10.8±0.01µs 10.7±0.01µs -0.93%
Object Creation (Compiler) 1408.9±5.74ns 1371.9±5.57ns -2.63%
Object Creation (Execution) 6.1±0.02µs 6.0±0.01µs -1.64%
Object Creation (Parser) 8.9±0.02µs 8.9±0.02µs 0.00%
RegExp (Compiler) 1642.3±8.82ns 1623.9±8.50ns -1.12%
RegExp (Execution) 12.3±0.27µs 12.1±0.07µs -1.63%
RegExp (Parser) 9.9±0.02µs 9.7±0.03µs -2.02%
RegExp Creation (Compiler) 1408.9±5.81ns 1405.5±6.04ns -0.24%
RegExp Creation (Execution) 9.1±0.03µs 8.9±0.04µs -2.20%
RegExp Creation (Parser) 8.2±0.02µs 8.1±0.02µs -1.22%
RegExp Literal (Compiler) 1613.8±4.51ns 1601.1±2.57ns -0.79%
RegExp Literal (Execution) 12.1±0.06µs 12.0±0.07µs -0.83%
RegExp Literal (Parser) 7.9±0.02µs 7.9±0.02µs 0.00%
RegExp Literal Creation (Compiler) 1404.8±5.48ns 1403.2±4.90ns -0.11%
RegExp Literal Creation (Execution) 9.0±0.03µs 8.9±0.03µs -1.11%
RegExp Literal Creation (Parser) 6.3±0.01µs 6.2±0.02µs -1.59%
Static Object Property Access (Compiler) 1381.8±4.80ns 1386.2±5.91ns +0.32%
Static Object Property Access (Execution) 6.4±0.09µs 6.3±0.02µs -1.56%
Static Object Property Access (Parser) 9.6±0.01µs 9.6±0.02µs 0.00%
String Object Access (Compiler) 1469.6±5.86ns 1463.5±6.10ns -0.42%
String Object Access (Execution) 7.8±0.04µs 7.5±0.03µs -3.85%
String Object Access (Parser) 13.8±0.01µs 13.6±0.03µs -1.45%
String comparison (Compiler) 2.1±0.01µs 2.1±0.01µs 0.00%
String comparison (Execution) 5.9±0.02µs 5.8±0.05µs -1.69%
String comparison (Parser) 10.6±0.02µs 10.7±0.03µs +0.94%
String concatenation (Compiler) 1617.7±4.01ns 1608.7±1.21ns -0.56%
String concatenation (Execution) 5.3±0.01µs 5.2±0.02µs -1.89%
String concatenation (Parser) 7.3±0.02µs 7.4±0.03µs +1.37%
String copy (Compiler) 1283.6±2.77ns 1292.9±2.23ns +0.72%
String copy (Execution) 4.8±0.02µs 4.6±0.01µs -4.17%
String copy (Parser) 5.5±0.02µs 5.5±0.02µs 0.00%
Symbols (Compiler) 911.6±1.89ns 906.4±2.34ns -0.57%
Symbols (Execution) 4.5±0.01µs 4.4±0.02µs -2.22%
Symbols (Parser) 4.2±0.02µs 4.2±0.02µs 0.00%

@github-actions
Copy link

github-actions bot commented Mar 2, 2022

Benchmark for c8f9f2e

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 600.2±8.97ns 598.7±11.22ns -0.25%
Arithmetic operations (Execution) 2.4±0.03µs 2.3±0.04µs -4.17%
Arithmetic operations (Parser) 5.6±0.07µs 5.5±0.09µs -1.79%
Array access (Compiler) 1473.4±27.93ns 1457.2±26.93ns -1.10%
Array access (Execution) 11.4±0.20µs 11.2±0.20µs -1.75%
Array access (Parser) 12.2±0.22µs 12.3±0.22µs +0.82%
Array creation (Compiler) 2.1±0.04µs 2.1±0.05µs 0.00%
Array creation (Execution) 3.7±0.05ms 3.6±0.06ms -2.70%
Array creation (Parser) 13.9±0.22µs 14.1±0.22µs +1.44%
Array pop (Compiler) 4.6±0.09µs 4.5±0.09µs -2.17%
Array pop (Execution) 1630.4±21.41µs 1537.6±24.42µs -5.69%
Array pop (Parser) 143.9±2.57µs 145.0±2.52µs +0.76%
Boolean Object Access (Compiler) 1157.5±17.65ns 1134.9±20.54ns -1.95%
Boolean Object Access (Execution) 6.9±0.04µs 6.6±0.10µs -4.35%
Boolean Object Access (Parser) 15.2±0.26µs 15.0±0.26µs -1.32%
Clean js (Compiler) 3.8±0.06µs 3.8±0.06µs 0.00%
Clean js (Execution) 1273.6±19.71µs 1264.6±20.90µs -0.71%
Clean js (Parser) 29.9±0.60µs 29.7±0.42µs -0.67%
Create Realm 322.3±41.80ns 316.6±5.63ns -1.77%
Dynamic Object Property Access (Compiler) 1854.4±25.80ns 1858.7±32.05ns +0.23%
Dynamic Object Property Access (Execution) 7.9±0.15µs 7.8±0.15µs -1.27%
Dynamic Object Property Access (Parser) 10.8±0.18µs 10.7±0.16µs -0.93%
Fibonacci (Compiler) 2.5±0.04µs 2.6±0.05µs +4.00%
Fibonacci (Execution) 2.0±0.03ms 2.0±0.05ms 0.00%
Fibonacci (Parser) 17.0±0.29µs 16.9±0.27µs -0.59%
For loop (Compiler) 2.2±0.04µs 2.3±0.04µs +4.55%
For loop (Execution) 49.3±0.92µs 48.3±0.77µs -2.03%
For loop (Parser) 14.4±0.25µs 14.5±0.25µs +0.69%
Mini js (Compiler) 3.7±0.07µs 3.7±0.06µs 0.00%
Mini js (Execution) 1164.8±19.29µs 1179.0±16.71µs +1.22%
Mini js (Parser) 26.4±0.36µs 26.0±0.41µs -1.52%
Number Object Access (Compiler) 1092.9±15.07ns 1089.9±20.23ns -0.27%
Number Object Access (Execution) 5.3±0.06µs 5.2±0.08µs -1.89%
Number Object Access (Parser) 11.6±0.21µs 11.6±0.21µs 0.00%
Object Creation (Compiler) 1597.6±24.53ns 1604.9±30.20ns +0.46%
Object Creation (Execution) 7.0±0.12µs 7.1±0.12µs +1.43%
Object Creation (Parser) 9.5±0.17µs 9.6±0.16µs +1.05%
RegExp (Compiler) 1875.2±30.97ns 1871.7±27.27ns -0.19%
RegExp (Execution) 14.0±0.26µs 13.7±0.28µs -2.14%
RegExp (Parser) 10.6±0.15µs 10.3±0.18µs -2.83%
RegExp Creation (Compiler) 1628.9±30.45ns 1634.0±28.25ns +0.31%
RegExp Creation (Execution) 10.6±0.14µs 10.2±0.18µs -3.77%
RegExp Creation (Parser) 8.9±0.18µs 8.7±0.13µs -2.25%
RegExp Literal (Compiler) 1914.4±38.52ns 1871.8±28.28ns -2.23%
RegExp Literal (Execution) 14.2±0.13µs 13.7±0.24µs -3.52%
RegExp Literal (Parser) 8.3±0.13µs 8.4±0.14µs +1.20%
RegExp Literal Creation (Compiler) 1654.5±23.98ns 1635.8±37.89ns -1.13%
RegExp Literal Creation (Execution) 10.5±0.21µs 10.3±0.15µs -1.90%
RegExp Literal Creation (Parser) 6.6±0.11µs 6.7±0.08µs +1.52%
Static Object Property Access (Compiler) 1606.0±26.77ns 1646.6±32.14ns +2.53%
Static Object Property Access (Execution) 7.4±0.14µs 7.3±0.12µs -1.35%
Static Object Property Access (Parser) 10.2±0.20µs 10.2±0.18µs 0.00%
String Object Access (Compiler) 1591.7±26.20ns 1554.4±31.29ns -2.34%
String Object Access (Execution) 8.9±0.14µs 8.7±0.14µs -2.25%
String Object Access (Parser) 14.8±0.25µs 14.9±0.33µs +0.68%
String comparison (Compiler) 2.5±0.05µs 2.4±0.05µs -4.00%
String comparison (Execution) 7.0±0.07µs 6.8±0.11µs -2.86%
String comparison (Parser) 11.4±0.20µs 11.5±0.15µs +0.88%
String concatenation (Compiler) 1876.3±26.97ns 1899.0±23.92ns +1.21%
String concatenation (Execution) 6.2±0.10µs 6.2±0.13µs 0.00%
String concatenation (Parser) 7.7±0.11µs 7.8±0.13µs +1.30%
String copy (Compiler) 1518.8±22.39ns 1502.9±22.64ns -1.05%
String copy (Execution) 5.6±0.09µs 5.4±0.10µs -3.57%
String copy (Parser) 5.7±0.10µs 5.7±0.09µs 0.00%
Symbols (Compiler) 1045.4±19.52ns 1052.2±18.66ns +0.65%
Symbols (Execution) 5.2±0.09µs 5.1±0.09µs -1.92%
Symbols (Parser) 4.4±0.08µs 4.3±0.06µs -2.27%

@github-actions
Copy link

github-actions bot commented Mar 2, 2022

Benchmark for c344286

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 609.5±52.80ns 570.1±25.06ns -6.46%
Arithmetic operations (Execution) 2.1±0.11µs 2.2±0.09µs +4.76%
Arithmetic operations (Parser) 5.4±0.13µs 5.3±0.20µs -1.85%
Array access (Compiler) 1437.3±52.88ns 1468.1±46.33ns +2.14%
Array access (Execution) 11.0±0.90µs 11.0±0.79µs 0.00%
Array access (Parser) 12.9±0.66µs 11.5±0.86µs -10.85%
Array creation (Compiler) 1972.7±72.52ns 2.1±0.12µs +6.45%
Array creation (Execution) 3.4±0.17ms 3.5±0.14ms +2.94%
Array creation (Parser) 14.9±1.46µs 13.7±0.39µs -8.05%
Array pop (Compiler) 4.7±0.24µs 4.5±0.11µs -4.26%
Array pop (Execution) 1466.0±61.64µs 1579.0±86.38µs +7.71%
Array pop (Parser) 154.1±12.64µs 137.5±6.08µs -10.77%
Boolean Object Access (Compiler) 1117.3±26.04ns 1112.1±31.17ns -0.47%
Boolean Object Access (Execution) 6.4±0.34µs 6.5±0.44µs +1.56%
Boolean Object Access (Parser) 16.5±2.94µs 14.8±0.46µs -10.30%
Clean js (Compiler) 3.8±0.27µs 3.6±0.15µs -5.26%
Clean js (Execution) 1210.3±64.58µs 1198.1±53.06µs -1.01%
Clean js (Parser) 29.7±0.80µs 32.2±2.83µs +8.42%
Create Realm 320.7±19.08ns 305.7±21.33ns -4.68%
Dynamic Object Property Access (Compiler) 1753.9±92.72ns 1868.6±249.15ns +6.54%
Dynamic Object Property Access (Execution) 7.7±0.64µs 7.3±0.31µs -5.19%
Dynamic Object Property Access (Parser) 10.4±0.44µs 10.7±1.82µs +2.88%
Fibonacci (Compiler) 2.4±0.12µs 2.6±0.28µs +8.33%
Fibonacci (Execution) 2.1±0.12ms 1985.2±63.07µs -5.47%
Fibonacci (Parser) 17.1±0.90µs 16.0±1.18µs -6.43%
For loop (Compiler) 2.2±0.09µs 2.1±0.08µs -4.55%
For loop (Execution) 49.0±4.94µs 48.0±1.24µs -2.04%
For loop (Parser) 13.9±0.49µs 14.0±1.37µs +0.72%
Mini js (Compiler) 3.8±0.27µs 3.6±0.18µs -5.26%
Mini js (Execution) 1154.5±21.12µs 1114.7±52.04µs -3.45%
Mini js (Parser) 25.2±1.26µs 26.4±2.32µs +4.76%
Number Object Access (Compiler) 1060.9±37.29ns 1049.5±37.91ns -1.07%
Number Object Access (Execution) 4.8±0.28µs 5.0±0.22µs +4.17%
Number Object Access (Parser) 11.6±0.26µs 11.1±0.42µs -4.31%
Object Creation (Compiler) 1486.1±65.97ns 1673.3±186.08ns +12.60%
Object Creation (Execution) 7.0±0.42µs 7.1±0.24µs +1.43%
Object Creation (Parser) 9.2±0.43µs 8.6±0.45µs -6.52%
RegExp (Compiler) 1780.5±67.35ns 1806.8±84.53ns +1.48%
RegExp (Execution) 13.0±0.58µs 13.9±1.15µs +6.92%
RegExp (Parser) 10.7±0.22µs 9.7±0.43µs -9.35%
RegExp Creation (Compiler) 1741.9±127.91ns 1690.2±142.28ns -2.97%
RegExp Creation (Execution) 9.6±0.51µs 9.9±0.40µs +3.13%
RegExp Creation (Parser) 9.2±0.64µs 7.9±0.43µs -14.13%
RegExp Literal (Compiler) 1825.5±70.67ns 1834.9±83.65ns +0.51%
RegExp Literal (Execution) 13.5±1.10µs 13.3±0.62µs -1.48%
RegExp Literal (Parser) 9.0±0.60µs 7.6±0.40µs -15.56%
RegExp Literal Creation (Compiler) 1675.7±165.30ns 1643.1±192.07ns -1.95%
RegExp Literal Creation (Execution) 9.9±0.90µs 9.6±0.43µs -3.03%
RegExp Literal Creation (Parser) 6.5±0.22µs 6.1±0.54µs -6.15%
Static Object Property Access (Compiler) 1512.5±75.86ns 1583.7±60.28ns +4.71%
Static Object Property Access (Execution) 7.2±0.47µs 7.0±0.26µs -2.78%
Static Object Property Access (Parser) 9.9±0.36µs 9.6±0.90µs -3.03%
String Object Access (Compiler) 1568.2±102.23ns 1528.8±55.60ns -2.51%
String Object Access (Execution) 7.9±0.45µs 9.0±0.64µs +13.92%
String Object Access (Parser) 15.1±0.26µs 14.2±0.72µs -5.96%
String comparison (Compiler) 2.5±0.14µs 2.4±0.07µs -4.00%
String comparison (Execution) 6.1±0.34µs 6.4±0.22µs +4.92%
String comparison (Parser) 11.7±0.16µs 11.1±0.50µs -5.13%
String concatenation (Compiler) 1939.5±120.88ns 1884.4±31.43ns -2.84%
String concatenation (Execution) 5.8±0.46µs 5.8±0.21µs 0.00%
String concatenation (Parser) 7.9±0.12µs 8.3±0.96µs +5.06%
String copy (Compiler) 1472.2±44.40ns 1487.0±30.49ns +1.01%
String copy (Execution) 5.2±0.45µs 5.0±0.19µs -3.85%
String copy (Parser) 5.6±0.17µs 5.6±0.25µs 0.00%
Symbols (Compiler) 1099.8±34.48ns 1030.2±35.83ns -6.33%
Symbols (Execution) 4.9±0.18µs 5.2±0.13µs +6.12%
Symbols (Parser) 4.4±0.32µs 4.3±0.35µs -2.27%

- Remove `JsValue::get_field()`
@github-actions
Copy link

github-actions bot commented Mar 2, 2022

Benchmark for cf02e7f

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 501.5±1.42ns 510.0±1.92ns +1.69%
Arithmetic operations (Execution) 1952.5±2.01ns 1945.3±2.98ns -0.37%
Arithmetic operations (Parser) 5.2±0.00µs 5.2±0.01µs 0.00%
Array access (Compiler) 1253.2±2.06ns 1252.0±2.20ns -0.10%
Array access (Execution) 9.7±0.05µs 9.8±0.05µs +1.03%
Array access (Parser) 11.4±0.02µs 11.5±0.02µs +0.88%
Array creation (Compiler) 1796.9±5.20ns 1816.6±5.07ns +1.10%
Array creation (Execution) 3.1±0.01ms 3.2±0.01ms +3.23%
Array creation (Parser) 12.7±0.03µs 13.0±0.02µs +2.36%
Array pop (Compiler) 3.9±0.01µs 3.9±0.01µs 0.00%
Array pop (Execution) 1339.4±3.43µs 1403.7±3.03µs +4.80%
Array pop (Parser) 128.8±0.09µs 130.0±0.19µs +0.93%
Boolean Object Access (Compiler) 1094.9±5.54ns 1100.0±3.94ns +0.47%
Boolean Object Access (Execution) 5.9±0.05µs 5.8±0.04µs -1.69%
Boolean Object Access (Parser) 13.7±0.12µs 14.3±0.09µs +4.38%
Clean js (Compiler) 3.3±0.01µs 3.4±0.01µs +3.03%
Clean js (Execution) 1078.8±7.49µs 1100.8±5.43µs +2.04%
Clean js (Parser) 27.8±0.04µs 28.2±0.03µs +1.44%
Create Realm 264.7±5.81ns 274.6±0.29ns +3.74%
Dynamic Object Property Access (Compiler) 1619.1±4.20ns 1575.0±2.93ns -2.72%
Dynamic Object Property Access (Execution) 6.9±0.05µs 6.8±0.05µs -1.45%
Dynamic Object Property Access (Parser) 10.2±0.02µs 10.3±0.01µs +0.98%
Fibonacci (Compiler) 2.3±0.01µs 2.2±0.00µs -4.35%
Fibonacci (Execution) 1735.3±4.81µs 1780.1±3.15µs +2.58%
Fibonacci (Parser) 15.7±0.08µs 15.7±0.09µs 0.00%
For loop (Compiler) 1960.1±11.92ns 1945.7±4.91ns -0.73%
For loop (Execution) 42.3±0.11µs 42.2±0.06µs -0.24%
For loop (Parser) 13.3±0.02µs 13.4±0.02µs +0.75%
Mini js (Compiler) 3.2±0.01µs 3.2±0.01µs 0.00%
Mini js (Execution) 991.9±7.90µs 1013.9±5.71µs +2.22%
Mini js (Parser) 24.2±0.02µs 24.6±0.03µs +1.65%
Number Object Access (Compiler) 1019.4±1.93ns 1031.3±5.13ns +1.17%
Number Object Access (Execution) 4.6±0.04µs 4.5±0.02µs -2.17%
Number Object Access (Parser) 10.8±0.01µs 11.0±0.01µs +1.85%
Object Creation (Compiler) 1346.1±3.18ns 1371.4±6.41ns +1.88%
Object Creation (Execution) 6.0±0.02µs 6.0±0.02µs 0.00%
Object Creation (Parser) 8.9±0.01µs 9.0±0.02µs +1.12%
RegExp (Compiler) 1610.4±2.62ns 1586.1±2.83ns -1.51%
RegExp (Execution) 12.5±0.03µs 12.7±0.04µs +1.60%
RegExp (Parser) 9.7±0.02µs 9.9±0.03µs +2.06%
RegExp Creation (Compiler) 1395.0±5.32ns 1361.3±6.58ns -2.42%
RegExp Creation (Execution) 9.4±0.04µs 9.5±0.04µs +1.06%
RegExp Creation (Parser) 8.1±0.02µs 8.2±0.02µs +1.23%
RegExp Literal (Compiler) 1599.4±13.60ns 1603.2±1.92ns +0.24%
RegExp Literal (Execution) 12.4±0.20µs 12.5±0.04µs +0.81%
RegExp Literal (Parser) 7.8±0.02µs 8.0±0.02µs +2.56%
RegExp Literal Creation (Compiler) 1405.6±5.93ns 1400.7±5.71ns -0.35%
RegExp Literal Creation (Execution) 9.4±0.04µs 9.5±0.05µs +1.06%
RegExp Literal Creation (Parser) 6.2±0.01µs 6.3±0.01µs +1.61%
Static Object Property Access (Compiler) 1394.6±5.70ns 1392.2±5.99ns -0.17%
Static Object Property Access (Execution) 6.4±0.03µs 6.3±0.03µs -1.56%
Static Object Property Access (Parser) 9.5±0.02µs 9.7±0.03µs +2.11%
String Object Access (Compiler) 1422.6±7.57ns 1456.0±6.72ns +2.35%
String Object Access (Execution) 7.8±0.02µs 7.4±0.09µs -5.13%
String Object Access (Parser) 13.5±0.01µs 13.9±0.01µs +2.96%
String comparison (Compiler) 2.1±0.01µs 2.1±0.01µs 0.00%
String comparison (Execution) 5.8±0.01µs 5.8±0.01µs 0.00%
String comparison (Parser) 10.5±0.02µs 10.6±0.01µs +0.95%
String concatenation (Compiler) 1626.5±3.99ns 1601.5±2.13ns -1.54%
String concatenation (Execution) 5.3±0.02µs 5.3±0.03µs 0.00%
String concatenation (Parser) 7.2±0.02µs 7.3±0.01µs +1.39%
String copy (Compiler) 1279.3±2.93ns 1284.2±2.84ns +0.38%
String copy (Execution) 4.7±0.03µs 4.7±0.03µs 0.00%
String copy (Parser) 5.4±0.02µs 5.5±0.01µs +1.85%
Symbols (Compiler) 907.3±1.40ns 898.1±1.39ns -1.01%
Symbols (Execution) 4.5±0.01µs 4.5±0.04µs 0.00%
Symbols (Parser) 4.2±0.01µs 4.3±0.01µs +2.38%

@jedel1043
Copy link
Member

bors r+

bors bot pushed a commit that referenced this pull request Mar 3, 2022
This PR is also related to #577 

Changes:
- Implements `IteratorValue` (`IteratorResult::value()`)
- Implements `IteratorComplete` (`IteratorResult::complete()`)
- Implements `IteratorStep` (`IteratorRecord::step()`)
- Makes  `IteratorNext` (`IteratorRecord::next()`) spec compliant
- Deprecates/removes `JsValue::get_field()`.
@bors
Copy link

bors bot commented Mar 3, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Make iterator spec complaint [Merged by Bors] - Make iterator spec complaint Mar 3, 2022
@bors bors bot closed this Mar 3, 2022
@bors bors bot deleted the fix/iterator branch March 3, 2022 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working execution Issues or PRs related to code execution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants