--- a/ProxyMethodGuardNode.st Sun Dec 02 19:38:19 2012 +0000
+++ b/ProxyMethodGuardNode.st Mon Dec 03 19:28:28 2012 +0000
@@ -110,12 +110,23 @@
"Generate a ParseNode that evaluate myself. Used for
byte-compiling the proxies"
+ | first next |
- ^MessageNode
- receiver: (condition generate: compiler)
- selector: #ifTrue:ifFalse:
- arg1: (BlockNode withExpression: (ReturnNode expression:(action generate: compiler)) in: nil)
- arg2: (BlockNode withExpression: ("ReturnNode expression:"(fallback generate: compiler)) in: nil)
+ first := StatementNode new.
+ first expression:
+ (MessageNode
+ receiver: (condition generate: compiler)
+ selector: #ifTrue:
+ arg: (BlockNode withExpression: (ReturnNode expression:(action generate: compiler)) in: nil)).
+ next := fallback generate: compiler.
+ fallback isProxyMethodGuardNode ifFalse:[
+ next := ReturnNode expression: next.
+ ].
+ next isStatementNode ifFalse:[
+ next := StatementNode new expression: next.
+ ].
+ first nextStatement: next.
+ ^first.
"
^(condition evaluateWithReceiver: receiver arguments: arguments) ifTrue:[
@@ -127,6 +138,7 @@
"
"Created: / 22-12-2011 / 09:26:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 03-12-2012 / 19:12:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodGuardNode methodsFor:'testing'!