@garethheyes [question] (https://twitter.com/garethheyes/status/248797836307734528)
let call = Function.prototype.call f.call(alpha,arg) -> f[[Call]](alpha,arg) -> Execute f[[Code]] with *ThisValue* = alpha and *arguments* = [arg] f.call.call(f,arg) -> call[[Call]](f,arg) -> Execute call[[Code]] with *ThisValue* = f and *arguments* = [arg] -> f[[Call]](arg) -> Execute f[[Code]] with *ThisValue* = arg and *arguments* = [] -> *x* is undefined and *this* == arg Function.prototype.call.call(function(x){alert(this+','+x);},1) // 1,undefined