public override IodineObject Invoke(VirtualMachine vm, IodineObject[] arguments)
        {
            ApplyGlobalVariables(vm.Context);
            vm.NewFrame(new StackFrame(this, null, new IodineObject[] { }, null, null, Attributes));
            IodineObject retObj = vm.EvalCode(Initializer);

            vm.EndFrame();
            return(retObj);
        }
        public override bool IterMoveNext(VirtualMachine vm)
        {
            if (frame.AbortExecution)
            {
                return(false);
            }

            vm.NewFrame(frame);
            value = vm.EvalCode(Target);
            vm.EndFrame();
            return(frame.Yielded);
        }