--- a/Context.st Tue May 26 01:06:42 2015 +0200
+++ b/Context.st Tue May 26 20:55:30 2015 +0200
@@ -1233,7 +1233,8 @@
%{
#ifdef __SCHTEAM__
- ERROR("unimplemented");
+ return __c__._RETURN_TO(value, self.asSTContinuation());
+ /* NOTREACHED */
#else
OBJ sndr;
@@ -1284,7 +1285,8 @@
%{
#ifdef __SCHTEAM__
- ERROR("unimplemented");
+ return __c__._RETURN_TO(value, self.asSTContinuation());
+ /* NOTREACHED */
#else
OBJ theContext, sndr;
@@ -1330,7 +1332,8 @@
%{
#ifdef __SCHTEAM__
- ERROR("unimplemented");
+ return __c__._RETURN_TO(value, self.asSTContinuation());
+ /* NOTREACHED */
#else
OBJ theContext, sndr;
@@ -1384,7 +1387,8 @@
%{ /* NOCONTEXT */
#ifdef __SCHTEAM__
- ERROR("unimplemented");
+ return __c__._RETURN_FROM(value, self.asSTContinuation());
+ /* NOTREACHED */
#else
if (__INST(sender_) == nil) {
RETURN(nil);
@@ -2367,7 +2371,21 @@
%{ /* NOCONTEXT */
#ifdef __SCHTEAM__
- ERROR("unimplemented");
+ {
+ if (self == aContext) {
+ return __c__._RETURN(self);
+ }
+
+ STContinuation theContext = self.sender();
+
+ while (theContext != null) {
+ if ((theContext == aContext)
+ || theContext.isMarkedForUnwind()) {
+ return __c__._RETURN(theContext);
+ }
+ theContext = theContext.sender();
+ }
+ }
#else
OBJ theContext;
@@ -2872,11 +2890,11 @@
!Context class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Context.st,v 1.222 2015-05-25 23:06:42 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Context.st,v 1.223 2015-05-26 18:55:30 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Context.st,v 1.222 2015-05-25 23:06:42 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Context.st,v 1.223 2015-05-26 18:55:30 cg Exp $'
!
version_HG