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