public virtual List <JEntityDeclaration> ExportConstructor(IMethod ctor) { var ctorName = GetClassName(ctor.DeclaringTypeDefinition).ToJs();// SkJs.JName(ctor); var func = new JFunction { Parameters = new List <string>() }; var me2 = new JMethodDeclaration { Name = ctorName, MethodDefinition = ctor, MethodBody = ExportConstructorBody(ctor) }; me2.Parameters = ExportParameters(ctor.Parameters); ImportModifiers(ctor, me2); //ExportConstructorParameters(ctor, func); return(new List <JEntityDeclaration> { me2 }); }
public virtual List <JEntityDeclaration> ExportMethod(IMethod me) { var jma = JMeta.GetJMethodAttribute(me); if (jma != null && (jma.Global || jma.GlobalCode)) { throw new NotSupportedException(); //return CreateGlobalImporter().ExportMethod(me); } else { var ce = me.GetDeclaringTypeDefinition(); var member = me.JAccess(); var func = new JFunction(); //func.Name = me.Name; func.Parameters = ExportMethodParameters(me); func.Block = ExportMethodBody(me); if (JsCodeImporter.SupportClrYield) { func = ApplyYield(func); } var typeParams = me.TypeParameters.Select(t => t.JAccess()).ToList(); var decl = new JMethodDeclaration { Name = JNaming.JName(me), MethodDefinition = me, MethodBody = func.Block, Parameters = ExportParameters(me.Parameters), Type = me.ReturnType.JAccess(), TypeParameters = typeParams, }; ImportModifiers(me, decl); if (me.IsOverride || me.ImplementedInterfaceMembers.IsNotNullOrEmpty()) { decl.Annotations.Add(new JAnnotationDeclaration { Name = "Override" }); } return(new List <JEntityDeclaration> { decl }); } }