Arrow functions in ES6 do not have an arguments property and therefore arguments.callee will not work and would anyway not work in strict mode even
arguments
arguments.callee
You can assign your function to a variable inside an iife
var countdown = f=>(f=a=>{ console.log(a) if(a>0) f(--a) })() countdown(3) //3 //2 //1 //0