Esempio n. 1
0
 protected void EmitArguments(CompilerTarget target, bool duplicateLast,
     int additionalArguments)
 {
     Object lastArg = null;
     foreach (AstExpr expr in Arguments)
     {
         Debug.Assert(expr != null,
             "Argument list of get-set-complex contains null reference");
         if (ReferenceEquals(lastArg, expr))
             target.EmitDuplicate(Position);
         else
             expr.EmitValueCode(target);
         lastArg = expr;
     }
     var argc = Arguments.Count;
     if (duplicateLast && argc > 0)
     {
         target.EmitDuplicate(Position);
         if (argc + additionalArguments > 1)
             target.EmitRotate(Position, -1, argc + 1 + additionalArguments);
     }
 }