Author: cesar
Date: 2006-01-17 13:26:19 -0500 (Tue, 17 Jan 2006)
New Revision: 55688

Modified:
   trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
   trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
   trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ast.cs
Log:
2006-01-17  Cesar Lopez Nataren  <[EMAIL PROTECTED]>

        * ast.cs: Added virtual method PropagateParent for recovering a
        lost parent or set it up properly if previously set to null. Fixes
        #75166.

        * Statement.cs (If,Jump,Break.PropagateParent): recover
        the proper parent.

Modified: trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog
===================================================================
--- trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog       
2006-01-17 17:49:31 UTC (rev 55687)
+++ trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ChangeLog       
2006-01-17 18:26:19 UTC (rev 55688)
@@ -1,5 +1,12 @@
 2006-01-17  Cesar Lopez Nataren  <[EMAIL PROTECTED]>
 
+       * ast.cs: Added virtual method PropagateParent for recovering a
+       lost parent or set it up properly if previously set to null. Fixes
+       #75166.
+
+       * Statement.cs (If,Jump,Break.PropagateParent): recover
+       the proper parent.
+
        * expression.cs (Binary.emit_access): Emit late binding code for
        member's access that maps to MemberTypes (like Math.pow). Fixes
        #72440.

Modified: trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs
===================================================================
--- trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs    
2006-01-17 17:49:31 UTC (rev 55687)
+++ trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/Statement.cs    
2006-01-17 18:26:19 UTC (rev 55688)
@@ -126,6 +126,13 @@
                                false_stm.Emit (ec);                    
                        ig.MarkLabel (merge_lbl);
                }
+
+               internal override void PropagateParent (AST parent)
+               {
+                       base.PropagateParent (parent);
+                       true_stm.PropagateParent (this);
+                       false_stm.PropagateParent (this);
+               }
        }
 
        abstract class Jump : AST {
@@ -149,6 +156,11 @@
                                throw new Exception ("error JS1026: Label not 
found");
                         return true;
                }
+
+               internal override void PropagateParent (AST parent)
+               {
+                       base.PropagateParent (parent);
+               }
        }
 
        internal class Continue : Jump {
@@ -202,6 +214,11 @@
                        }
                        ec.ig.Emit (OpCodes.Br, (binding as Labelled).EndAddrs);
                }
+
+               internal override void PropagateParent (AST parent)
+               {
+                       base.PropagateParent (parent);
+               }
        }
 
        internal class NotVoidReturnEventArgs : EventArgs {

Modified: trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ast.cs
===================================================================
--- trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ast.cs  2006-01-17 
17:49:31 UTC (rev 55687)
+++ trunk/mcs/class/Microsoft.JScript/Microsoft.JScript/ast.cs  2006-01-17 
18:26:19 UTC (rev 55688)
@@ -104,6 +104,11 @@
                                
                        }
                }
+
+               internal virtual void PropagateParent (AST parent)
+               {
+                       this.parent = parent;
+               }
        }
 
        public abstract class Function : AST 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to