| 
					
				 | 
			
			
				@@ -17,9 +17,9 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self.then(null, function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self.then(null, function (err) {return $core.seamless(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return aBlock._value_(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"catch:",{aBlock:aBlock},$globals.Thenable)}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -27,7 +27,7 @@ return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "catch: aBlock\x0a<return self.then(null, function (err) {\x0a    return aBlock._value_(err);\x0a})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "catch: aBlock\x0a<return self.then(null, function (err) {return $core.seamless(function () {\x0a    return aBlock._value_(err);\x0a})})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: [] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -43,10 +43,10 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self.then(null, function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self.then(null, function (err) {return $core.seamless(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (err._isKindOf_(aClass)) return aBlock._value_(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else throw err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock},$globals.Thenable)}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -54,7 +54,7 @@ return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aClass", "aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "on: aClass do: aBlock\x0a<return self.then(null, function (err) {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "on: aClass do: aBlock\x0a<return self.then(null, function (err) {return $core.seamless(function () {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: [] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,10 +70,10 @@ var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self.then(null, function (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+return self.then(null, function (err) {return $core.seamless(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { if (err._isKindOf_(aClass)) return aBlock._value_(err); } catch (e) { err = e; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return anotherBlock._value_(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, function($ctx1) {$ctx1.fill(self,"on:do:catch:",{aClass:aClass,aBlock:aBlock,anotherBlock:anotherBlock},$globals.Thenable)}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,7 +81,7 @@ return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aClass", "aBlock", "anotherBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "on: aClass do: aBlock catch: anotherBlock\x0a<return self.then(null, function (err) {\x0a    try { if (err._isKindOf_(aClass)) return aBlock._value_(err); } catch (e) { err = e; }\x0a    return anotherBlock._value_(err);\x0a})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "on: aClass do: aBlock catch: anotherBlock\x0a<return self.then(null, function (err) {return $core.seamless(function () {\x0a    try { if (err._isKindOf_(aClass)) return aBlock._value_(err); } catch (e) { err = e; }\x0a    return anotherBlock._value_(err);\x0a})})>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: [] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -101,16 +101,16 @@ return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var array = Array.isArray(aBlockOrArray) ? aBlockOrArray : [aBlockOrArray]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return array.reduce(function (soFar, aBlock) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return soFar.then(typeof aBlock === "function" && aBlock.length > 1 ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function (result) {return $core.seamless(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (Array.isArray(result)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return aBlock._valueWithPossibleArguments_([result].concat(result.slice(0, aBlock.length-1))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return aBlock._value_(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        })} : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function (result) {return $core.seamless(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return aBlock._value_(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        })} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, self); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 return self; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,7 +120,7 @@ return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args: ["aBlockOrArray"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "then: aBlockOrArray\x0a\x22Accepts a block or array of blocks.\x0aEach of blocks in the array or the singleton one is\x0aused in .then call to a promise, to accept a result\x0aand transform it to the result for the next one.\x0aIn case a block has more than one argument\x0aand result is an array, first n-1 elements of the array\x0aare put into additional arguments beyond the first.\x0aThe first argument always contains the result as-is.\x22\x0a<\x0avar array = Array.isArray(aBlockOrArray) ? aBlockOrArray : [aBlockOrArray];\x0areturn array.reduce(function (soFar, aBlock) {\x0a    return soFar.then(typeof aBlock === \x22function\x22 && aBlock.length >> 1 ?\x0a        function (result) {\x0a            if (Array.isArray(result)) {\x0a                return aBlock._valueWithPossibleArguments_([result].concat(result.slice(0, aBlock.length-1)));\x0a            } else {\x0a                return aBlock._value_(result);\x0a            }\x0a        } :\x0a        function (result) {\x0a            return aBlock._value_(result);\x0a        }\x0a    );\x0a}, self)>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+source: "then: aBlockOrArray\x0a\x22Accepts a block or array of blocks.\x0aEach of blocks in the array or the singleton one is\x0aused in .then call to a promise, to accept a result\x0aand transform it to the result for the next one.\x0aIn case a block has more than one argument\x0aand result is an array, first n-1 elements of the array\x0aare put into additional arguments beyond the first.\x0aThe first argument always contains the result as-is.\x22\x0a<\x0avar array = Array.isArray(aBlockOrArray) ? aBlockOrArray : [aBlockOrArray];\x0areturn array.reduce(function (soFar, aBlock) {\x0a    return soFar.then(typeof aBlock === \x22function\x22 && aBlock.length >> 1 ?\x0a        function (result) {return $core.seamless(function () {\x0a            if (Array.isArray(result)) {\x0a                return aBlock._valueWithPossibleArguments_([result].concat(result.slice(0, aBlock.length-1)));\x0a            } else {\x0a                return aBlock._value_(result);\x0a            }\x0a        })} :\x0a        function (result) {return $core.seamless(function () {\x0a            return aBlock._value_(result);\x0a        })}\x0a    );\x0a}, self)>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 messageSends: [] 
			 |