Unsure exactly if this is the reason why the assertion fails, but it does make sense. The following assertion fails:
// We should never get here while the context is still an unprocessed property accessor
asASSERT(ctx->property_get == 0 && ctx->property_set == 0);
Above, property_get is some number, and property_set seems to be 0. ConvertToVariable is called from "asCCompiler::CompileIfStatement":
if( expr.type.dataType.IsReference() ) ConvertToVariable(&expr);
It happens when compiling the following if statement in the script:
if (g_serverDisplayNameTask.HasSucceeded) {
HasSucceeded is a read-only property, and therefore it's registered only as "bool get_HasSucceeded()". This used to never give me problems in prior (SVN/WIP) versions, I guess something changed?
I believe this also happens with while() loops. And, if the assertion is ignored, the returned value is just false.