What Does Compound Let/const Assignment Mean?
There is an article Optimization killers in wiki of Bluebird library. In this article there is a phrase: Currently not optimizable: ... Functions that contain a compound let
Solution 1:
Yes, that seems to be exactly what it means. I had the following code (irrelevant additional lines removed):
functionupdatePlayer(player) {
let direction = player.getDirection();
if (player.isPressingLeft()) {
direction += angleChange;
}
if (player.isPressingRight()) {
direction -= angleChange;
}
player.setDirection(direction);
}
updatePlayer
generated a warning, Not optimized: Unsupported let compound assignment, in Chrome's Profiles tab, so instead of l += r
I tried l = l + r
and got a significant, consistent performance improvement.
jsPerf shows that let
compound assignments are indeed extremely slow in Chrome 49.0.2623, compared to l = l + r
or var
! I guess this will be fixed in a future version, since neither Firefox nor IE11 nor Edge is affected, and since Google apparently know about the issue.
Post a Comment for "What Does Compound Let/const Assignment Mean?"