diff -r 4d2cf0b5235d -r 33ae4e0de8cc lvm.js --- a/lvm.js Mon May 24 14:08:50 2010 +0100 +++ b/lvm.js Mon May 24 14:12:14 2010 +0100 @@ -260,11 +260,12 @@ return (INS_Bx(ins)-0x1FFFF); } -function LFunction(chunk, env) +function LFunction(vm, chunk, env) { function F() {}; F.prototype = chunk; var o = new F(); + o.vm = vm; o.environment = env; o.chunk = chunk; o.upvalues = []; @@ -375,7 +376,7 @@ case OP_CLOSURE: var prototype_id = INS_Bx(instruction); var chunk = frame.f.chunk.prototypes[prototype_id]; - var f = new LFunction(chunk, frame.f.environment); + var f = new LFunction(this, chunk, frame.f.environment); frame.reg[INS_A(instruction)] = new LValue("function", f); for(var i=0;i