merge -r 61110:61111
[mono.git] / mcs / class / Microsoft.JScript / Microsoft.JScript / VariableStatement.cs
index ae3f4ba7fdf0d88e57a3ae137e84040af2abbea8..07fce9d44ebf728ce37ff7ef70687b531bbd6c33 100644 (file)
@@ -34,11 +34,12 @@ using System;
 
 namespace Microsoft.JScript {
 
-       public class VariableStatement : AST {
+       internal class VariableStatement : AST, ICanModifyContext {
 
                internal ArrayList var_decls;
 
-               internal VariableStatement ()
+               internal VariableStatement (AST parent, Location location)
+                       : base (parent, location)
                {
                        var_decls = new ArrayList ();
                }
@@ -60,6 +61,12 @@ namespace Microsoft.JScript {
                        return sb.ToString ();
                }
 
+               void ICanModifyContext.EmitDecls (EmitContext ec)
+               {
+                       foreach (VariableDeclaration var_decl in var_decls)
+                               ((ICanModifyContext) var_decl).EmitDecls (ec);
+               }
+
                internal override void Emit (EmitContext ec)
                {
                        int i, size = var_decls.Count;
@@ -68,15 +75,21 @@ namespace Microsoft.JScript {
                                ((VariableDeclaration) var_decls [i]).Emit (ec);
                }
 
-               internal override bool Resolve (IdentificationTable context)
+               void ICanModifyContext.PopulateContext (Environment env, string ns)
+               {
+                       foreach (VariableDeclaration var_decl in var_decls)
+                               ((ICanModifyContext) var_decl).PopulateContext (env, ns);
+               }
+
+               internal override bool Resolve (Environment env)
                {
                        VariableDeclaration tmp_decl;
-                       int i, n = var_decls.Count;
+                       int n = var_decls.Count;
                        bool r = true;
 
-                       for (i = 0; i < n; i++) {
+                       for (int i = 0; i < n; i++) {
                                tmp_decl = (VariableDeclaration) var_decls [i];
-                               r &= tmp_decl.Resolve (context);
+                               r &= tmp_decl.Resolve (env);
                        }
                        return r;
                }