* FunctionObject.cs: Added MethodAttributes and type_annot
authorCésar Natarén <cesar@mono-cvs.ximian.com>
Mon, 3 Nov 2003 16:56:18 +0000 (16:56 -0000)
committerCésar Natarén <cesar@mono-cvs.ximian.com>
Mon, 3 Nov 2003 16:56:18 +0000 (16:56 -0000)
fields. Added params_types function, which returns an array of
types from each of the function's parameters.

svn path=/trunk/mcs/; revision=19582

mcs/class/Microsoft.JScript/Microsoft.JScript/FunctionObject.cs

index f636fa52428a968336f27149cd83dc859f2fa5c9..18248de5f39e1875fafe35eb76e69df1e17b1bf8 100644 (file)
@@ -9,24 +9,43 @@
 
 using System;
 using System.Text;
+using System.Reflection;
+using System.Collections;
 
 namespace Microsoft.JScript {
 
        public class FunctionObject : ScriptFunction {
 
+               internal MethodAttributes attr;
                internal string name;
-               internal string return_type;
+               internal string type_annot;
+               internal Type return_type;
                internal FormalParameterList parameters;
                internal Block body;
 
                internal FunctionObject (string name,
                                         FormalParameterList p,
-                                        string return_type,
+                                        string ret_type,
                                         Block body)
                {
+                       //
+                       // FIXME: 
+                       // 1) Must collect the attributes given.
+                       // 2) Check if they are semantically correct.
+                       // 3) Assign those values to 'attr'.
+                       //
+                       this.attr = MethodAttributes.Public | MethodAttributes.Static;
+
                        this.name = name;
                        this.parameters = p;
-                       this.return_type = return_type;
+
+                       this.type_annot = ret_type;
+                       //
+                       // FIXME: Must check that return_type it's a valid type,
+                       // and assign that to 'return_type' field.
+                       //
+                       this.return_type = typeof (Object);
+
                        this.body = body;
                }
            
@@ -58,5 +77,23 @@ namespace Microsoft.JScript {
 
                        return sb.ToString ();          
                }
+
+               internal Type [] params_types ()
+               {               
+                       int i, size;
+                       ArrayList p = parameters.ids;
+
+                       size = p.Count + 2;
+
+                       Type [] types = new Type [size];
+
+                       types [0] = typeof (Object);
+                       types [1] = typeof (Microsoft.JScript.Vsa.VsaEngine);
+
+                       for (i = 2; i < size; i++)
+                               types [i] = ((FormalParam) p [i - 2]).type;
+
+                       return types;
+               }
        }
 }