One of the nice things about Git is that it makes it very easy for us to learn the steps that went into a WTF. It doesn't mean it explains the WTF, as many are just inexplicable, but it's at least something.
Like this example, from Aoife.
The JavaScript started like this:
function getData(deviceId) {
return this.storage.loadSomeData(userId)
}
The function was committed in this state, and remained unchanged for six years. The astute reader may have noticed the problem: the function takes a parameter called deviceId
, but references a value called userId
, which is not defined here. This is bad, and means this code doesn't work as it's supposed to, so after six years, someone finally decided to fix it.
function getData(deviceId) {
// eslint-disable-next-line no-undef
return this.storage.loadSomeData(userId)
}
There we are, all better. The function still doesn't work, but at least the linter doesn't yell at us anymore.
Of course, there remains a huge, obvious problem with this function, so two years later, someone made a new commit:
function getData(deviceId) {
// eslint-disable-next-line no-undef
return this.storage.loadSomeData(userId);
}
Finally, the big problem has been fixed: that missing semicolon.