in src/main/java/com/ql/util/express/instruction/detail/InstructionGoToWithCondition.java [24:48]
public void execute(RunEnvironment environment, List<String> errorList) throws Exception {
Object o;
if (!this.isPopStackData) {
o = environment.peek().getObject(environment.getContext());
if (o == null) {
environment.pop();
environment.push(OperateDataCacheManager.fetchOperateData(false, boolean.class));
}
} else {
o = environment.pop().getObject(environment.getContext());
}
boolean r;
if (o == null) {
r = false;
} else if (o instanceof Boolean) {
r = (Boolean)o;
} else {
throw new QLException(getExceptionPrefix() + "指令错误:" + o + " 不是Boolean");
}
if (r == this.condition) {
environment.gotoWithOffset(this.offset);
} else {
environment.programPointAddOne();
}
}