Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        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);
		}