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 StringToNumber spec compliant #1881

Closed
wants to merge 3 commits into from

Conversation

HalidOdat
Copy link
Member

@HalidOdat HalidOdat commented Mar 1, 2022

This PR enables StringToNumber() to parse binary, octal and hexadecimal numbers.

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

github-actions bot commented Mar 1, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 88,342 88,342 0
Passed 43,039 43,105 +66
Ignored 21,413 21,413 0
Failed 23,890 23,824 -66
Panics 0 0 0
Conformance 48.72% 48.79% +0.07%
Fixed tests (66):
test/language/expressions/equals/S11.9.1_A5.2.js [strict mode] (previously Failed)
test/language/expressions/equals/S11.9.1_A5.2.js (previously Failed)
test/language/expressions/does-not-equals/S11.9.2_A5.2.js [strict mode] (previously Failed)
test/language/expressions/does-not-equals/S11.9.2_A5.2.js (previously Failed)
test/built-ins/Array/prototype/indexOf/15.4.4.14-5-19.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/indexOf/15.4.4.14-5-19.js (previously Failed)
test/built-ins/Array/prototype/indexOf/15.4.4.14-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/indexOf/15.4.4.14-3-16.js (previously Failed)
test/built-ins/Array/prototype/reduce/15.4.4.21-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/reduce/15.4.4.21-3-16.js (previously Failed)
test/built-ins/Array/prototype/forEach/15.4.4.18-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/forEach/15.4.4.18-3-16.js (previously Failed)
test/built-ins/Array/prototype/reduceRight/15.4.4.22-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/reduceRight/15.4.4.22-3-16.js (previously Failed)
test/built-ins/Array/prototype/every/15.4.4.16-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/every/15.4.4.16-3-16.js (previously Failed)
test/built-ins/Array/prototype/filter/15.4.4.20-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/filter/15.4.4.20-3-16.js (previously Failed)
test/built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-19.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-19.js (previously Failed)
test/built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-16.js (previously Failed)
test/built-ins/Array/prototype/map/15.4.4.19-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/map/15.4.4.19-3-16.js (previously Failed)
test/built-ins/Array/prototype/some/15.4.4.17-3-16.js [strict mode] (previously Failed)
test/built-ins/Array/prototype/some/15.4.4.17-3-16.js (previously Failed)
test/built-ins/Number/S9.3.1_A21.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A21.js (previously Failed)
test/built-ins/Number/S9.3.1_A30.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A30.js (previously Failed)
test/built-ins/Number/S9.3.1_A25.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A25.js (previously Failed)
test/built-ins/Number/S9.3.1_A19.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A19.js (previously Failed)
test/built-ins/Number/S9.3.1_A24.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A24.js (previously Failed)
test/built-ins/Number/S9.3.1_A27.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A27.js (previously Failed)
test/built-ins/Number/string-binary-literal.js [strict mode] (previously Failed)
test/built-ins/Number/string-binary-literal.js (previously Failed)
test/built-ins/Number/S9.3.1_A20.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A20.js (previously Failed)
test/built-ins/Number/S9.3.1_A18.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A18.js (previously Failed)
test/built-ins/Number/S9.3.1_A31.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A31.js (previously Failed)
test/built-ins/Number/S9.3.1_A16.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A16.js (previously Failed)
test/built-ins/Number/S9.3.1_A29.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A29.js (previously Failed)
test/built-ins/Number/S9.3.1_A17.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A17.js (previously Failed)
test/built-ins/Number/string-octal-literal.js [strict mode] (previously Failed)
test/built-ins/Number/string-octal-literal.js (previously Failed)
test/built-ins/Number/S9.3.1_A26.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A26.js (previously Failed)
test/built-ins/Number/S9.3.1_A23.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A23.js (previously Failed)
test/built-ins/Number/S9.3.1_A28.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A28.js (previously Failed)
test/built-ins/Number/S9.3.1_A22.js [strict mode] (previously Failed)
test/built-ins/Number/S9.3.1_A22.js (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-143.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperty/15.2.3.6-4-143.js (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-139.js [strict mode] (previously Failed)
test/built-ins/Object/defineProperties/15.2.3.7-6-a-139.js (previously Failed)

@codecov
Copy link

codecov bot commented Mar 1, 2022

Codecov Report

Merging #1881 (dbef2d0) into main (3fe7d09) will decrease coverage by 0.00%.
The diff coverage is 50.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1881      +/-   ##
==========================================
- Coverage   46.71%   46.71%   -0.01%     
==========================================
  Files         204      204              
  Lines       16732    16741       +9     
==========================================
+ Hits         7817     7820       +3     
- Misses       8915     8921       +6     
Impacted Files Coverage Δ
boa_engine/src/string.rs 55.86% <50.00%> (-2.54%) ⬇️
boa_engine/src/vm/mod.rs 70.61% <0.00%> (-0.11%) ⬇️
boa_engine/src/builtins/number/mod.rs 77.77% <0.00%> (+0.76%) ⬆️

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 3fe7d09...dbef2d0. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Mar 1, 2022

Benchmark for fafa942

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 458.1±1.36ns 459.4±1.25ns +0.28%
Arithmetic operations (Execution) 1765.9±9.48ns 1749.0±6.87ns -0.96%
Arithmetic operations (Parser) 4.7±0.02µs 4.6±0.01µs -2.13%
Array access (Compiler) 1120.3±3.08ns 1132.7±1.92ns +1.11%
Array access (Execution) 8.5±0.04µs 8.7±0.02µs +2.35%
Array access (Parser) 10.2±0.04µs 10.1±0.02µs -0.98%
Array creation (Compiler) 1625.1±6.08ns 1621.3±5.69ns -0.23%
Array creation (Execution) 2.8±0.01ms 2.8±0.01ms 0.00%
Array creation (Parser) 11.4±0.04µs 11.4±0.06µs 0.00%
Array pop (Compiler) 3.5±0.01µs 3.9±0.01µs +11.43%
Array pop (Execution) 1223.7±2.01µs 1209.7±4.33µs -1.14%
Array pop (Parser) 114.0±1.56µs 114.1±0.08µs +0.09%
Boolean Object Access (Compiler) 990.7±9.01ns 981.1±1.31ns -0.97%
Boolean Object Access (Execution) 5.0±0.03µs 5.8±0.02µs +16.00%
Boolean Object Access (Parser) 12.4±0.02µs 12.5±0.02µs +0.81%
Clean js (Compiler) 3.0±0.02µs 3.0±0.01µs 0.00%
Clean js (Execution) 964.7±5.03µs 959.9±4.08µs -0.50%
Clean js (Parser) 24.7±0.12µs 24.7±0.03µs 0.00%
Create Realm 239.0±1.07ns 240.7±0.59ns +0.71%
Dynamic Object Property Access (Compiler) 1422.9±4.72ns 1424.8±5.86ns +0.13%
Dynamic Object Property Access (Execution) 6.0±0.03µs 6.1±0.02µs +1.67%
Dynamic Object Property Access (Parser) 9.1±0.05µs 10.3±0.02µs +13.19%
Fibonacci (Compiler) 2.0±0.00µs 2.0±0.00µs 0.00%
Fibonacci (Execution) 1542.2±2.53µs 1573.1±5.21µs +2.00%
Fibonacci (Parser) 13.9±0.05µs 15.9±0.05µs +14.39%
For loop (Compiler) 1708.9±5.69ns 1719.2±4.13ns +0.60%
For loop (Execution) 37.6±0.09µs 37.3±0.12µs -0.80%
For loop (Parser) 11.9±0.02µs 11.7±0.04µs -1.68%
Mini js (Compiler) 2.9±0.01µs 2.8±0.01µs -3.45%
Mini js (Execution) 885.5±5.72µs 879.3±3.90µs -0.70%
Mini js (Parser) 21.5±0.07µs 21.6±0.02µs +0.47%
Number Object Access (Compiler) 915.7±1.93ns 925.4±1.98ns +1.06%
Number Object Access (Execution) 4.0±0.02µs 4.5±0.01µs +12.50%
Number Object Access (Parser) 9.6±0.01µs 9.6±0.09µs 0.00%
Object Creation (Compiler) 1222.3±3.79ns 1390.0±10.95ns +13.72%
Object Creation (Execution) 5.3±0.02µs 5.3±0.01µs 0.00%
Object Creation (Parser) 7.9±0.02µs 7.9±0.02µs 0.00%
RegExp (Compiler) 1442.2±4.82ns 1413.5±5.50ns -1.99%
RegExp (Execution) 10.6±0.04µs 10.7±0.04µs +0.94%
RegExp (Parser) 8.7±0.02µs 8.6±0.03µs -1.15%
RegExp Creation (Compiler) 1250.0±2.86ns 1417.9±4.55ns +13.43%
RegExp Creation (Execution) 8.0±0.02µs 8.0±0.02µs 0.00%
RegExp Creation (Parser) 7.3±0.02µs 7.2±0.02µs -1.37%
RegExp Literal (Compiler) 1440.0±2.45ns 1611.2±5.26ns +11.89%
RegExp Literal (Execution) 10.7±0.04µs 10.8±0.05µs +0.93%
RegExp Literal (Parser) 7.0±0.03µs 7.0±0.01µs 0.00%
RegExp Literal Creation (Compiler) 1257.0±2.95ns 1407.4±5.88ns +11.96%
RegExp Literal Creation (Execution) 8.0±0.06µs 9.1±0.04µs +13.75%
RegExp Literal Creation (Parser) 5.6±0.03µs 5.5±0.02µs -1.79%
Static Object Property Access (Compiler) 1249.2±2.69ns 1237.5±2.98ns -0.94%
Static Object Property Access (Execution) 5.6±0.01µs 5.6±0.02µs 0.00%
Static Object Property Access (Parser) 8.5±0.03µs 8.5±0.02µs 0.00%
String Object Access (Compiler) 1311.5±6.96ns 1295.2±2.66ns -1.24%
String Object Access (Execution) 6.7±0.04µs 6.7±0.02µs 0.00%
String Object Access (Parser) 12.1±0.04µs 13.8±0.01µs +14.05%
String comparison (Compiler) 1860.5±4.28ns 1837.8±4.53ns -1.22%
String comparison (Execution) 5.1±0.04µs 5.8±0.02µs +13.73%
String comparison (Parser) 9.3±0.03µs 9.3±0.02µs 0.00%
String concatenation (Compiler) 1451.5±3.93ns 1436.3±4.50ns -1.05%
String concatenation (Execution) 4.6±0.02µs 5.2±0.02µs +13.04%
String concatenation (Parser) 6.4±0.02µs 6.4±0.03µs 0.00%
String copy (Compiler) 1142.3±1.96ns 1157.7±2.37ns +1.35%
String copy (Execution) 4.1±0.01µs 4.1±0.02µs 0.00%
String copy (Parser) 4.8±0.02µs 4.8±0.01µs 0.00%
Symbols (Compiler) 805.3±2.25ns 822.1±1.36ns +2.09%
Symbols (Execution) 3.9±0.01µs 4.0±0.01µs +2.56%
Symbols (Parser) 3.8±0.01µs 3.7±0.02µs -2.63%

@github-actions
Copy link

github-actions bot commented Mar 1, 2022

Benchmark for 2bfb490

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 514.5±1.04ns 502.5±1.29ns -2.33%
Arithmetic operations (Execution) 2.0±0.00µs 1955.3±6.17ns -2.23%
Arithmetic operations (Parser) 5.3±0.01µs 5.2±0.00µs -1.89%
Array access (Compiler) 1263.3±2.57ns 1280.1±2.18ns +1.33%
Array access (Execution) 9.8±0.05µs 9.8±0.05µs 0.00%
Array access (Parser) 11.6±0.02µs 11.4±0.01µs -1.72%
Array creation (Compiler) 1822.8±6.97ns 1839.4±5.64ns +0.91%
Array creation (Execution) 3.2±0.01ms 3.0±0.01ms -6.25%
Array creation (Parser) 13.0±0.02µs 12.7±0.02µs -2.31%
Array pop (Compiler) 3.9±0.01µs 3.8±0.01µs -2.56%
Array pop (Execution) 1389.1±3.21µs 1328.5±2.27µs -4.36%
Array pop (Parser) 129.1±0.11µs 129.3±0.13µs +0.15%
Boolean Object Access (Compiler) 1118.1±3.77ns 1094.4±53.48ns -2.12%
Boolean Object Access (Execution) 5.8±0.03µs 5.7±0.04µs -1.72%
Boolean Object Access (Parser) 14.0±0.01µs 13.7±0.09µs -2.14%
Clean js (Compiler) 3.4±0.01µs 3.3±0.01µs -2.94%
Clean js (Execution) 1103.6±10.02µs 1077.7±7.98µs -2.35%
Clean js (Parser) 28.0±0.04µs 27.7±0.04µs -1.07%
Create Realm 270.9±3.39ns 266.0±2.67ns -1.81%
Dynamic Object Property Access (Compiler) 1600.5±1.97ns 1585.0±4.90ns -0.97%
Dynamic Object Property Access (Execution) 6.8±0.03µs 6.9±0.03µs +1.47%
Dynamic Object Property Access (Parser) 10.3±0.02µs 10.1±0.03µs -1.94%
Fibonacci (Compiler) 2.3±0.01µs 2.3±0.01µs 0.00%
Fibonacci (Execution) 1747.8±5.06µs 1793.7±4.35µs +2.63%
Fibonacci (Parser) 15.7±0.06µs 15.6±0.05µs -0.64%
For loop (Compiler) 1937.6±9.32ns 1955.8±4.89ns +0.94%
For loop (Execution) 42.6±0.12µs 127.4±1.66µs +199.06%
For loop (Parser) 13.4±0.02µs 13.2±0.01µs -1.49%
Mini js (Compiler) 3.2±0.01µs 3.2±0.01µs 0.00%
Mini js (Execution) 1011.6±7.22µs 987.6±4.53µs -2.37%
Mini js (Parser) 24.4±0.05µs 24.4±0.32µs 0.00%
Number Object Access (Compiler) 1038.4±4.27ns 1016.0±2.50ns -2.16%
Number Object Access (Execution) 4.5±0.01µs 4.5±0.05µs 0.00%
Number Object Access (Parser) 10.9±0.01µs 10.7±0.13µs -1.83%
Object Creation (Compiler) 1376.0±5.19ns 1341.8±1.39ns -2.49%
Object Creation (Execution) 6.1±0.11µs 18.0±0.10µs +195.08%
Object Creation (Parser) 9.0±0.03µs 8.8±0.02µs -2.22%
RegExp (Compiler) 1605.5±2.87ns 1603.8±1.96ns -0.11%
RegExp (Execution) 12.2±0.06µs 12.8±0.04µs +4.92%
RegExp (Parser) 9.8±0.02µs 9.7±0.02µs -1.02%
RegExp Creation (Compiler) 1395.3±5.74ns 1360.9±5.25ns -2.47%
RegExp Creation (Execution) 9.0±0.03µs 9.5±0.05µs +5.56%
RegExp Creation (Parser) 8.2±0.02µs 8.0±0.03µs -2.44%
RegExp Literal (Compiler) 1619.7±5.01ns 1603.0±2.09ns -1.03%
RegExp Literal (Execution) 12.1±0.27µs 12.8±0.04µs +5.79%
RegExp Literal (Parser) 7.9±0.02µs 7.8±0.02µs -1.27%
RegExp Literal Creation (Compiler) 1409.7±9.89ns 1394.3±5.73ns -1.09%
RegExp Literal Creation (Execution) 9.0±0.03µs 9.5±0.05µs +5.56%
RegExp Literal Creation (Parser) 6.3±0.02µs 6.1±0.02µs -3.17%
Static Object Property Access (Compiler) 1397.8±5.70ns 1396.1±5.87ns -0.12%
Static Object Property Access (Execution) 6.4±0.03µs 6.3±0.02µs -1.56%
Static Object Property Access (Parser) 9.7±0.36µs 9.5±0.02µs -2.06%
String Object Access (Compiler) 1473.1±6.33ns 1453.8±5.56ns -1.31%
String Object Access (Execution) 7.6±0.03µs 7.7±0.03µs +1.32%
String Object Access (Parser) 13.8±0.02µs 13.5±0.03µs -2.17%
String comparison (Compiler) 2.1±0.01µs 2.1±0.01µs 0.00%
String comparison (Execution) 5.8±0.02µs 5.8±0.01µs 0.00%
String comparison (Parser) 10.5±0.02µs 10.6±0.02µs +0.95%
String concatenation (Compiler) 1602.7±2.25ns 1648.6±9.90ns +2.86%
String concatenation (Execution) 5.2±0.02µs 5.3±0.02µs +1.92%
String concatenation (Parser) 7.3±0.02µs 7.3±0.03µs 0.00%
String copy (Compiler) 1302.4±2.69ns 1299.0±3.25ns -0.26%
String copy (Execution) 4.7±0.03µs 4.7±0.03µs 0.00%
String copy (Parser) 5.5±0.01µs 5.4±0.02µs -1.82%
Symbols (Compiler) 915.6±2.08ns 906.5±1.27ns -0.99%
Symbols (Execution) 4.5±0.01µs 4.4±0.02µs -2.22%
Symbols (Parser) 4.2±0.01µs 4.2±0.02µs 0.00%

@github-actions
Copy link

github-actions bot commented Mar 1, 2022

Benchmark for e38b8d5

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 451.2±2.51ns 504.2±1.54ns +11.75%
Arithmetic operations (Execution) 2.0±0.00µs 1936.9±2.16ns -3.15%
Arithmetic operations (Parser) 4.6±0.02µs 5.2±0.00µs +13.04%
Array access (Compiler) 1135.2±12.17ns 1128.4±11.70ns -0.60%
Array access (Execution) 8.5±0.08µs 8.6±0.13µs +1.18%
Array access (Parser) 10.1±0.06µs 10.0±0.05µs -0.99%
Array creation (Compiler) 1638.6±10.36ns 1624.2±9.05ns -0.88%
Array creation (Execution) 2.8±0.01ms 2.7±0.01ms -3.57%
Array creation (Parser) 13.1±0.02µs 11.3±0.07µs -13.74%
Array pop (Compiler) 4.0±0.00µs 3.9±0.01µs -2.50%
Array pop (Execution) 1385.5±3.45µs 1163.3±6.03µs -16.04%
Array pop (Parser) 129.2±0.28µs 113.5±0.74µs -12.15%
Boolean Object Access (Compiler) 1119.7±3.53ns 955.8±6.51ns -14.64%
Boolean Object Access (Execution) 5.7±0.03µs 5.0±0.05µs -12.28%
Boolean Object Access (Parser) 12.3±0.10µs 13.7±0.02µs +11.38%
Clean js (Compiler) 3.0±0.02µs 3.3±0.02µs +10.00%
Clean js (Execution) 1099.4±9.91µs 1072.3±6.77µs -2.46%
Clean js (Parser) 24.8±0.13µs 24.5±0.11µs -1.21%
Create Realm 270.3±0.22ns 235.8±1.75ns -12.76%
Dynamic Object Property Access (Compiler) 1432.0±7.69ns 1413.5±11.20ns -1.29%
Dynamic Object Property Access (Execution) 6.0±0.04µs 6.0±0.03µs 0.00%
Dynamic Object Property Access (Parser) 10.3±0.03µs 8.8±0.09µs -14.56%
Fibonacci (Compiler) 2.0±0.01µs 1983.7±14.23ns -0.81%
Fibonacci (Execution) 1541.7±8.32µs 1547.0±6.13µs +0.34%
Fibonacci (Parser) 13.8±0.15µs 13.6±0.14µs -1.45%
For loop (Compiler) 1710.6±8.44ns 1724.0±11.28ns +0.78%
For loop (Execution) 37.5±0.28µs 37.2±0.22µs -0.80%
For loop (Parser) 11.8±0.08µs 13.2±0.04µs +11.86%
Mini js (Compiler) 2.9±0.01µs 2.9±0.02µs 0.00%
Mini js (Execution) 1008.2±6.09µs 873.6±3.92µs -13.35%
Mini js (Parser) 21.5±0.23µs 21.4±0.12µs -0.47%
Number Object Access (Compiler) 924.7±5.15ns 902.4±5.21ns -2.41%
Number Object Access (Execution) 4.6±0.02µs 3.9±0.03µs -15.22%
Number Object Access (Parser) 10.8±0.02µs 9.3±0.07µs -13.89%
Object Creation (Compiler) 1365.0±4.93ns 1194.2±8.77ns -12.51%
Object Creation (Execution) 5.3±0.03µs 5.3±0.02µs 0.00%
Object Creation (Parser) 9.0±0.02µs 7.7±0.06µs -14.44%
RegExp (Compiler) 1443.7±7.39ns 1595.0±2.76ns +10.48%
RegExp (Execution) 12.1±0.06µs 11.1±0.08µs -8.26%
RegExp (Parser) 8.6±0.07µs 9.7±0.02µs +12.79%
RegExp Creation (Compiler) 1247.6±5.58ns 1377.5±5.79ns +10.41%
RegExp Creation (Execution) 8.0±0.04µs 8.4±0.04µs +5.00%
RegExp Creation (Parser) 7.3±0.05µs 7.0±0.04µs -4.11%
RegExp Literal (Compiler) 1434.8±8.72ns 1611.1±3.18ns +12.29%
RegExp Literal (Execution) 10.7±0.09µs 11.2±0.09µs +4.67%
RegExp Literal (Parser) 7.9±0.03µs 7.8±0.02µs -1.27%
RegExp Literal Creation (Compiler) 1231.0±6.87ns 1198.4±8.85ns -2.65%
RegExp Literal Creation (Execution) 7.9±0.04µs 8.3±0.04µs +5.06%
RegExp Literal Creation (Parser) 5.5±0.04µs 6.2±0.02µs +12.73%
Static Object Property Access (Compiler) 1391.4±5.27ns 1229.2±7.83ns -11.66%
Static Object Property Access (Execution) 5.6±0.03µs 6.3±0.02µs +12.50%
Static Object Property Access (Parser) 9.7±0.02µs 9.4±0.03µs -3.09%
String Object Access (Compiler) 1476.7±6.99ns 1451.4±4.84ns -1.71%
String Object Access (Execution) 7.6±0.03µs 6.6±0.05µs -13.16%
String Object Access (Parser) 12.1±0.04µs 11.8±0.06µs -2.48%
String comparison (Compiler) 1872.8±12.17ns 2.1±0.01µs +12.13%
String comparison (Execution) 5.8±0.02µs 5.1±0.05µs -12.07%
String comparison (Parser) 9.3±0.05µs 10.5±0.02µs +12.90%
String concatenation (Compiler) 1625.3±7.80ns 1645.8±7.55ns +1.26%
String concatenation (Execution) 5.3±0.02µs 5.3±0.02µs 0.00%
String concatenation (Parser) 7.3±0.02µs 7.2±0.02µs -1.37%
String copy (Compiler) 1131.7±8.10ns 1282.1±2.75ns +13.29%
String copy (Execution) 4.7±0.02µs 4.1±0.02µs -12.77%
String copy (Parser) 4.8±0.03µs 5.4±0.02µs +12.50%
Symbols (Compiler) 798.3±3.61ns 795.6±4.74ns -0.34%
Symbols (Execution) 4.0±0.03µs 4.0±0.02µs 0.00%
Symbols (Parser) 3.8±0.02µs 3.7±0.02µs -2.63%

@HalidOdat HalidOdat marked this pull request as ready for review March 1, 2022 23:36
@HalidOdat HalidOdat added this to the v0.14.0 milestone Mar 1, 2022
Copy link
Member

@RageKnify RageKnify left a comment

Choose a reason for hiding this comment

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

bors r+

bors bot pushed a commit that referenced this pull request Mar 2, 2022
This PR enables `StringToNumber()` to parse binary, octal and hexadecimal numbers.
@bors
Copy link

bors bot commented Mar 2, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Make StringToNumber spec compliant [Merged by Bors] - Make StringToNumber spec compliant Mar 2, 2022
@bors bors bot closed this Mar 2, 2022
@bors bors bot deleted the fix/StringToNumber branch March 2, 2022 01:02
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.

3 participants