Skip to content Skip to sidebar Skip to footer

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?"