Scorpio.Runtime.ScriptContext.ProcessCallForeach C# (CSharp) Method

ProcessCallForeach() private method

private ProcessCallForeach ( ) : void
return void
        void ProcessCallForeach()
        {
            CodeForeach code = (CodeForeach)m_scriptInstruction.Operand0;
            ScriptObject loop = ResolveOperand(code.LoopObject);
            if (!(loop is ScriptFunction)) throw new ExecutionException(m_script, "foreach函数必须返回一个ScriptFunction");
            object obj;
            ScriptFunction func = (ScriptFunction)loop;
            ScriptContext context;
            for ( ; ; ) {
                obj = func.Call();
                if (obj == null) return;
                context = new ScriptContext(m_script, code.BlockExecutable, this, Executable_Block.Foreach);
                context.Initialize(code.Identifier, m_script.CreateObject(obj));
                context.Execute();
                if (context.IsOver) break;
            }
        }
        void ProcessCallIf() {