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