|
@@ -715,7 +715,13 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger nargs, SQInteger stackbase,SQ
|
|
|
ci->_root = SQTrue;
|
|
ci->_root = SQTrue;
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
- case ET_RESUME_GENERATOR: _generator(closure)->Resume(this, outres); ci->_root = SQTrue; traps += ci->_etraps; break;
|
|
|
|
|
|
|
+ case ET_RESUME_GENERATOR:
|
|
|
|
|
+ if(!_generator(closure)->Resume(this, outres)) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ ci->_root = SQTrue;
|
|
|
|
|
+ traps += ci->_etraps;
|
|
|
|
|
+ break;
|
|
|
case ET_RESUME_VM:
|
|
case ET_RESUME_VM:
|
|
|
case ET_RESUME_THROW_VM:
|
|
case ET_RESUME_THROW_VM:
|
|
|
traps = _suspended_traps;
|
|
traps = _suspended_traps;
|
|
@@ -1123,6 +1129,7 @@ exception_trap:
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
assert(0);
|
|
assert(0);
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor)
|
|
bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr &constructor)
|