| 
					
				 | 
			
			
				@@ -1,4 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-define(["amber/boot", "amber_core/Kernel-Infrastructure", "amber_core/Kernel-Objects"], function($boot){"use strict"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+define(["amber/boot", "amber_core/Kernel-Objects"], function($boot){"use strict"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -366,228 +366,4 @@ $globals.TThenable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 $core.setTraitComposition([{trait: $globals.TThenable}], $globals.Promise); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "catch:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._catch_.call(js, aBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("catch:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"catch:",{aBlock:aBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "catch: aBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._catch_.call(js, aBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22catch:\x22)\x0a            ._arguments_([aBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "on:do:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass,aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._on_do_.call(js, aClass, aBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("on:do:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aClass, aBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"on:do:",{aClass:aClass,aBlock:aBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aClass", "aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "on: aClass do: aBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._on_do_.call(js, aClass, aBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22on:do:\x22)\x0a            ._arguments_([aClass, aBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "on:do:catch:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aClass,aBlock,anotherBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._on_do_catch_.call(js, aClass, aBlock, anotherBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("on:do:catch:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aClass, aBlock, anotherBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"on:do:catch:",{aClass:aClass,aBlock:aBlock,anotherBlock:anotherBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aClass", "aBlock", "anotherBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "on: aClass do: aBlock catch: anotherBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._on_do_catch_.call(js, aClass, aBlock, anotherBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22on:do:catch:\x22)\x0a            ._arguments_([aClass, aBlock, anotherBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "then:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlockOrArray){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._then_.call(js, aBlockOrArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("then:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aBlockOrArray]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"then:",{aBlockOrArray:aBlockOrArray},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aBlockOrArray"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "then: aBlockOrArray\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._then_.call(js, aBlockOrArray);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22then:\x22)\x0a            ._arguments_([aBlockOrArray])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "then:catch:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlockOrArray,anotherBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._then_catch_.call(js, aBlockOrArray, anotherBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("then:catch:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aBlockOrArray, anotherBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"then:catch:",{aBlockOrArray:aBlockOrArray,anotherBlock:anotherBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aBlockOrArray", "anotherBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "then: aBlockOrArray catch: anotherBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._then_catch_.call(js, aBlockOrArray, anotherBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22then:catch:\x22)\x0a            ._arguments_([aBlockOrArray, anotherBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "then:on:do:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlockOrArray,aClass,aBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._then_on_do_.call(js, aBlockOrArray, aClass, aBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("then:on:do:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aBlockOrArray, aClass, aBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"then:on:do:",{aBlockOrArray:aBlockOrArray,aClass:aClass,aBlock:aBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aBlockOrArray", "aClass", "aBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "then: aBlockOrArray on: aClass do: aBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._then_on_do_.call(js, aBlockOrArray, aClass, aBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22then:on:do:\x22)\x0a            ._arguments_([aBlockOrArray, aClass, aBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.addMethod( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$core.method({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-selector: "then:on:do:catch:", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-protocol: "*Kernel-Promises", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-fn: function (aBlockOrArray,aClass,aBlock,anotherBlock){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var self=this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return $core.withContext(function($ctx1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-var js = self["@jsObject"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if (typeof js.then === "function") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return $globals.Thenable.fn.prototype._then_on_do_catch_.call(js, aBlockOrArray, aClass, aBlock, anotherBlock); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return self._doesNotUnderstand_( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $globals.Message._new() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._selector_("then:on:do:catch:") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ._arguments_([aBlockOrArray, aClass, aBlock, anotherBlock]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ctx", pragmas.excludeDebugContexts); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, function($ctx1) {$ctx1.fill(self,"then:on:do:catch:",{aBlockOrArray:aBlockOrArray,aClass:aClass,aBlock:aBlock,anotherBlock:anotherBlock},$globals.JSObjectProxy)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ctx"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeStart("ide", pragmas.excludeIdeData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-args: ["aBlockOrArray", "aClass", "aBlock", "anotherBlock"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-source: "then: aBlockOrArray on: aClass do: aBlock catch: anotherBlock\x0a<inlineJS: 'var js = self[\x22@jsObject\x22];\x0aif (typeof js.then === \x22function\x22)\x0a    return $globals.Thenable.fn.prototype._then_on_do_catch_.call(js, aBlockOrArray, aClass, aBlock, anotherBlock);\x0aelse\x0a    return self._doesNotUnderstand_(\x0a        $globals.Message._new()\x0a            ._selector_(\x22then:on:do:catch:\x22)\x0a            ._arguments_([aBlockOrArray, aClass, aBlock, anotherBlock])\x0a    )'>", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-referencedClasses: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//>>excludeEnd("ide"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-messageSends: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-$globals.JSObjectProxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 |