private void MaybeCompileAndAddConstructorToType(JsClass jsClass, ConstructorDeclaration node, IMethod constructor, ConstructorScriptSemantics options) { if (options.GenerateCode) { var mc = CreateMethodCompiler(); var compiled = mc.CompileConstructor(node, constructor, TryGetInstanceInitStatements(jsClass), options); OnMethodCompiled(constructor, compiled, mc); AddCompiledConstructorToType(jsClass, constructor, options, compiled); } }
private void AddCompiledConstructorToType(JsClass jsClass, IMethod constructor, ConstructorScriptSemantics options, JsFunctionDefinitionExpression jsConstructor) { switch (options.Type) { case ConstructorScriptSemantics.ImplType.UnnamedConstructor: if (jsClass.UnnamedConstructor != null) { _errorReporter.Region = constructor.Region; _errorReporter.Message(7501, constructor.DeclaringType.FullName); } else { jsClass.UnnamedConstructor = jsConstructor; } break; case ConstructorScriptSemantics.ImplType.NamedConstructor: jsClass.NamedConstructors.Add(new JsNamedConstructor(options.Name, jsConstructor)); break; case ConstructorScriptSemantics.ImplType.StaticMethod: jsClass.StaticMethods.Add(new JsMethod(constructor, options.Name, new string[0], jsConstructor)); break; } }
void IMetadataImporter.SetConstructorSemantics(IMethod method, ConstructorScriptSemantics semantics) { }
public virtual void SetConstructorSemantics(IMethod method, ConstructorScriptSemantics semantics) { _prev.SetConstructorSemantics(method, semantics); }
public void SetConstructorSemantics(IMethod method, ConstructorScriptSemantics semantics) { _constructorSemantics[method] = semantics; _ignoredMembers.Add(method); }