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
It looks like you can assign arrow functions to a variable and use it to call the function recursively.
var complex = (a, b) => { if (a > b) { return a; } else { complex(a, b); } };