Getting to grips with javascript
Read More: https://javascriptio.com/view/235185/how-do-i-apply-tco-tail-call-optimiztion-on-recursive-anonymous-function-in-es5