smalltalk.addPackage('Kernel-Objects', {});
smalltalk.addClass('Object', smalltalk.nil, [], 'Kernel-Objects');
smalltalk.addMethod(
"__minus_gt",
smalltalk.method({
selector: "->",
fn: function (anObject){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Association || Association),"_key_value_",[self,anObject]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"__eq",
smalltalk.method({
selector: "=",
fn: function (anObject){
var self=this;
var $1;
$1=smalltalk.send(self,"__eq_eq",[anObject]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"__eq_eq",
smalltalk.method({
selector: "==",
fn: function (anObject){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_identityHash",[]),"__eq",[smalltalk.send(anObject,"_identityHash",[])]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_asJSON",
smalltalk.method({
selector: "asJSON",
fn: function (){
var self=this;
var variables;
variables=smalltalk.send((smalltalk.HashedCollection || HashedCollection),"_new",[]);
smalltalk.send(smalltalk.send(smalltalk.send(self,"_class",[]),"_allInstanceVariableNames",[]),"_do_",[(function(each){
return smalltalk.send(variables,"_at_put_",[each,smalltalk.send(smalltalk.send(self,"_instVarAt_",[each]),"_asJSON",[])]);
})]);
return variables;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_asJSONString",
smalltalk.method({
selector: "asJSONString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.JSON || JSON),"_stringify_",[smalltalk.send(self,"_asJSON",[])]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_asJavascript",
smalltalk.method({
selector: "asJavascript",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_asString",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_asString",
smalltalk.method({
selector: "asString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_printString",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_basicAt_",
smalltalk.method({
selector: "basicAt:",
fn: function (aString){
var self=this;
return self[aString];
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_basicAt_put_",
smalltalk.method({
selector: "basicAt:put:",
fn: function (aString,anObject){
var self=this;
return self[aString] = anObject;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_basicDelete_",
smalltalk.method({
selector: "basicDelete:",
fn: function (aString){
var self=this;
delete self[aString]; return aString;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_basicPerform_",
smalltalk.method({
selector: "basicPerform:",
fn: function (aSymbol){
var self=this;
var $1;
$1=smalltalk.send(self,"_basicPerform_withArguments_",[aSymbol,[]]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_basicPerform_withArguments_",
smalltalk.method({
selector: "basicPerform:withArguments:",
fn: function (aSymbol,aCollection){
var self=this;
return self[aSymbol].apply(self, aCollection);;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_class",
smalltalk.method({
selector: "class",
fn: function (){
var self=this;
return self.klass;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_copy",
smalltalk.method({
selector: "copy",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_shallowCopy",[]),"_postCopy",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_deepCopy",
smalltalk.method({
selector: "deepCopy",
fn: function (){
var self=this;
    
	    var copy = self.klass._new();
	    for(var i in self) {
		if(/^@.+/.test(i)) {
		    copy[i] = self[i]._deepCopy();
		}
	    }
	    return copy;
	;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_deprecatedAPI",
smalltalk.method({
selector: "deprecatedAPI",
fn: function (){
var self=this;
smalltalk.send(console,"_warn_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(thisContext,"_home",[]),"_asString",[]),"__comma",[" is deprecated! (in "]),"__comma",[smalltalk.send(smalltalk.send(smalltalk.send(thisContext,"_home",[]),"_home",[]),"_asString",[])]),"__comma",[")"])]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_doesNotUnderstand_",
smalltalk.method({
selector: "doesNotUnderstand:",
fn: function (aMessage){
var self=this;
var $1,$2;
$1=smalltalk.send((smalltalk.MessageNotUnderstood || MessageNotUnderstood),"_new",[]);
smalltalk.send($1,"_receiver_",[self]);
smalltalk.send($1,"_message_",[aMessage]);
$2=smalltalk.send($1,"_signal",[]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_error_",
smalltalk.method({
selector: "error:",
fn: function (aString){
var self=this;
smalltalk.send((smalltalk.Error || Error),"_signal_",[aString]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_halt",
smalltalk.method({
selector: "halt",
fn: function (){
var self=this;
smalltalk.send(self,"_error_",["Halt encountered"]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_identityHash",
smalltalk.method({
selector: "identityHash",
fn: function (){
var self=this;

	var hash=self.identityHash;
	if (hash) return hash;
	hash=smalltalk.nextId();
	Object.defineProperty(self, 'identityHash', {value:hash});
	return hash;
	;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_ifNil_",
smalltalk.method({
selector: "ifNil:",
fn: function (aBlock){
var self=this;
return self;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_ifNil_ifNotNil_",
smalltalk.method({
selector: "ifNil:ifNotNil:",
fn: function (aBlock,anotherBlock){
var self=this;
var $1;
$1=smalltalk.send(anotherBlock,"_value",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_ifNotNil_",
smalltalk.method({
selector: "ifNotNil:",
fn: function (aBlock){
var self=this;
var $1;
$1=smalltalk.send(aBlock,"_value",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_ifNotNil_ifNil_",
smalltalk.method({
selector: "ifNotNil:ifNil:",
fn: function (aBlock,anotherBlock){
var self=this;
var $1;
$1=smalltalk.send(aBlock,"_value",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_instVarAt_",
smalltalk.method({
selector: "instVarAt:",
fn: function (aSymbol){
var self=this;
var varname;
varname=smalltalk.send(aSymbol,"_asString",[]);
return self['@'+varname];
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_instVarAt_put_",
smalltalk.method({
selector: "instVarAt:put:",
fn: function (aSymbol,anObject){
var self=this;
var varname;
varname=smalltalk.send(aSymbol,"_asString",[]);
self['@' + varname] = anObject;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isClass",
smalltalk.method({
selector: "isClass",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isKindOf_",
smalltalk.method({
selector: "isKindOf:",
fn: function (aClass){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"_isMemberOf_",[aClass]);
if(smalltalk.assert($2)){
$1=true;
} else {
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_inheritsFrom_",[aClass]);
};
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isMemberOf_",
smalltalk.method({
selector: "isMemberOf:",
fn: function (aClass){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"__eq",[aClass]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isMetaclass",
smalltalk.method({
selector: "isMetaclass",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isNil",
smalltalk.method({
selector: "isNil",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isNumber",
smalltalk.method({
selector: "isNumber",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isParseFailure",
smalltalk.method({
selector: "isParseFailure",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isString",
smalltalk.method({
selector: "isString",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_isSymbol",
smalltalk.method({
selector: "isSymbol",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_log_block_",
smalltalk.method({
selector: "log:block:",
fn: function (aString,aBlock){
var self=this;
var result;
smalltalk.send(console,"_log_",[smalltalk.send(smalltalk.send(aString,"__comma",[" time: "]),"__comma",[smalltalk.send(smalltalk.send((smalltalk.Date || Date),"_millisecondsToRun_",[(function(){
result=smalltalk.send(aBlock,"_value",[]);
return result;
})]),"_printString",[])])]);
return result;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_notNil",
smalltalk.method({
selector: "notNil",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_isNil",[]),"_not",[]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_perform_",
smalltalk.method({
selector: "perform:",
fn: function (aSymbol){
var self=this;
var $1;
$1=smalltalk.send(self,"_perform_withArguments_",[aSymbol,[]]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_perform_withArguments_",
smalltalk.method({
selector: "perform:withArguments:",
fn: function (aSymbol,aCollection){
var self=this;
var selector;
selector=smalltalk.send(aSymbol,"_asSelector",[]);
return smalltalk.send(self, selector, aCollection);
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_postCopy",
smalltalk.method({
selector: "postCopy",
fn: function (){
var self=this;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_printNl",
smalltalk.method({
selector: "printNl",
fn: function (){
var self=this;
console.log(self);
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send("a ","__comma",[smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[])]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_respondsTo_",
smalltalk.method({
selector: "respondsTo:",
fn: function (aSelector){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_canUnderstand_",[aSelector]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_shallowCopy",
smalltalk.method({
selector: "shallowCopy",
fn: function (){
var self=this;

	    var copy = self.klass._new();
	    for(var i in self) {
		if(/^@.+/.test(i)) {
		    copy[i] = self[i];
		}
	    }
	    return copy;
	;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_shouldNotImplement",
smalltalk.method({
selector: "shouldNotImplement",
fn: function (){
var self=this;
smalltalk.send(self,"_error_",[smalltalk.send("This method should not be implemented in ","__comma",[smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[])])]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_size",
smalltalk.method({
selector: "size",
fn: function (){
var self=this;
smalltalk.send(self,"_error_",["Object not indexable"]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_storeOn_",
smalltalk.method({
selector: "storeOn:",
fn: function (aStream){
var self=this;
smalltalk.send(aStream,"_nextPutAll_",[smalltalk.send(self,"_printString",[])]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_storeString",
smalltalk.method({
selector: "storeString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(s){
return smalltalk.send(self,"_storeOn_",[s]);
})]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_subclassResponsibility",
smalltalk.method({
selector: "subclassResponsibility",
fn: function (){
var self=this;
smalltalk.send(self,"_error_",["This method is a responsibility of a subclass"]);
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_try_catch_",
smalltalk.method({
selector: "try:catch:",
fn: function (aBlock,anotherBlock){
var self=this;
try{result = aBlock()} catch(e) {result = anotherBlock(e)};
	return result;;
;
return self}
}),
smalltalk.Object);

smalltalk.addMethod(
"_value",
smalltalk.method({
selector: "value",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_yourself",
smalltalk.method({
selector: "yourself",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_~_eq",
smalltalk.method({
selector: "~=",
fn: function (anObject){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"__eq",[anObject]),"__eq",[false]);
return $1;
}
}),
smalltalk.Object);

smalltalk.addMethod(
"_~~",
smalltalk.method({
selector: "~~",
fn: function (anObject){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"__eq_eq",[anObject]),"__eq",[false]);
return $1;
}
}),
smalltalk.Object);


smalltalk.addMethod(
"_initialize",
smalltalk.method({
selector: "initialize",
fn: function (){
var self=this;
return self}
}),
smalltalk.Object.klass);


smalltalk.addClass('Boolean', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"_&",
smalltalk.method({
selector: "&",
fn: function (aBoolean){
var self=this;

	    if(self == true) {
		return aBoolean;
	    } else {
		return false;
	    }
	;
;
return self}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"__eq",
smalltalk.method({
selector: "=",
fn: function (aBoolean){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(aBoolean,"_class",[]),"__eq",[smalltalk.send(self,"_class",[])]);
if(! smalltalk.assert($1)){
return false;
};
return Boolean(self == true) == aBoolean;
;
return self}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"__eq_eq",
smalltalk.method({
selector: "==",
fn: function (aBoolean){
var self=this;
var $1;
$1=smalltalk.send(self,"__eq",[aBoolean]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_and_",
smalltalk.method({
selector: "and:",
fn: function (aBlock){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"__eq",[true]);
$1=smalltalk.send($2,"_ifTrue_ifFalse_",[aBlock,(function(){
return false;
})]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_asJSON",
smalltalk.method({
selector: "asJSON",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_deepCopy",
smalltalk.method({
selector: "deepCopy",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_ifFalse_",
smalltalk.method({
selector: "ifFalse:",
fn: function (aBlock){
var self=this;
var $1;
$1=smalltalk.send(self,"_ifTrue_ifFalse_",[(function(){
}),aBlock]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_ifFalse_ifTrue_",
smalltalk.method({
selector: "ifFalse:ifTrue:",
fn: function (aBlock,anotherBlock){
var self=this;
var $1;
$1=smalltalk.send(self,"_ifTrue_ifFalse_",[anotherBlock,aBlock]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_ifTrue_",
smalltalk.method({
selector: "ifTrue:",
fn: function (aBlock){
var self=this;
var $1;
$1=smalltalk.send(self,"_ifTrue_ifFalse_",[aBlock,(function(){
})]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_ifTrue_ifFalse_",
smalltalk.method({
selector: "ifTrue:ifFalse:",
fn: function (aBlock,anotherBlock){
var self=this;

	    if(self == true) {
		return aBlock();
	    } else {
		return anotherBlock();
	    }
	;
;
return self}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_not",
smalltalk.method({
selector: "not",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"__eq",[false]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_or_",
smalltalk.method({
selector: "or:",
fn: function (aBlock){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"__eq",[true]);
$1=smalltalk.send($2,"_ifTrue_ifFalse_",[(function(){
return true;
}),aBlock]);
return $1;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
return self.toString();
;
return self}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_shallowCopy",
smalltalk.method({
selector: "shallowCopy",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Boolean);

smalltalk.addMethod(
"_|",
smalltalk.method({
selector: "|",
fn: function (aBoolean){
var self=this;

	    if(self == true) {
		return true;
	    } else {
		return aBoolean;
	    }
	;
;
return self}
}),
smalltalk.Boolean);



smalltalk.addClass('Date', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"__plus",
smalltalk.method({
selector: "+",
fn: function (aDate){
var self=this;
return self + aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"__minus",
smalltalk.method({
selector: "-",
fn: function (aDate){
var self=this;
return self - aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"__lt",
smalltalk.method({
selector: "<",
fn: function (aDate){
var self=this;
return self < aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"__lt_eq",
smalltalk.method({
selector: "<=",
fn: function (aDate){
var self=this;
return self <= aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"__gt",
smalltalk.method({
selector: ">",
fn: function (aDate){
var self=this;
return self > aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"__gt_eq",
smalltalk.method({
selector: ">=",
fn: function (aDate){
var self=this;
return self >= aDate;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asDateString",
smalltalk.method({
selector: "asDateString",
fn: function (){
var self=this;
return self.toDateString();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asLocaleString",
smalltalk.method({
selector: "asLocaleString",
fn: function (){
var self=this;
return self.toLocaleString();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asMilliseconds",
smalltalk.method({
selector: "asMilliseconds",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_time",[]);
return $1;
}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asNumber",
smalltalk.method({
selector: "asNumber",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_asMilliseconds",[]);
return $1;
}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asString",
smalltalk.method({
selector: "asString",
fn: function (){
var self=this;
return self.toString();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_asTimeString",
smalltalk.method({
selector: "asTimeString",
fn: function (){
var self=this;
return self.toTimeString();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_day",
smalltalk.method({
selector: "day",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_dayOfWeek",[]);
return $1;
}
}),
smalltalk.Date);

smalltalk.addMethod(
"_day_",
smalltalk.method({
selector: "day:",
fn: function (aNumber){
var self=this;
smalltalk.send(self,"_dayOfWeek_",[aNumber]);
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_dayOfMonth",
smalltalk.method({
selector: "dayOfMonth",
fn: function (){
var self=this;
return self.getDate();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_dayOfMonth_",
smalltalk.method({
selector: "dayOfMonth:",
fn: function (aNumber){
var self=this;
self.setDate(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_dayOfWeek",
smalltalk.method({
selector: "dayOfWeek",
fn: function (){
var self=this;
return self.getDay() + 1;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_dayOfWeek_",
smalltalk.method({
selector: "dayOfWeek:",
fn: function (aNumber){
var self=this;
return self.setDay(aNumber - 1);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_hours",
smalltalk.method({
selector: "hours",
fn: function (){
var self=this;
return self.getHours();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_hours_",
smalltalk.method({
selector: "hours:",
fn: function (aNumber){
var self=this;
self.setHours(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_milliseconds",
smalltalk.method({
selector: "milliseconds",
fn: function (){
var self=this;
return self.getMilliseconds();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_milliseconds_",
smalltalk.method({
selector: "milliseconds:",
fn: function (aNumber){
var self=this;
self.setMilliseconds(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_minutes",
smalltalk.method({
selector: "minutes",
fn: function (){
var self=this;
return self.getMinutes();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_minutes_",
smalltalk.method({
selector: "minutes:",
fn: function (aNumber){
var self=this;
self.setMinutes(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_month",
smalltalk.method({
selector: "month",
fn: function (){
var self=this;
return self.getMonth() + 1;
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_month_",
smalltalk.method({
selector: "month:",
fn: function (aNumber){
var self=this;
self.setMonth(aNumber - 1);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_asString",[]);
return $1;
}
}),
smalltalk.Date);

smalltalk.addMethod(
"_seconds",
smalltalk.method({
selector: "seconds",
fn: function (){
var self=this;
return self.getSeconds();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_seconds_",
smalltalk.method({
selector: "seconds:",
fn: function (aNumber){
var self=this;
self.setSeconds(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_time",
smalltalk.method({
selector: "time",
fn: function (){
var self=this;
return self.getTime();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_time_",
smalltalk.method({
selector: "time:",
fn: function (aNumber){
var self=this;
self.setTime(aNumber);
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_year",
smalltalk.method({
selector: "year",
fn: function (){
var self=this;
return self.getFullYear();
;
return self}
}),
smalltalk.Date);

smalltalk.addMethod(
"_year_",
smalltalk.method({
selector: "year:",
fn: function (aNumber){
var self=this;
self.setFullYear(aNumber);
;
return self}
}),
smalltalk.Date);


smalltalk.addMethod(
"_fromMilliseconds_",
smalltalk.method({
selector: "fromMilliseconds:",
fn: function (aNumber){
var self=this;
var $1;
$1=smalltalk.send(self,"_new_",[aNumber]);
return $1;
}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_fromSeconds_",
smalltalk.method({
selector: "fromSeconds:",
fn: function (aNumber){
var self=this;
var $1;
$1=smalltalk.send(self,"_fromMilliseconds_",[smalltalk.send(aNumber,"__star",[(1000)])]);
return $1;
}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_fromString_",
smalltalk.method({
selector: "fromString:",
fn: function (aString){
var self=this;
var $1;
$1=smalltalk.send(self,"_new_",[aString]);
return $1;
}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_millisecondsToRun_",
smalltalk.method({
selector: "millisecondsToRun:",
fn: function (aBlock){
var self=this;
var $1;
var t;
t=smalltalk.send((smalltalk.Date || Date),"_now",[]);
smalltalk.send(aBlock,"_value",[]);
$1=smalltalk.send(smalltalk.send((smalltalk.Date || Date),"_now",[]),"__minus",[t]);
return $1;
}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_new_",
smalltalk.method({
selector: "new:",
fn: function (anObject){
var self=this;
return new Date(anObject);
;
return self}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_now",
smalltalk.method({
selector: "now",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_today",[]);
return $1;
}
}),
smalltalk.Date.klass);

smalltalk.addMethod(
"_today",
smalltalk.method({
selector: "today",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_new",[]);
return $1;
}
}),
smalltalk.Date.klass);


smalltalk.addClass('JSObjectProxy', smalltalk.Object, ['jsObject'], 'Kernel-Objects');
smalltalk.addMethod(
"_at_",
smalltalk.method({
selector: "at:",
fn: function (aSymbol){
var self=this;
var attr;
attr=smalltalk.send(aSymbol,"_asString",[]);
return self['@jsObject'][attr];
;
return self}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_at_put_",
smalltalk.method({
selector: "at:put:",
fn: function (aSymbol,anObject){
var self=this;
var attr;
attr=smalltalk.send(aSymbol,"_asString",[]);
self['@jsObject'][attr] = anObject;
;
return self}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_doesNotUnderstand_",
smalltalk.method({
selector: "doesNotUnderstand:",
fn: function (aMessage){
var self=this;
var obj;
var selector;
var jsSelector;
var arguments;
obj=smalltalk.send(self,"_jsObject",[]);
selector=smalltalk.send(aMessage,"_selector",[]);
jsSelector=smalltalk.send(selector,"_asJavaScriptSelector",[]);
arguments=smalltalk.send(aMessage,"_arguments",[]);
if(obj[jsSelector] != undefined) {return smalltalk.send(obj, jsSelector, arguments)};
;
smalltalk.send(self,"_doesNotUnderstand_",[aMessage],smalltalk.Object);
return self}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_inspectOn_",
smalltalk.method({
selector: "inspectOn:",
fn: function (anInspector){
var self=this;
var variables;
variables=smalltalk.send((smalltalk.Dictionary || Dictionary),"_new",[]);
smalltalk.send(variables,"_at_put_",["#self",smalltalk.send(self,"_jsObject",[])]);
smalltalk.send(anInspector,"_setLabel_",[smalltalk.send(self,"_printString",[])]);
for(var i in self['@jsObject']) {
		variables._at_put_(i, self['@jsObject'][i]);
	};
;
smalltalk.send(anInspector,"_setVariables_",[variables]);
return self}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_jsObject",
smalltalk.method({
selector: "jsObject",
fn: function (){
var self=this;
return self["@jsObject"];
}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_jsObject_",
smalltalk.method({
selector: "jsObject:",
fn: function (aJSObject){
var self=this;
self["@jsObject"]=aJSObject;
return self}
}),
smalltalk.JSObjectProxy);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_jsObject",[]),"_toString",[]);
return $1;
}
}),
smalltalk.JSObjectProxy);


smalltalk.addMethod(
"_on_",
smalltalk.method({
selector: "on:",
fn: function (aJSObject){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_jsObject_",[aJSObject]);
$3=smalltalk.send($2,"_yourself",[]);
$1=$3;
return $1;
}
}),
smalltalk.JSObjectProxy.klass);


smalltalk.addClass('Number', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"_&",
smalltalk.method({
selector: "&",
fn: function (aNumber){
var self=this;
return self & aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__star",
smalltalk.method({
selector: "*",
fn: function (aNumber){
var self=this;
return self * aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__plus",
smalltalk.method({
selector: "+",
fn: function (aNumber){
var self=this;
return self + aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__minus",
smalltalk.method({
selector: "-",
fn: function (aNumber){
var self=this;
return self - aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__slash",
smalltalk.method({
selector: "/",
fn: function (aNumber){
var self=this;
return self / aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__lt",
smalltalk.method({
selector: "<",
fn: function (aNumber){
var self=this;
return self < aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__lt_eq",
smalltalk.method({
selector: "<=",
fn: function (aNumber){
var self=this;
return self <= aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__eq",
smalltalk.method({
selector: "=",
fn: function (aNumber){
var self=this;
var $1;
$1=smalltalk.send(aNumber,"_isNumber",[]);
if(! smalltalk.assert($1)){
return false;
};
return Number(self) == aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__gt",
smalltalk.method({
selector: ">",
fn: function (aNumber){
var self=this;
return self > aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__gt_eq",
smalltalk.method({
selector: ">=",
fn: function (aNumber){
var self=this;
return self >= aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"__at",
smalltalk.method({
selector: "@",
fn: function (aNumber){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[self,aNumber]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_\x5c\x5c",
smalltalk.method({
selector: "\x5c\x5c",
fn: function (aNumber){
var self=this;
return self % aNumber;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_abs",
smalltalk.method({
selector: "abs",
fn: function (){
var self=this;
var $1;
$1=Math.abs(self);;
;
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_asJSON",
smalltalk.method({
selector: "asJSON",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_asJavascript",
smalltalk.method({
selector: "asJavascript",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send("(","__comma",[smalltalk.send(self,"_printString",[])]),"__comma",[")"]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_asPoint",
smalltalk.method({
selector: "asPoint",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[self,self]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_asString",
smalltalk.method({
selector: "asString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_printString",[]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_atRandom",
smalltalk.method({
selector: "atRandom",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Random || Random),"_new",[]),"_next",[]),"__star",[self]),"_truncated",[]),"__plus",[(1)]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_clearInterval",
smalltalk.method({
selector: "clearInterval",
fn: function (){
var self=this;
clearInterval(Number(self));
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_clearTimeout",
smalltalk.method({
selector: "clearTimeout",
fn: function (){
var self=this;
clearTimeout(Number(self));
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_copy",
smalltalk.method({
selector: "copy",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_deepCopy",
smalltalk.method({
selector: "deepCopy",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_copy",[]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_even",
smalltalk.method({
selector: "even",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send((0),"__eq",[smalltalk.send(self,"_\\\\",[(2)])]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_identityHash",
smalltalk.method({
selector: "identityHash",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_asString",[]),"__comma",["n"]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_isNumber",
smalltalk.method({
selector: "isNumber",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_isZero",
smalltalk.method({
selector: "isZero",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"__eq",[(0)]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_max_",
smalltalk.method({
selector: "max:",
fn: function (aNumber){
var self=this;
return Math.max(self, aNumber);;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_min_",
smalltalk.method({
selector: "min:",
fn: function (aNumber){
var self=this;
return Math.min(self, aNumber);;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_negated",
smalltalk.method({
selector: "negated",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send((0),"__minus",[self]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_negative",
smalltalk.method({
selector: "negative",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"__lt",[(0)]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_odd",
smalltalk.method({
selector: "odd",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_even",[]),"_not",[]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_positive",
smalltalk.method({
selector: "positive",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"__gt_eq",[(0)]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_printShowingDecimalPlaces_",
smalltalk.method({
selector: "printShowingDecimalPlaces:",
fn: function (placesDesired){
var self=this;
return self.toFixed(placesDesired);
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
return String(self);
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_rounded",
smalltalk.method({
selector: "rounded",
fn: function (){
var self=this;
return Math.round(self);;
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_sqrt",
smalltalk.method({
selector: "sqrt",
fn: function (){
var self=this;
return Math.sqrt(self);
;
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_squared",
smalltalk.method({
selector: "squared",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"__star",[self]);
return $1;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_timesRepeat_",
smalltalk.method({
selector: "timesRepeat:",
fn: function (aBlock){
var self=this;
var integer;
var count;
integer=smalltalk.send(self,"_truncated",[]);
count=(1);
smalltalk.send((function(){
return smalltalk.send(count,"__gt",[self]);
}),"_whileFalse_",[(function(){
smalltalk.send(aBlock,"_value",[]);
count=smalltalk.send(count,"__plus",[(1)]);
return count;
})]);
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_to_",
smalltalk.method({
selector: "to:",
fn: function (aNumber){
var self=this;
var array;
var first;
var last;
var count;
first=smalltalk.send(self,"_truncated",[]);
last=smalltalk.send(smalltalk.send(aNumber,"_truncated",[]),"__plus",[(1)]);
count=(1);
array=smalltalk.send((smalltalk.Array || Array),"_new",[]);
smalltalk.send(smalltalk.send(last,"__minus",[first]),"_timesRepeat_",[(function(){
smalltalk.send(array,"_at_put_",[count,first]);
count=smalltalk.send(count,"__plus",[(1)]);
count;
first=smalltalk.send(first,"__plus",[(1)]);
return first;
})]);
return array;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_to_by_",
smalltalk.method({
selector: "to:by:",
fn: function (stop,step){
var self=this;
var $1,$2;
var array;
var value;
var pos;
value=self;
array=smalltalk.send((smalltalk.Array || Array),"_new",[]);
pos=(1);
$1=smalltalk.send(step,"__eq",[(0)]);
if(smalltalk.assert($1)){
smalltalk.send(self,"_error_",["step must be non-zero"]);
};
$2=smalltalk.send(step,"__lt",[(0)]);
if(smalltalk.assert($2)){
smalltalk.send((function(){
return smalltalk.send(value,"__gt_eq",[stop]);
}),"_whileTrue_",[(function(){
smalltalk.send(array,"_at_put_",[pos,value]);
pos=smalltalk.send(pos,"__plus",[(1)]);
pos;
value=smalltalk.send(value,"__plus",[step]);
return value;
})]);
} else {
smalltalk.send((function(){
return smalltalk.send(value,"__lt_eq",[stop]);
}),"_whileTrue_",[(function(){
smalltalk.send(array,"_at_put_",[pos,value]);
pos=smalltalk.send(pos,"__plus",[(1)]);
pos;
value=smalltalk.send(value,"__plus",[step]);
return value;
})]);
};
return array;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_to_by_do_",
smalltalk.method({
selector: "to:by:do:",
fn: function (stop,step,aBlock){
var self=this;
var $1,$2;
var value;
value=self;
$1=smalltalk.send(step,"__eq",[(0)]);
if(smalltalk.assert($1)){
smalltalk.send(self,"_error_",["step must be non-zero"]);
};
$2=smalltalk.send(step,"__lt",[(0)]);
if(smalltalk.assert($2)){
smalltalk.send((function(){
return smalltalk.send(value,"__gt_eq",[stop]);
}),"_whileTrue_",[(function(){
smalltalk.send(aBlock,"_value_",[value]);
value=smalltalk.send(value,"__plus",[step]);
return value;
})]);
} else {
smalltalk.send((function(){
return smalltalk.send(value,"__lt_eq",[stop]);
}),"_whileTrue_",[(function(){
smalltalk.send(aBlock,"_value_",[value]);
value=smalltalk.send(value,"__plus",[step]);
return value;
})]);
};
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_to_do_",
smalltalk.method({
selector: "to:do:",
fn: function (stop,aBlock){
var self=this;
var nextValue;
nextValue=self;
smalltalk.send((function(){
return smalltalk.send(nextValue,"__lt_eq",[stop]);
}),"_whileTrue_",[(function(){
smalltalk.send(aBlock,"_value_",[nextValue]);
nextValue=smalltalk.send(nextValue,"__plus",[(1)]);
return nextValue;
})]);
return self}
}),
smalltalk.Number);

smalltalk.addMethod(
"_truncated",
smalltalk.method({
selector: "truncated",
fn: function (){
var self=this;
var $1;
var result;
$1=smalltalk.send(self,"__gt_eq",[(0)]);
if(smalltalk.assert($1)){
result = Math.floor(self);;
;
} else {
result = (Math.floor(self * (-1)) * (-1));;
;
};
return result;
}
}),
smalltalk.Number);

smalltalk.addMethod(
"_|",
smalltalk.method({
selector: "|",
fn: function (aNumber){
var self=this;
return self | aNumber;
;
return self}
}),
smalltalk.Number);


smalltalk.addMethod(
"_pi",
smalltalk.method({
selector: "pi",
fn: function (){
var self=this;
return Math.PI;
;
return self}
}),
smalltalk.Number.klass);


smalltalk.addClass('Package', smalltalk.Object, ['commitPathJs', 'commitPathSt'], 'Kernel-Objects');
smalltalk.addMethod(
"_classes",
smalltalk.method({
selector: "classes",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_select_",[(function(c){
return smalltalk.send(smalltalk.send(c,"_package",[]),"__eq_eq",[self]);
})]);
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_commitPathJs",
smalltalk.method({
selector: "commitPathJs",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@commitPathJs"]) == nil || $receiver == undefined){
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_defaultCommitPathJs",[]);
} else {
$1=self["@commitPathJs"];
};
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_commitPathJs_",
smalltalk.method({
selector: "commitPathJs:",
fn: function (aString){
var self=this;
self["@commitPathJs"]=aString;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_commitPathSt",
smalltalk.method({
selector: "commitPathSt",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@commitPathSt"]) == nil || $receiver == undefined){
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_defaultCommitPathSt",[]);
} else {
$1=self["@commitPathSt"];
};
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_commitPathSt_",
smalltalk.method({
selector: "commitPathSt:",
fn: function (aString){
var self=this;
self["@commitPathSt"]=aString;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_dependencies",
smalltalk.method({
selector: "dependencies",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_propertyAt_ifAbsent_",["dependencies",(function(){
return [];
})]);
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_dependencies_",
smalltalk.method({
selector: "dependencies:",
fn: function (anArray){
var self=this;
var $1;
$1=smalltalk.send(self,"_propertyAt_put_",["dependencies",anArray]);
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_jsProperties",
smalltalk.method({
selector: "jsProperties",
fn: function (){
var self=this;
return self.properties;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_jsProperties_",
smalltalk.method({
selector: "jsProperties:",
fn: function (aJSObject){
var self=this;
return self.properties = aJSObject;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_name",
smalltalk.method({
selector: "name",
fn: function (){
var self=this;
return self.pkgName;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_name_",
smalltalk.method({
selector: "name:",
fn: function (aString){
var self=this;
self.pkgName = aString;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(self,"_name",[]);
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_properties",
smalltalk.method({
selector: "properties",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_readJSObject_",[smalltalk.send(self,"_basicAt_",["properties"])]);
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_properties_",
smalltalk.method({
selector: "properties:",
fn: function (aDict){
var self=this;
var object;
object = {};;
;
smalltalk.send(aDict,"_keysAndValuesDo_",[(function(key,value){
return object[key] = value;
;
})]);
return self.properties = object;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_propertiesAsJSON",
smalltalk.method({
selector: "propertiesAsJSON",
fn: function (){
var self=this;
return JSON.stringify(self.properties);
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_propertyAt_",
smalltalk.method({
selector: "propertyAt:",
fn: function (key){
var self=this;
return self.properties[key];
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_propertyAt_ifAbsent_",
smalltalk.method({
selector: "propertyAt:ifAbsent:",
fn: function (key,block){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"_propertyAt_",[key]);
if(($receiver = $2) == nil || $receiver == undefined){
$1=smalltalk.send(block,"_value",[]);
} else {
$1=$2;
};
return $1;
}
}),
smalltalk.Package);

smalltalk.addMethod(
"_propertyAt_put_",
smalltalk.method({
selector: "propertyAt:put:",
fn: function (key,value){
var self=this;
return self.properties[key] = value;
;
return self}
}),
smalltalk.Package);

smalltalk.addMethod(
"_sortedClasses",
smalltalk.method({
selector: "sortedClasses",
fn: function (){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(self,"_class",[]),"_sortedClasses_",[smalltalk.send(self,"_classes",[])]);
return $1;
}
}),
smalltalk.Package);


smalltalk.Package.klass.iVarNames = ['defaultCommitPathJs','defaultCommitPathSt'];
smalltalk.addMethod(
"_commitToLocalStorage_",
smalltalk.method({
selector: "commitToLocalStorage:",
fn: function (aPackageName){
var self=this;
var key;
var sourceCode;
key=smalltalk.send("smalltalk.packages.","__comma",[aPackageName]);
sourceCode=smalltalk.send(smalltalk.send((smalltalk.Exporter || Exporter),"_new",[]),"_exportPackage_",[aPackageName]);
localStorage[key] = escape(sourceCode);
;
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_defaultCommitPathJs",
smalltalk.method({
selector: "defaultCommitPathJs",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@defaultCommitPathJs"]) == nil || $receiver == undefined){
self["@defaultCommitPathJs"]="js";
$1=self["@defaultCommitPathJs"];
} else {
$1=self["@defaultCommitPathJs"];
};
return $1;
}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_defaultCommitPathJs_",
smalltalk.method({
selector: "defaultCommitPathJs:",
fn: function (aString){
var self=this;
self["@defaultCommitPathJs"]=aString;
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_defaultCommitPathSt",
smalltalk.method({
selector: "defaultCommitPathSt",
fn: function (){
var self=this;
var $1;
if(($receiver = self["@defaultCommitPathSt"]) == nil || $receiver == undefined){
self["@defaultCommitPathSt"]="st";
$1=self["@defaultCommitPathSt"];
} else {
$1=self["@defaultCommitPathSt"];
};
return $1;
}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_defaultCommitPathSt_",
smalltalk.method({
selector: "defaultCommitPathSt:",
fn: function (aString){
var self=this;
self["@defaultCommitPathSt"]=aString;
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_fetch_",
smalltalk.method({
selector: "fetch:",
fn: function (aPackageName){
var self=this;
smalltalk.send(self,"_fetch_prefix_",[aPackageName,smalltalk.send(smalltalk.send(self,"_defaultCommitPathJs",[]),"__comma",["/"])]);
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_fetch_prefix_",
smalltalk.method({
selector: "fetch:prefix:",
fn: function (aPackageName,aPrefix){
var self=this;
smalltalk.send(jQuery,"_getScript_onSuccess_",[smalltalk.send(smalltalk.send(aPrefix,"__comma",[aPackageName]),"__comma",[".js"]),(function(){
return smalltalk.send((smalltalk.Package || Package),"_init_",[aPackageName]);
})]);
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_init_",
smalltalk.method({
selector: "init:",
fn: function (aPackageName){
var self=this;
var $1,$2;
$1=smalltalk.send(smalltalk.send(smalltalk,"_classes",[]),"_select_",[(function(each){
return each.pkg.pkgName == aPackageName;
;
})]);
smalltalk.send($1,"_do_",[(function(each){
return smalltalk.init(each);
;
})]);
$2=smalltalk.send($1,"_do_",[(function(each){
return smalltalk.send(each,"_initialize",[]);
})]);
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_named_",
smalltalk.method({
selector: "named:",
fn: function (aPackageName){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_packageAt_",[aPackageName]);
return $1;
}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_named_ifAbsent_",
smalltalk.method({
selector: "named:ifAbsent:",
fn: function (aPackageName,aBlock){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_packageAt_ifAbsent_",[aPackageName,aBlock]);
return $1;
}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_resetCommitPaths",
smalltalk.method({
selector: "resetCommitPaths",
fn: function (){
var self=this;
self["@defaultCommitPathJs"]=nil;
self["@defaultCommitPathSt"]=nil;
return self}
}),
smalltalk.Package.klass);

smalltalk.addMethod(
"_sortedClasses_",
smalltalk.method({
selector: "sortedClasses:",
fn: function (classes){
var self=this;
var $1;
var children;
var others;
var nodes;
var expandedClasses;
children=[];
others=[];
smalltalk.send(classes,"_do_",[(function(each){
$1=smalltalk.send(classes,"_includes_",[smalltalk.send(each,"_superclass",[])]);
if(smalltalk.assert($1)){
return smalltalk.send(others,"_add_",[each]);
} else {
return smalltalk.send(children,"_add_",[each]);
};
})]);
nodes=smalltalk.send(children,"_collect_",[(function(each){
return smalltalk.send((smalltalk.ClassSorterNode || ClassSorterNode),"_on_classes_level_",[each,others,(0)]);
})]);
nodes=smalltalk.send(nodes,"_sorted_",[(function(a,b){
return smalltalk.send(smalltalk.send(smalltalk.send(a,"_theClass",[]),"_name",[]),"__lt_eq",[smalltalk.send(smalltalk.send(b,"_theClass",[]),"_name",[])]);
})]);
expandedClasses=smalltalk.send((smalltalk.Array || Array),"_new",[]);
smalltalk.send(nodes,"_do_",[(function(aNode){
return smalltalk.send(aNode,"_traverseClassesWith_",[expandedClasses]);
})]);
return expandedClasses;
}
}),
smalltalk.Package.klass);


smalltalk.addClass('Point', smalltalk.Object, ['x', 'y'], 'Kernel-Objects');
smalltalk.addMethod(
"__star",
smalltalk.method({
selector: "*",
fn: function (aPoint){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[smalltalk.send(smalltalk.send(self,"_x",[]),"__star",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_x",[])]),smalltalk.send(smalltalk.send(self,"_y",[]),"__star",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_y",[])])]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"__plus",
smalltalk.method({
selector: "+",
fn: function (aPoint){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[smalltalk.send(smalltalk.send(self,"_x",[]),"__plus",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_x",[])]),smalltalk.send(smalltalk.send(self,"_y",[]),"__plus",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_y",[])])]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"__minus",
smalltalk.method({
selector: "-",
fn: function (aPoint){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[smalltalk.send(smalltalk.send(self,"_x",[]),"__minus",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_x",[])]),smalltalk.send(smalltalk.send(self,"_y",[]),"__minus",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_y",[])])]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"__slash",
smalltalk.method({
selector: "/",
fn: function (aPoint){
var self=this;
var $1;
$1=smalltalk.send((smalltalk.Point || Point),"_x_y_",[smalltalk.send(smalltalk.send(self,"_x",[]),"__slash",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_x",[])]),smalltalk.send(smalltalk.send(self,"_y",[]),"__slash",[smalltalk.send(smalltalk.send(aPoint,"_asPoint",[]),"_y",[])])]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"__eq",
smalltalk.method({
selector: "=",
fn: function (aPoint){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(aPoint,"_class",[]),"__eq",[smalltalk.send(self,"_class",[])]),"_and_",[(function(){
return smalltalk.send(smalltalk.send(smalltalk.send(aPoint,"_x",[]),"__eq",[smalltalk.send(self,"_x",[])]),"_&",[smalltalk.send(smalltalk.send(aPoint,"_y",[]),"__eq",[smalltalk.send(self,"_y",[])])]);
})]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_asPoint",
smalltalk.method({
selector: "asPoint",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
var $2,$1;
$1=smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(stream){
smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(smalltalk.send(self["@x"],"_printString",[]),"__comma",["@"])]);
$2=smalltalk.send(smalltalk.send(self["@y"],"_notNil",[]),"_and_",[(function(){
return smalltalk.send(self["@y"],"_negative",[]);
})]);
if(smalltalk.assert($2)){
smalltalk.send(stream,"_space",[]);
};
return smalltalk.send(stream,"_nextPutAll_",[smalltalk.send(self["@y"],"_printString",[])]);
})]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_translateBy_",
smalltalk.method({
selector: "translateBy:",
fn: function (delta){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send(smalltalk.send(delta,"_x",[]),"__plus",[self["@x"]]),"__at",[smalltalk.send(smalltalk.send(delta,"_y",[]),"__plus",[self["@y"]])]);
return $1;
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_x",
smalltalk.method({
selector: "x",
fn: function (){
var self=this;
return self["@x"];
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_x_",
smalltalk.method({
selector: "x:",
fn: function (aNumber){
var self=this;
self["@x"]=aNumber;
return self}
}),
smalltalk.Point);

smalltalk.addMethod(
"_y",
smalltalk.method({
selector: "y",
fn: function (){
var self=this;
return self["@y"];
}
}),
smalltalk.Point);

smalltalk.addMethod(
"_y_",
smalltalk.method({
selector: "y:",
fn: function (aNumber){
var self=this;
self["@y"]=aNumber;
return self}
}),
smalltalk.Point);


smalltalk.addMethod(
"_x_y_",
smalltalk.method({
selector: "x:y:",
fn: function (aNumber,anotherNumber){
var self=this;
var $2,$3,$1;
$2=smalltalk.send(self,"_new",[]);
smalltalk.send($2,"_x_",[aNumber]);
smalltalk.send($2,"_y_",[anotherNumber]);
$3=smalltalk.send($2,"_yourself",[]);
$1=$3;
return $1;
}
}),
smalltalk.Point.klass);


smalltalk.addClass('Random', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"_next",
smalltalk.method({
selector: "next",
fn: function (){
var self=this;
return Math.random();
;
return self}
}),
smalltalk.Random);

smalltalk.addMethod(
"_next_",
smalltalk.method({
selector: "next:",
fn: function (anInteger){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((1),"_to_",[anInteger]),"_collect_",[(function(each){
return smalltalk.send(self,"_next",[]);
})]);
return $1;
}
}),
smalltalk.Random);



smalltalk.addClass('Smalltalk', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"_at_",
smalltalk.method({
selector: "at:",
fn: function (aString){
var self=this;
return self[aString];
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_basicParse_",
smalltalk.method({
selector: "basicParse:",
fn: function (aString){
var self=this;
return smalltalk.parser.parse(aString);
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_classes",
smalltalk.method({
selector: "classes",
fn: function (){
var self=this;
return self.classes();
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_createPackage_",
smalltalk.method({
selector: "createPackage:",
fn: function (packageName){
var self=this;
return smalltalk.addPackage(packageName, nil);
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_createPackage_properties_",
smalltalk.method({
selector: "createPackage:properties:",
fn: function (packageName,aDict){
var self=this;
var object;
object = {};;
;
smalltalk.send(aDict,"_keysAndValuesDo_",[(function(key,value){
return object[key] = value;
;
})]);
return smalltalk.addPackage(packageName, object);
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_deletePackage_",
smalltalk.method({
selector: "deletePackage:",
fn: function (packageName){
var self=this;
delete smalltalk.packages[packageName];
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_packageAt_",
smalltalk.method({
selector: "packageAt:",
fn: function (packageName){
var self=this;
return self.packages[packageName];
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_packageAt_ifAbsent_",
smalltalk.method({
selector: "packageAt:ifAbsent:",
fn: function (packageName,aBlock){
var self=this;
var $2,$1;
$2=smalltalk.send(self,"_packageAt_",[packageName]);
$1=smalltalk.send($2,"_ifNil_",[aBlock]);
return $1;
}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_packages",
smalltalk.method({
selector: "packages",
fn: function (){
var self=this;
return self.packages.all();
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_parse_",
smalltalk.method({
selector: "parse:",
fn: function (aString){
var self=this;
var result;
smalltalk.send(self,"_try_catch_",[(function(){
result=smalltalk.send(self,"_basicParse_",[aString]);
return result;
}),(function(ex){
return smalltalk.send(smalltalk.send(self,"_parseError_parsing_",[ex,aString]),"_signal",[]);
})]);
return result;
}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_parseError_parsing_",
smalltalk.method({
selector: "parseError:parsing:",
fn: function (anException,aString){
var self=this;
var $1;
var row;
var col;
var message;
var lines;
var badLine;
var code;
row = anException.line;
	col = anException.column;
	message = anException.message;;
;
lines=smalltalk.send(aString,"_lines",[]);
badLine=smalltalk.send(lines,"_at_",[row]);
badLine=smalltalk.send(smalltalk.send(smalltalk.send(badLine,"_copyFrom_to_",[(1),smalltalk.send(col,"__minus",[(1)])]),"__comma",[" ===>"]),"__comma",[smalltalk.send(badLine,"_copyFrom_to_",[col,smalltalk.send(badLine,"_size",[])])]);
smalltalk.send(lines,"_at_put_",[row,badLine]);
code=smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(s){
return smalltalk.send(lines,"_withIndexDo_",[(function(l,i){
return smalltalk.send(s,"_nextPutAll_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(i,"_asString",[]),"__comma",[": "]),"__comma",[l]),"__comma",[smalltalk.send((smalltalk.String || String),"_lf",[])])]);
})]);
})]);
$1=smalltalk.send(smalltalk.send((smalltalk.ParseError || ParseError),"_new",[]),"_messageText_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("Parse error on line ","__comma",[row]),"__comma",[" column "]),"__comma",[col]),"__comma",[" : "]),"__comma",[message]),"__comma",[" Below is code with line numbers and ===> marker inserted:"]),"__comma",[smalltalk.send((smalltalk.String || String),"_lf",[])]),"__comma",[code])]);
return $1;
}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_pseudoVariableNames",
smalltalk.method({
selector: "pseudoVariableNames",
fn: function (){
var self=this;
return ["self", "super", "nil", "true", "false"];
}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_readJSObject_",
smalltalk.method({
selector: "readJSObject:",
fn: function (anObject){
var self=this;
return self.readJSObject(anObject);
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_removeClass_",
smalltalk.method({
selector: "removeClass:",
fn: function (aClass){
var self=this;
var $1;
$1=smalltalk.send(aClass,"_isMetaclass",[]);
if(smalltalk.assert($1)){
smalltalk.send(self,"_error_",[smalltalk.send(smalltalk.send(aClass,"_asString",[]),"__comma",[" is a Metaclass and cannot be removed!"])]);
};
smalltalk.send(smalltalk.send(smalltalk.send(aClass,"_methodDictionary",[]),"_values",[]),"_do_",[(function(each){
return smalltalk.send(aClass,"_removeCompiledMethod_",[each]);
})]);
smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass,"_class",[]),"_methodDictionary",[]),"_values",[]),"_do_",[(function(each){
return smalltalk.send(smalltalk.send(aClass,"_class",[]),"_removeCompiledMethod_",[each]);
})]);
smalltalk.send(self,"_basicDelete_",[smalltalk.send(aClass,"_name",[])]);
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_removePackage_",
smalltalk.method({
selector: "removePackage:",
fn: function (packageName){
var self=this;
var pkg;
pkg=smalltalk.send(self,"_packageAt_ifAbsent_",[packageName,(function(){
return smalltalk.send(self,"_error_",[smalltalk.send("Missing package: ","__comma",[packageName])]);
})]);
smalltalk.send(smalltalk.send(pkg,"_classes",[]),"_do_",[(function(each){
return smalltalk.send(self,"_removeClass_",[each]);
})]);
smalltalk.send(self,"_deletePackage_",[packageName]);
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_renamePackage_to_",
smalltalk.method({
selector: "renamePackage:to:",
fn: function (packageName,newName){
var self=this;
var $1;
var pkg;
pkg=smalltalk.send(self,"_packageAt_ifAbsent_",[packageName,(function(){
return smalltalk.send(self,"_error_",[smalltalk.send("Missing package: ","__comma",[packageName])]);
})]);
$1=smalltalk.send(self,"_packageAt_",[newName]);
if(($receiver = $1) == nil || $receiver == undefined){
$1;
} else {
smalltalk.send(self,"_error_",[smalltalk.send("Already exists a package called: ","__comma",[newName])]);
};
smalltalk.packages[newName] = smalltalk.packages[packageName];
;
smalltalk.send(pkg,"_name_",[newName]);
smalltalk.send(self,"_deletePackage_",[packageName]);
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_reservedWords",
smalltalk.method({
selector: "reservedWords",
fn: function (){
var self=this;
return self.reservedWords;
;
return self}
}),
smalltalk.Smalltalk);

smalltalk.addMethod(
"_send_to_arguments_",
smalltalk.method({
selector: "send:to:arguments:",
fn: function (aSelector,anObject,aCollection){
var self=this;
var selector;
selector=smalltalk.send(smalltalk.send(aSelector,"_asString",[]),"_asSelector",[]);
return self.send(anObject, selector, aCollection);
;
return self}
}),
smalltalk.Smalltalk);


smalltalk.Smalltalk.klass.iVarNames = ['current'];
smalltalk.addMethod(
"_current",
smalltalk.method({
selector: "current",
fn: function (){
var self=this;
return smalltalk;
;
return self}
}),
smalltalk.Smalltalk.klass);


smalltalk.addClass('UndefinedObject', smalltalk.Object, [], 'Kernel-Objects');
smalltalk.addMethod(
"_asJSON",
smalltalk.method({
selector: "asJSON",
fn: function (){
var self=this;
return null;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_deepCopy",
smalltalk.method({
selector: "deepCopy",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_ifNil_",
smalltalk.method({
selector: "ifNil:",
fn: function (aBlock){
var self=this;
var $1;
$1=smalltalk.send(self,"_ifNil_ifNotNil_",[aBlock,(function(){
})]);
return $1;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_ifNil_ifNotNil_",
smalltalk.method({
selector: "ifNil:ifNotNil:",
fn: function (aBlock,anotherBlock){
var self=this;
var $1;
$1=smalltalk.send(aBlock,"_value",[]);
return $1;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_ifNotNil_",
smalltalk.method({
selector: "ifNotNil:",
fn: function (aBlock){
var self=this;
return self;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_ifNotNil_ifNil_",
smalltalk.method({
selector: "ifNotNil:ifNil:",
fn: function (aBlock,anotherBlock){
var self=this;
var $1;
$1=smalltalk.send(anotherBlock,"_value",[]);
return $1;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_isNil",
smalltalk.method({
selector: "isNil",
fn: function (){
var self=this;
return true;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_notNil",
smalltalk.method({
selector: "notNil",
fn: function (){
var self=this;
return false;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_printString",
smalltalk.method({
selector: "printString",
fn: function (){
var self=this;
return "nil";
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_shallowCopy",
smalltalk.method({
selector: "shallowCopy",
fn: function (){
var self=this;
return self;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_subclass_instanceVariableNames_",
smalltalk.method({
selector: "subclass:instanceVariableNames:",
fn: function (aString,anotherString){
var self=this;
var $1;
$1=smalltalk.send(self,"_subclass_instanceVariableNames_package_",[aString,anotherString,nil]);
return $1;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_subclass_instanceVariableNames_category_",
smalltalk.method({
selector: "subclass:instanceVariableNames:category:",
fn: function (aString,aString2,aString3){
var self=this;
var $1;
smalltalk.send(self,"_deprecatedAPI",[]);
$1=smalltalk.send(self,"_subclass_instanceVariableNames_package_",[aString,aString2,aString3]);
return $1;
}
}),
smalltalk.UndefinedObject);

smalltalk.addMethod(
"_subclass_instanceVariableNames_package_",
smalltalk.method({
selector: "subclass:instanceVariableNames:package:",
fn: function (aString,aString2,aString3){
var self=this;
var $1;
$1=smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder),"_new",[]),"_superclass_subclass_instanceVariableNames_package_",[self,aString,aString2,aString3]);
return $1;
}
}),
smalltalk.UndefinedObject);


smalltalk.addMethod(
"_new",
smalltalk.method({
selector: "new",
fn: function (){
var self=this;
smalltalk.send(self,"_error_",["You cannot create new instances of UndefinedObject. Use nil"]);
return self}
}),
smalltalk.UndefinedObject.klass);