public void execute()

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();
        }
    }