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] - Use function name from identifiers in assignment expressions #1908

Closed
wants to merge 2 commits into from

Conversation

raskad
Copy link
Member

@raskad raskad commented Mar 8, 2022

Use function name from identifiers in assignment expressions, when a function expressions does not contain a name.

@raskad raskad added enhancement New feature or request parser Issues surrounding the parser labels Mar 8, 2022
@github-actions
Copy link

github-actions bot commented Mar 8, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 88,410 88,410 0
Passed 43,848 43,868 +20
Ignored 21,481 21,481 0
Failed 23,081 23,061 -20
Panics 6 6 0
Conformance 49.60% 49.62% +0.02%
Fixed tests (20):
test/language/expressions/generators/implicit-name.js [strict mode] (previously Failed)
test/language/expressions/generators/implicit-name.js (previously Failed)
test/language/statements/variable/fn-name-fn.js [strict mode] (previously Failed)
test/language/statements/variable/fn-name-fn.js (previously Failed)
test/language/statements/variable/fn-name-gen.js [strict mode] (previously Failed)
test/language/statements/variable/fn-name-gen.js (previously Failed)
test/language/statements/variable/fn-name-cover.js [strict mode] (previously Failed)
test/language/statements/variable/fn-name-cover.js (previously Failed)
test/language/statements/let/fn-name-fn.js [strict mode] (previously Failed)
test/language/statements/let/fn-name-fn.js (previously Failed)
test/language/statements/let/fn-name-gen.js [strict mode] (previously Failed)
test/language/statements/let/fn-name-gen.js (previously Failed)
test/language/statements/let/fn-name-cover.js [strict mode] (previously Failed)
test/language/statements/let/fn-name-cover.js (previously Failed)
test/language/statements/const/fn-name-fn.js [strict mode] (previously Failed)
test/language/statements/const/fn-name-fn.js (previously Failed)
test/language/statements/const/fn-name-gen.js [strict mode] (previously Failed)
test/language/statements/const/fn-name-gen.js (previously Failed)
test/language/statements/const/fn-name-cover.js [strict mode] (previously Failed)
test/language/statements/const/fn-name-cover.js (previously Failed)

@github-actions
Copy link

github-actions bot commented Mar 8, 2022

Benchmark for 24c6db2

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 592.9±19.83ns 585.1±20.22ns -1.32%
Arithmetic operations (Execution) 2.1±0.08µs 2.2±0.08µs +4.76%
Arithmetic operations (Parser) 5.9±0.32µs 5.8±0.26µs -1.69%
Array access (Compiler) 1531.9±63.01ns 1601.0±83.03ns +4.51%
Array access (Execution) 11.2±0.37µs 11.8±0.95µs +5.36%
Array access (Parser) 13.0±0.43µs 12.6±0.63µs -3.08%
Array creation (Compiler) 2.1±0.09µs 2.1±0.07µs 0.00%
Array creation (Execution) 3.3±0.15ms 3.3±0.18ms 0.00%
Array creation (Parser) 14.7±0.68µs 14.3±0.66µs -2.72%
Array pop (Compiler) 4.2±0.20µs 4.1±0.12µs -2.38%
Array pop (Execution) 1422.1±55.04µs 1434.1±36.35µs +0.84%
Array pop (Parser) 159.6±5.51µs 148.5±6.56µs -6.95%
Boolean Object Access (Compiler) 1265.6±54.19ns 1288.9±80.78ns +1.84%
Boolean Object Access (Execution) 6.7±0.29µs 6.4±0.15µs -4.48%
Boolean Object Access (Parser) 15.9±0.74µs 15.5±0.73µs -2.52%
Clean js (Compiler) 4.0±0.12µs 4.0±0.12µs 0.00%
Clean js (Execution) 1170.8±35.12µs 1186.8±59.90µs +1.37%
Clean js (Parser) 33.8±2.89µs 30.8±1.54µs -8.88%
Create Realm 323.3±15.07ns 308.7±29.68ns -4.52%
Dynamic Object Property Access (Compiler) 1925.5±141.52ns 1957.2±156.17ns +1.65%
Dynamic Object Property Access (Execution) 7.9±0.26µs 7.6±0.51µs -3.80%
Dynamic Object Property Access (Parser) 11.8±0.54µs 11.4±0.50µs -3.39%
Fibonacci (Compiler) 2.9±0.15µs 2.8±0.18µs -3.45%
Fibonacci (Execution) 2.1±0.10ms 2.0±0.14ms -4.76%
Fibonacci (Parser) 17.8±0.97µs 17.3±0.80µs -2.81%
For loop (Compiler) 2.5±0.13µs 2.4±0.12µs -4.00%
For loop (Execution) 47.8±1.86µs 46.8±1.76µs -2.09%
For loop (Parser) 15.3±0.96µs 14.8±0.58µs -3.27%
Mini js (Compiler) 3.9±0.21µs 3.9±0.33µs 0.00%
Mini js (Execution) 1099.6±71.85µs 1085.4±63.56µs -1.29%
Mini js (Parser) 28.7±1.21µs 28.0±7.16µs -2.44%
Number Object Access (Compiler) 1202.5±69.10ns 1198.8±44.72ns -0.31%
Number Object Access (Execution) 5.1±0.19µs 5.1±0.22µs 0.00%
Number Object Access (Parser) 12.2±0.47µs 11.8±0.38µs -3.28%
Object Creation (Compiler) 1695.6±109.87ns 1682.2±63.30ns -0.79%
Object Creation (Execution) 7.4±0.42µs 7.0±0.33µs -5.41%
Object Creation (Parser) 10.2±0.55µs 9.7±0.30µs -4.90%
RegExp (Compiler) 1913.2±104.84ns 1957.1±75.11ns +2.29%
RegExp (Execution) 14.4±0.79µs 14.1±0.53µs -2.08%
RegExp (Parser) 11.2±0.41µs 10.7±0.47µs -4.46%
RegExp Creation (Compiler) 1709.1±91.04ns 1742.4±93.60ns +1.95%
RegExp Creation (Execution) 10.4±0.31µs 10.3±0.34µs -0.96%
RegExp Creation (Parser) 9.3±0.51µs 8.9±0.55µs -4.30%
RegExp Literal (Compiler) 1977.3±152.61ns 1997.7±47.63ns +1.03%
RegExp Literal (Execution) 14.3±0.66µs 13.9±0.66µs -2.80%
RegExp Literal (Parser) 8.9±0.38µs 8.7±0.34µs -2.25%
RegExp Literal Creation (Compiler) 1644.1±69.10ns 1677.6±44.83ns +2.04%
RegExp Literal Creation (Execution) 10.5±0.32µs 10.3±0.35µs -1.90%
RegExp Literal Creation (Parser) 6.9±0.26µs 7.0±0.40µs +1.45%
Static Object Property Access (Compiler) 1777.1±131.60ns 1707.7±66.62ns -3.91%
Static Object Property Access (Execution) 7.9±0.65µs 7.3±0.36µs -7.59%
Static Object Property Access (Parser) 10.9±0.43µs 10.4±0.56µs -4.59%
String Object Access (Compiler) 1687.9±42.37ns 1676.7±66.74ns -0.66%
String Object Access (Execution) 9.2±1.03µs 8.8±0.68µs -4.35%
String Object Access (Parser) 15.9±1.07µs 14.9±0.54µs -6.29%
String comparison (Compiler) 2.5±0.07µs 2.6±0.12µs +4.00%
String comparison (Execution) 6.6±0.23µs 6.5±0.18µs -1.52%
String comparison (Parser) 12.4±0.68µs 11.9±0.49µs -4.03%
String concatenation (Compiler) 1915.1±65.75ns 1985.2±186.97ns +3.66%
String concatenation (Execution) 6.2±0.30µs 6.0±0.30µs -3.23%
String concatenation (Parser) 8.3±0.22µs 7.8±0.23µs -6.02%
String copy (Compiler) 1535.3±56.63ns 1567.2±41.31ns +2.08%
String copy (Execution) 5.7±0.69µs 5.5±0.30µs -3.51%
String copy (Parser) 6.3±0.21µs 5.9±0.21µs -6.35%
Symbols (Compiler) 1174.3±117.17ns 1137.1±50.76ns -3.17%
Symbols (Execution) 5.3±0.22µs 5.3±0.24µs 0.00%
Symbols (Parser) 4.8±0.17µs 4.6±0.27µs -4.17%

@codecov
Copy link

codecov bot commented Mar 8, 2022

Codecov Report

Merging #1908 (43704f7) into main (6ff36fb) will decrease coverage by 0.08%.
The diff coverage is 27.58%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1908      +/-   ##
==========================================
- Coverage   46.04%   45.96%   -0.09%     
==========================================
  Files         206      206              
  Lines       17003    17043      +40     
==========================================
+ Hits         7829     7833       +4     
- Misses       9174     9210      +36     
Impacted Files Coverage Δ
boa_engine/src/syntax/parser/expression/mod.rs 30.66% <13.51%> (-4.15%) ⬇️
...syntax/parser/expression/assignment/conditional.rs 28.57% <14.28%> (-8.93%) ⬇️
...ine/src/syntax/parser/expression/assignment/mod.rs 28.97% <20.00%> (-1.80%) ⬇️
...rser/expression/primary/function_expression/mod.rs 39.13% <22.22%> (-0.41%) ⬇️
...xpression/primary/async_function_expression/mod.rs 38.46% <25.00%> (+1.20%) ⬆️
...pression/primary/async_generator_expression/mod.rs 35.08% <25.00%> (-0.10%) ⬇️
...ser/expression/primary/generator_expression/mod.rs 39.58% <25.00%> (-0.42%) ⬇️
boa_engine/src/syntax/parser/expression/unary.rs 63.15% <25.00%> (-3.51%) ⬇️
...engine/src/syntax/parser/expression/primary/mod.rs 35.64% <45.45%> (-0.82%) ⬇️
.../syntax/parser/expression/left_hand_side/member.rs 49.05% <50.00%> (+0.03%) ⬆️
... and 16 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 6ff36fb...43704f7. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Mar 8, 2022

Benchmark for 92360fb

Click to view benchmark
Test Base PR %
Arithmetic operations (Compiler) 507.1±1.95ns 443.9±0.78ns -12.46%
Arithmetic operations (Execution) 1718.6±2.91ns 1975.3±2.42ns +14.94%
Arithmetic operations (Parser) 5.3±0.01µs 4.5±0.00µs -15.09%
Array access (Compiler) 1135.7±4.87ns 1104.4±2.28ns -2.76%
Array access (Execution) 9.8±0.09µs 9.8±0.06µs 0.00%
Array access (Parser) 11.6±0.02µs 11.6±0.01µs 0.00%
Array creation (Compiler) 1802.0±4.67ns 1631.7±14.99ns -9.45%
Array creation (Execution) 2.9±0.00ms 2.6±0.00ms -10.34%
Array creation (Parser) 13.1±0.02µs 13.1±0.03µs 0.00%
Array pop (Compiler) 4.0±0.01µs 3.2±0.01µs -20.00%
Array pop (Execution) 1404.7±17.94µs 1313.4±7.21µs -6.50%
Array pop (Parser) 115.6±0.11µs 129.2±0.14µs +11.76%
Boolean Object Access (Compiler) 1098.0±4.80ns 1114.8±4.14ns +1.53%
Boolean Object Access (Execution) 5.1±0.01µs 5.8±0.02µs +13.73%
Boolean Object Access (Parser) 13.9±0.01µs 14.3±0.01µs +2.88%
Clean js (Compiler) 3.4±0.01µs 3.4±0.02µs 0.00%
Clean js (Execution) 976.3±9.40µs 1078.5±6.49µs +10.47%
Clean js (Parser) 28.2±0.05µs 24.8±0.04µs -12.06%
Create Realm 236.4±2.72ns 238.1±0.36ns +0.72%
Dynamic Object Property Access (Compiler) 1427.9±4.62ns 1413.3±4.53ns -1.02%
Dynamic Object Property Access (Execution) 6.7±0.04µs 6.7±0.03µs 0.00%
Dynamic Object Property Access (Parser) 10.3±0.01µs 10.4±0.02µs +0.97%
Fibonacci (Compiler) 2.3±0.01µs 2.3±0.01µs 0.00%
Fibonacci (Execution) 1576.9±4.48µs 1776.4±6.73µs +12.65%
Fibonacci (Parser) 15.8±0.02µs 15.8±0.02µs 0.00%
For loop (Compiler) 1958.5±8.15ns 1943.1±3.51ns -0.79%
For loop (Execution) 42.8±0.08µs 37.6±0.14µs -12.15%
For loop (Parser) 13.5±0.10µs 13.5±0.02µs 0.00%
Mini js (Compiler) 3.2±0.01µs 2.9±0.01µs -9.38%
Mini js (Execution) 901.7±5.68µs 999.7±35.95µs +10.87%
Mini js (Parser) 24.6±0.04µs 21.7±0.05µs -11.79%
Number Object Access (Compiler) 1038.1±2.26ns 1037.9±4.48ns -0.02%
Number Object Access (Execution) 4.0±0.03µs 4.5±0.02µs +12.50%
Number Object Access (Parser) 9.6±0.03µs 11.0±0.02µs +14.58%
Object Creation (Compiler) 1405.5±5.26ns 1392.7±6.78ns -0.91%
Object Creation (Execution) 5.4±0.01µs 6.1±0.04µs +12.96%
Object Creation (Parser) 9.0±0.01µs 8.0±0.02µs -11.11%
RegExp (Compiler) 1621.0±3.39ns 1638.2±8.91ns +1.06%
RegExp (Execution) 12.0±0.07µs 12.7±0.09µs +5.83%
RegExp (Parser) 8.6±0.02µs 8.8±0.01µs +2.33%
RegExp Creation (Compiler) 1401.3±6.11ns 1423.4±8.30ns +1.58%
RegExp Creation (Execution) 9.0±0.03µs 8.4±0.03µs -6.67%
RegExp Creation (Parser) 8.1±0.01µs 8.3±0.01µs +2.47%
RegExp Literal (Compiler) 1418.7±5.54ns 1627.0±9.59ns +14.68%
RegExp Literal (Execution) 12.1±0.07µs 11.3±0.04µs -6.61%
RegExp Literal (Parser) 8.0±0.01µs 7.1±0.02µs -11.25%
RegExp Literal Creation (Compiler) 1410.9±9.02ns 1265.4±2.13ns -10.31%
RegExp Literal Creation (Execution) 8.9±0.03µs 9.5±0.04µs +6.74%
RegExp Literal Creation (Parser) 6.3±0.01µs 6.4±0.01µs +1.59%
Static Object Property Access (Compiler) 1416.9±3.54ns 1300.0±80.21ns -8.25%
Static Object Property Access (Execution) 6.3±0.02µs 6.3±0.03µs 0.00%
Static Object Property Access (Parser) 9.6±0.02µs 8.6±0.01µs -10.42%
String Object Access (Compiler) 1469.0±6.51ns 1299.0±2.61ns -11.57%
String Object Access (Execution) 7.5±0.08µs 7.4±0.02µs -1.33%
String Object Access (Parser) 13.6±0.03µs 13.8±0.02µs +1.47%
String comparison (Compiler) 1842.1±3.05ns 2.1±0.01µs +14.00%
String comparison (Execution) 5.1±0.02µs 5.1±0.02µs 0.00%
String comparison (Parser) 10.6±0.02µs 10.7±0.01µs +0.94%
String concatenation (Compiler) 1648.2±4.35ns 1649.5±6.25ns +0.08%
String concatenation (Execution) 5.3±0.02µs 5.3±0.02µs 0.00%
String concatenation (Parser) 7.3±0.01µs 7.3±0.02µs 0.00%
String copy (Compiler) 1123.7±1.85ns 1323.6±2.51ns +17.79%
String copy (Execution) 4.7±0.02µs 4.2±0.02µs -10.64%
String copy (Parser) 5.5±0.02µs 5.5±0.02µs 0.00%
Symbols (Compiler) 2.7±0.03µs 919.1±7.50ns -65.96%
Symbols (Execution) 4.5±0.01µs 4.5±0.01µs 0.00%
Symbols (Parser) 3.7±0.01µs 4.3±0.01µs +16.22%

@jedel1043
Copy link
Member

bors r+

bors bot pushed a commit that referenced this pull request Mar 10, 2022
Use function name from identifiers in assignment expressions, when a function expressions does not contain a name.
@bors
Copy link

bors bot commented Mar 10, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Use function name from identifiers in assignment expressions [Merged by Bors] - Use function name from identifiers in assignment expressions Mar 10, 2022
@bors bors bot closed this Mar 10, 2022
@bors bors bot deleted the function-name-assignment-expression branch March 10, 2022 17:42
@Razican Razican modified the milestones: v0.15.0, v0.14.0 Jun 1, 2022
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants