|
I'm assuming based on documentation/other thread, and also this: the opcodes indicate "local x do x = function() end end" loads "nil" into x, then changes x later, so LuaJIT can't just assume "x" is constant/immutable so instead it uses an indirect jump when you call x. with "local x = (function(...) return function() end end)(...)" there's a call opcode but x doesn't get implicitly nil-ed before it.On 16/06/15 05:42 PM, Brigham Toskin wrote:I'm curious if you've actually dumped the traces to see this difference, or if you're assuming it will do this based on documentation or some other thread on the subject?