public static void EmitYieldReturn(AbstractEmitterBlock block, IType returnType, MethodDeclaration methodDeclaration) { block.EndFunctionBlock(); block.WriteComma(); if (returnType.TypeArguments.Count > 0) { block.Write(BridgeTypes.ToJsName(returnType.TypeArguments[0], block.Emitter)); } else { block.Write("System.Object"); } if (methodDeclaration.Parameters.Count > 0) { block.WriteComma(); AbstractMethodBlock.EmitMethodParameters(block, methodDeclaration.Parameters, methodDeclaration); } block.WriteCloseParentheses(); block.WriteNewLine(); }
public static void EmitMethodParameters(AbstractEmitterBlock block, IEnumerable <ParameterDeclaration> declarations, AstNode context) { bool needComma = false; EntityDeclaration entityDeclaration = context as EntityDeclaration; if (entityDeclaration != null) { if (!entityDeclaration.HasModifier(Modifiers.Static)) { block.WriteThis(); if (declarations.Any()) { block.WriteComma(); } } } foreach (ParameterDeclaration p in declarations) { string name = p.Name; name = name.Replace(Bridge.Translator.Emitter.FIX_ARGUMENT_NAME, ""); if (block.Emitter.LocalsNamesMap != null && block.Emitter.LocalsNamesMap.ContainsKey(name)) { name = block.Emitter.LocalsNamesMap[name]; } if (needComma) { block.WriteComma(); } needComma = true; block.Write(name); } }