internal override Opcode Eval(ProcessingContext context)
        {
            Value[]    values = context.Values;
            StackFrame topArg = context.TopArg;

            for (int i = topArg.basePtr; i <= topArg.endPtr; i++)
            {
                NodeSequence sequence = values[i].Sequence;
                NodeSequence val      = context.CreateSequence();
                for (int j = 0; j < sequence.Count; j++)
                {
                    NodeSequenceItem item = sequence[j];
                    val.AddCopy(ref item);
                }
                val.Merge();
                context.SetValue(context, i, val);
            }
            return(base.next);
        }
Esempio n. 2
0
        internal override Opcode Eval(ProcessingContext context)
        {
            Value[]    values = context.Values;
            StackFrame arg    = context.TopArg;

            for (int i = arg.basePtr; i <= arg.endPtr; ++i)
            {
                Fx.Assert(ValueDataType.Sequence == values[i].Type, "");
                NodeSequence seq = values[i].Sequence;

                NodeSequence newSeq = context.CreateSequence();
                for (int j = 0; j < seq.Count; ++j)
                {
                    NodeSequenceItem item = seq[j];
                    newSeq.AddCopy(ref item);
                }
                newSeq.Merge();

                context.SetValue(context, i, newSeq);
            }

            return(this.next);
        }