|  | @@ -184,19 +184,17 @@ selector: "catch:",
 | 
											
												
													
														|  |  protocol: "promises",
 |  |  protocol: "promises",
 | 
											
												
													
														|  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 |  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 | 
											
												
													
														|  |  args: ["aBlock"],
 |  |  args: ["aBlock"],
 | 
											
												
													
														|  | -source: "catch: aBlock\x0a<inlineJS: 'return self.then(null, function (err) {return $core.seamless(function () {\x0a    return aBlock._value_(err);\x0a})})'>",
 |  | 
 | 
											
												
													
														|  | 
 |  | +source: "catch: aBlock\x0a<inlineJS: 'return self.then(null, function (err) { return aBlock._value_(err); })'>",
 | 
											
												
													
														|  |  referencedClasses: [],
 |  |  referencedClasses: [],
 | 
											
												
													
														|  |  //>>excludeEnd("ide");
 |  |  //>>excludeEnd("ide");
 | 
											
												
													
														|  | -pragmas: [["inlineJS:", ["return self.then(null, function (err) {return $core.seamless(function () {\x0a    return aBlock._value_(err);\x0a})})"]]],
 |  | 
 | 
											
												
													
														|  | 
 |  | +pragmas: [["inlineJS:", ["return self.then(null, function (err) { return aBlock._value_(err); })"]]],
 | 
											
												
													
														|  |  messageSends: []
 |  |  messageSends: []
 | 
											
												
													
														|  |  }, function ($methodClass){ return function (aBlock){
 |  |  }, function ($methodClass){ return function (aBlock){
 | 
											
												
													
														|  |  var self=this,$self=this;
 |  |  var self=this,$self=this;
 | 
											
												
													
														|  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 |  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 | 
											
												
													
														|  |  return $core.withContext(function($ctx1) {
 |  |  return $core.withContext(function($ctx1) {
 | 
											
												
													
														|  |  //>>excludeEnd("ctx");
 |  |  //>>excludeEnd("ctx");
 | 
											
												
													
														|  | -return self.then(null, function (err) {return $core.seamless(function () {
 |  | 
 | 
											
												
													
														|  | -    return aBlock._value_(err);
 |  | 
 | 
											
												
													
														|  | -})});
 |  | 
 | 
											
												
													
														|  | 
 |  | +return self.then(null, function (err) { return aBlock._value_(err); });
 | 
											
												
													
														|  |  return self;
 |  |  return self;
 | 
											
												
													
														|  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 |  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 | 
											
												
													
														|  |  }, function($ctx1) {$ctx1.fill(self,"catch:",{aBlock:aBlock})});
 |  |  }, function($ctx1) {$ctx1.fill(self,"catch:",{aBlock:aBlock})});
 | 
											
										
											
												
													
														|  | @@ -210,20 +208,20 @@ selector: "on:do:",
 | 
											
												
													
														|  |  protocol: "promises",
 |  |  protocol: "promises",
 | 
											
												
													
														|  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 |  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 | 
											
												
													
														|  |  args: ["aClass", "aBlock"],
 |  |  args: ["aClass", "aBlock"],
 | 
											
												
													
														|  | -source: "on: aClass do: aBlock\x0a<inlineJS: 'return self.then(null, function (err) {return $core.seamless(function () {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})})'>",
 |  | 
 | 
											
												
													
														|  | 
 |  | +source: "on: aClass do: aBlock\x0a<inlineJS: 'return self.then(null, function (err) {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})'>",
 | 
											
												
													
														|  |  referencedClasses: [],
 |  |  referencedClasses: [],
 | 
											
												
													
														|  |  //>>excludeEnd("ide");
 |  |  //>>excludeEnd("ide");
 | 
											
												
													
														|  | -pragmas: [["inlineJS:", ["return self.then(null, function (err) {return $core.seamless(function () {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})})"]]],
 |  | 
 | 
											
												
													
														|  | 
 |  | +pragmas: [["inlineJS:", ["return self.then(null, function (err) {\x0a    if (err._isKindOf_(aClass)) return aBlock._value_(err);\x0a    else throw err;\x0a})"]]],
 | 
											
												
													
														|  |  messageSends: []
 |  |  messageSends: []
 | 
											
												
													
														|  |  }, function ($methodClass){ return function (aClass,aBlock){
 |  |  }, function ($methodClass){ return function (aClass,aBlock){
 | 
											
												
													
														|  |  var self=this,$self=this;
 |  |  var self=this,$self=this;
 | 
											
												
													
														|  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 |  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 | 
											
												
													
														|  |  return $core.withContext(function($ctx1) {
 |  |  return $core.withContext(function($ctx1) {
 | 
											
												
													
														|  |  //>>excludeEnd("ctx");
 |  |  //>>excludeEnd("ctx");
 | 
											
												
													
														|  | -return self.then(null, function (err) {return $core.seamless(function () {
 |  | 
 | 
											
												
													
														|  | 
 |  | +return self.then(null, function (err) {
 | 
											
												
													
														|  |      if (err._isKindOf_(aClass)) return aBlock._value_(err);
 |  |      if (err._isKindOf_(aClass)) return aBlock._value_(err);
 | 
											
												
													
														|  |      else throw err;
 |  |      else throw err;
 | 
											
												
													
														|  | -})});
 |  | 
 | 
											
												
													
														|  | 
 |  | +});
 | 
											
												
													
														|  |  return self;
 |  |  return self;
 | 
											
												
													
														|  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 |  |  //>>excludeStart("ctx", pragmas.excludeDebugContexts);
 | 
											
												
													
														|  |  }, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock})});
 |  |  }, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock})});
 | 
											
										
											
												
													
														|  | @@ -260,10 +258,10 @@ selector: "then:",
 | 
											
												
													
														|  |  protocol: "promises",
 |  |  protocol: "promises",
 | 
											
												
													
														|  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 |  |  //>>excludeStart("ide", pragmas.excludeIdeData);
 | 
											
												
													
														|  |  args: ["aBlockOrArray"],
 |  |  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<inlineJS: '\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)'>",
 |  | 
 | 
											
												
													
														|  | 
 |  | +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<inlineJS: '\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)'>",
 | 
											
												
													
														|  |  referencedClasses: [],
 |  |  referencedClasses: [],
 | 
											
												
													
														|  |  //>>excludeEnd("ide");
 |  |  //>>excludeEnd("ide");
 | 
											
												
													
														|  | -pragmas: [["inlineJS:", ["\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)"]]],
 |  | 
 | 
											
												
													
														|  | 
 |  | +pragmas: [["inlineJS:", ["\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)"]]],
 | 
											
												
													
														|  |  messageSends: []
 |  |  messageSends: []
 | 
											
												
													
														|  |  }, function ($methodClass){ return function (aBlockOrArray){
 |  |  }, function ($methodClass){ return function (aBlockOrArray){
 | 
											
												
													
														|  |  var self=this,$self=this;
 |  |  var self=this,$self=this;
 | 
											
										
											
												
													
														|  | @@ -274,16 +272,16 @@ return $core.withContext(function($ctx1) {
 | 
											
												
													
														|  |  var array = Array.isArray(aBlockOrArray) ? aBlockOrArray : [aBlockOrArray];
 |  |  var array = Array.isArray(aBlockOrArray) ? aBlockOrArray : [aBlockOrArray];
 | 
											
												
													
														|  |  return array.reduce(function (soFar, aBlock) {
 |  |  return array.reduce(function (soFar, aBlock) {
 | 
											
												
													
														|  |      return soFar.then(typeof aBlock === "function" && aBlock.length > 1 ?
 |  |      return soFar.then(typeof aBlock === "function" && aBlock.length > 1 ?
 | 
											
												
													
														|  | -        function (result) {return $core.seamless(function () {
 |  | 
 | 
											
												
													
														|  | 
 |  | +       function (result) {
 | 
											
												
													
														|  |              if (Array.isArray(result)) {
 |  |              if (Array.isArray(result)) {
 | 
											
												
													
														|  |                  return aBlock._valueWithPossibleArguments_([result].concat(result.slice(0, aBlock.length-1)));
 |  |                  return aBlock._valueWithPossibleArguments_([result].concat(result.slice(0, aBlock.length-1)));
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  |                  return aBlock._value_(result);
 |  |                  return aBlock._value_(result);
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | -        })} :
 |  | 
 | 
											
												
													
														|  | -        function (result) {return $core.seamless(function () {
 |  | 
 | 
											
												
													
														|  | 
 |  | +        } :
 | 
											
												
													
														|  | 
 |  | +        function (result) {
 | 
											
												
													
														|  |              return aBlock._value_(result);
 |  |              return aBlock._value_(result);
 | 
											
												
													
														|  | -        })}
 |  | 
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |      );
 |  |      );
 | 
											
												
													
														|  |  }, self);
 |  |  }, self);
 | 
											
												
													
														|  |  return self;
 |  |  return self;
 |