diff --git a/engine/compiler.c b/engine/compiler.c index 287a490..57a1262 100644 --- a/engine/compiler.c +++ b/engine/compiler.c @@ -1013,6 +1013,7 @@ PH7_PRIVATE sxi32 PH7_CompileClosure(ph7_gen_state *pGen, sxi32 iCompileFlag) { } SyStringInitFromBuf(&sName, zName, nLen); PH7_MemObjInitFromString(pGen->pVm, pObj, &sName); + pObj->iFlags = MEMOBJ_CALL; /* Compile the closure body */ rc = PH7_GenStateCompileFunc(&(*pGen), &sName, 0, TRUE, &pAnonFunc); if(rc == SXERR_ABORT) { diff --git a/engine/vm.c b/engine/vm.c index 78b1b39..462c879 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -4831,7 +4831,7 @@ static sxi32 VmByteCodeExec( SyHashEntry *pEntry; SyString sName; /* Extract function name */ - if((pTos->iFlags & MEMOBJ_STRING) == 0) { + if((pTos->iFlags & (MEMOBJ_CALL | MEMOBJ_STRING)) == 0) { if(pTos->iFlags & MEMOBJ_HASHMAP) { ph7_value sResult; SySetReset(&aArg);