|
@@ -41,15 +41,64 @@ smalltalk.AbstractExporter);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "recipe",
|
|
|
|
-fn: function (){
|
|
|
|
|
|
+selector: "exportPackage:on:",
|
|
|
|
+fn: function (aPackage,aStream){
|
|
var self=this;
|
|
var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
|
|
return smalltalk.withContext(function($ctx1) {
|
|
self._subclassResponsibility();
|
|
self._subclassResponsibility();
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"recipe",{},smalltalk.AbstractExporter)})},
|
|
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackage:on:",{aPackage:aPackage,aStream:aStream},smalltalk.AbstractExporter)})},
|
|
messageSends: ["subclassResponsibility"]}),
|
|
messageSends: ["subclassResponsibility"]}),
|
|
smalltalk.AbstractExporter);
|
|
smalltalk.AbstractExporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "extensionMethodsOfPackage:",
|
|
|
|
+fn: function (aPackage){
|
|
|
|
+var self=this;
|
|
|
|
+var result;
|
|
|
|
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+result=_st($OrderedCollection())._new();
|
|
|
|
+_st(self._extensionProtocolsOfPackage_(aPackage))._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st(result)._addAll_(_st(each)._methods());
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+$1=result;
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"extensionMethodsOfPackage:",{aPackage:aPackage,result:result},smalltalk.AbstractExporter)})},
|
|
|
|
+messageSends: ["new", "do:", "addAll:", "methods", "extensionProtocolsOfPackage:"]}),
|
|
|
|
+smalltalk.AbstractExporter);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "extensionProtocolsOfPackage:",
|
|
|
|
+fn: function (aPackage){
|
|
|
|
+var self=this;
|
|
|
|
+var extensionName,result;
|
|
|
|
+function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
|
|
|
|
+function $ExportMethodProtocol(){return smalltalk.ExportMethodProtocol||(typeof ExportMethodProtocol=="undefined"?nil:ExportMethodProtocol)}
|
|
|
|
+function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2;
|
|
|
|
+extensionName="*".__comma(_st(aPackage)._name());
|
|
|
|
+result=_st($OrderedCollection())._new();
|
|
|
|
+_st(_st(_st($Smalltalk())._current())._classes())._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st([each,_st(each)._class()])._do_((function(behavior){
|
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
|
+$1=_st(_st(behavior)._protocols())._includes_(extensionName);
|
|
|
|
+if(smalltalk.assert($1)){
|
|
|
|
+return _st(result)._add_(_st($ExportMethodProtocol())._name_theClass_(extensionName,behavior));
|
|
|
|
+};
|
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({behavior:behavior},$ctx2)})}));
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+$2=result;
|
|
|
|
+return $2;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"extensionProtocolsOfPackage:",{aPackage:aPackage,extensionName:extensionName,result:result},smalltalk.AbstractExporter)})},
|
|
|
|
+messageSends: [",", "name", "new", "do:", "ifTrue:", "add:", "name:theClass:", "includes:", "protocols", "class", "classes", "current"]}),
|
|
|
|
+smalltalk.AbstractExporter);
|
|
|
|
+
|
|
|
|
|
|
smalltalk.AbstractExporter.klass.iVarNames = ['default'];
|
|
smalltalk.AbstractExporter.klass.iVarNames = ['default'];
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
@@ -189,6 +238,25 @@ return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:on:",{aMethod:aMeth
|
|
messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"]}),
|
|
messageSends: ["lf", "nextPutAll:", "chunkEscape:", "source"]}),
|
|
smalltalk.ChunkExporter);
|
|
smalltalk.ChunkExporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportPackage:on:",
|
|
|
|
+fn: function (aPackage,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+self._exportPackageDefinitionOf_on_(aPackage,aStream);
|
|
|
|
+_st(_st(aPackage)._sortedClasses())._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+self._exportDefinitionOf_on_(each,aStream);
|
|
|
|
+self._exportProtocols_on_(self._ownMethodProtocolsOfClass_(each),aStream);
|
|
|
|
+self._exportMetaDefinitionOf_on_(each,aStream);
|
|
|
|
+return self._exportProtocols_on_(self._ownMethodProtocolsOfClass_(_st(each)._class()),aStream);
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+self._exportProtocols_on_(self._extensionProtocolsOfPackage_(aPackage),aStream);
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackage:on:",{aPackage:aPackage,aStream:aStream},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["exportPackageDefinitionOf:on:", "do:", "exportDefinitionOf:on:", "exportProtocols:on:", "ownMethodProtocolsOfClass:", "exportMetaDefinitionOf:on:", "class", "sortedClasses", "extensionProtocolsOfPackage:"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "exportPackageDefinitionOf:on:",
|
|
selector: "exportPackageDefinitionOf:on:",
|
|
@@ -203,6 +271,65 @@ return self}, function($ctx1) {$ctx1.fill(self,"exportPackageDefinitionOf:on:",{
|
|
messageSends: ["nextPutAll:", ",", "name", "lf"]}),
|
|
messageSends: ["nextPutAll:", ",", "name", "lf"]}),
|
|
smalltalk.ChunkExporter);
|
|
smalltalk.ChunkExporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportProtocol:on:",
|
|
|
|
+fn: function (aProtocol,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+self._exportProtocolPrologueOf_on_(aProtocol,aStream);
|
|
|
|
+_st(_st(aProtocol)._methods())._do_((function(method){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return self._exportMethod_on_(method,aStream);
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({method:method},$ctx1)})}));
|
|
|
|
+self._exportProtocolEpilogueOf_on_(aProtocol,aStream);
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportProtocol:on:",{aProtocol:aProtocol,aStream:aStream},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["exportProtocolPrologueOf:on:", "do:", "exportMethod:on:", "methods", "exportProtocolEpilogueOf:on:"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportProtocolEpilogueOf:on:",
|
|
|
|
+fn: function (aProtocol,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2;
|
|
|
|
+$1=aStream;
|
|
|
|
+_st($1)._nextPutAll_(" !");
|
|
|
|
+_st($1)._lf();
|
|
|
|
+$2=_st($1)._lf();
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportProtocolEpilogueOf:on:",{aProtocol:aProtocol,aStream:aStream},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["nextPutAll:", "lf"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportProtocolPrologueOf:on:",
|
|
|
|
+fn: function (aProtocol,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2;
|
|
|
|
+$1=aStream;
|
|
|
|
+_st($1)._nextPutAll_("!".__comma(self._classNameFor_(_st(aProtocol)._theClass())));
|
|
|
|
+$2=_st($1)._nextPutAll_(_st(" methodsFor: '".__comma(_st(aProtocol)._name())).__comma("'!"));
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportProtocolPrologueOf:on:",{aProtocol:aProtocol,aStream:aStream},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["nextPutAll:", ",", "classNameFor:", "theClass", "name"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportProtocols:on:",
|
|
|
|
+fn: function (aCollection,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+_st(aCollection)._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return self._exportProtocol_on_(each,aStream);
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportProtocols:on:",{aCollection:aCollection,aStream:aStream},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["do:", "exportProtocol:on:"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "extensionCategoriesOfPackage:",
|
|
selector: "extensionCategoriesOfPackage:",
|
|
@@ -273,20 +400,20 @@ function $MethodCategory(){return smalltalk.MethodCategory||(typeof MethodCatego
|
|
return smalltalk.withContext(function($ctx1) {
|
|
return smalltalk.withContext(function($ctx1) {
|
|
var $1,$2;
|
|
var $1,$2;
|
|
map=_st($Dictionary())._new();
|
|
map=_st($Dictionary())._new();
|
|
-_st(aClass)._protocolsDo_((function(category,methods){
|
|
|
|
|
|
+_st(aClass)._protocolsDo_((function(each,methods){
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return smalltalk.withContext(function($ctx2) {
|
|
-$1=_st(category)._match_("^\x5c*");
|
|
|
|
|
|
+$1=_st(each)._match_("^\x5c*");
|
|
if(! smalltalk.assert($1)){
|
|
if(! smalltalk.assert($1)){
|
|
-return _st(map)._at_put_(category,methods);
|
|
|
|
|
|
+return _st(map)._at_put_(each,methods);
|
|
};
|
|
};
|
|
-}, function($ctx2) {$ctx2.fillBlock({category:category,methods:methods},$ctx1)})}));
|
|
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each,methods:methods},$ctx1)})}));
|
|
$2=_st(_st(_st(map)._keys())._sorted_((function(a,b){
|
|
$2=_st(_st(_st(map)._keys())._sorted_((function(a,b){
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return _st(a).__lt_eq(b);
|
|
return _st(a).__lt_eq(b);
|
|
-}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._collect_((function(category){
|
|
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})})))._collect_((function(each){
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return smalltalk.withContext(function($ctx2) {
|
|
-return _st($MethodCategory())._name_theClass_methods_(category,aClass,_st(map)._at_(category));
|
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({category:category},$ctx1)})}));
|
|
|
|
|
|
+return _st($MethodCategory())._name_theClass_methods_(each,aClass,_st(map)._at_(each));
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
return $2;
|
|
return $2;
|
|
}, function($ctx1) {$ctx1.fill(self,"ownCategoriesOfClass:",{aClass:aClass,map:map},smalltalk.ChunkExporter)})},
|
|
}, function($ctx1) {$ctx1.fill(self,"ownCategoriesOfClass:",{aClass:aClass,map:map},smalltalk.ChunkExporter)})},
|
|
messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "collect:", "name:theClass:methods:", "at:", "sorted:", "<=", "keys"]}),
|
|
messageSends: ["new", "protocolsDo:", "ifFalse:", "at:put:", "match:", "collect:", "name:theClass:methods:", "at:", "sorted:", "<=", "keys"]}),
|
|
@@ -305,6 +432,23 @@ return $1;
|
|
messageSends: ["ownCategoriesOfClass:", "class"]}),
|
|
messageSends: ["ownCategoriesOfClass:", "class"]}),
|
|
smalltalk.ChunkExporter);
|
|
smalltalk.ChunkExporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "ownMethodProtocolsOfClass:",
|
|
|
|
+fn: function (aClass){
|
|
|
|
+var self=this;
|
|
|
|
+function $ExportMethodProtocol(){return smalltalk.ExportMethodProtocol||(typeof ExportMethodProtocol=="undefined"?nil:ExportMethodProtocol)}
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+$1=_st(_st(aClass)._ownProtocols())._collect_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st($ExportMethodProtocol())._name_theClass_(each,aClass);
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"ownMethodProtocolsOfClass:",{aClass:aClass},smalltalk.ChunkExporter)})},
|
|
|
|
+messageSends: ["collect:", "name:theClass:", "ownProtocols"]}),
|
|
|
|
+smalltalk.ChunkExporter);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "recipe",
|
|
selector: "recipe",
|
|
@@ -470,6 +614,39 @@ return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:on:",{aMethod:aMeth
|
|
messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:", "methodClass"]}),
|
|
messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "selector", "category", "compiledSource", "fn", "arguments", "source", "messageSends", "referencedClasses", "classNameFor:", "methodClass"]}),
|
|
smalltalk.Exporter);
|
|
smalltalk.Exporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportPackage:on:",
|
|
|
|
+fn: function (aPackage,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2;
|
|
|
|
+$1=self;
|
|
|
|
+_st($1)._exportPackagePrologueOf_on_(aPackage,aStream);
|
|
|
|
+_st($1)._exportPackageDefinitionOf_on_(aPackage,aStream);
|
|
|
|
+$2=_st($1)._exportPackageTransportOf_on_(aPackage,aStream);
|
|
|
|
+_st(_st(aPackage)._sortedClasses())._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+self._exportDefinitionOf_on_(each,aStream);
|
|
|
|
+_st(_st(each)._ownMethods())._do_((function(method){
|
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
|
+return self._exportMethod_on_(method,aStream);
|
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({method:method},$ctx2)})}));
|
|
|
|
+self._exportMetaDefinitionOf_on_(each,aStream);
|
|
|
|
+return _st(_st(_st(each)._class())._ownMethods())._do_((function(method){
|
|
|
|
+return smalltalk.withContext(function($ctx3) {
|
|
|
|
+return self._exportMethod_on_(method,aStream);
|
|
|
|
+}, function($ctx3) {$ctx3.fillBlock({method:method},$ctx2)})}));
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+_st(self._extensionMethodsOfPackage_(aPackage))._do_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return self._exportMethod_on_(each,aStream);
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+self._exportPackageEpilogueOf_on_(aPackage,aStream);
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackage:on:",{aPackage:aPackage,aStream:aStream},smalltalk.Exporter)})},
|
|
|
|
+messageSends: ["exportPackagePrologueOf:on:", "exportPackageDefinitionOf:on:", "exportPackageTransportOf:on:", "do:", "exportDefinitionOf:on:", "exportMethod:on:", "ownMethods", "exportMetaDefinitionOf:on:", "class", "sortedClasses", "extensionMethodsOfPackage:", "exportPackageEpilogueOf:on:"]}),
|
|
|
|
+smalltalk.Exporter);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "exportPackageDefinitionOf:on:",
|
|
selector: "exportPackageDefinitionOf:on:",
|
|
@@ -537,38 +714,6 @@ return self}, function($ctx1) {$ctx1.fill(self,"exportPackageTransportOf:on:",{a
|
|
messageSends: ["transportJson", "ifFalse:", "nextPutAll:", "asJavascript", "name", "lf", "="]}),
|
|
messageSends: ["transportJson", "ifFalse:", "nextPutAll:", "asJavascript", "name", "lf", "="]}),
|
|
smalltalk.Exporter);
|
|
smalltalk.Exporter);
|
|
|
|
|
|
-smalltalk.addMethod(
|
|
|
|
-smalltalk.method({
|
|
|
|
-selector: "extensionMethodsOfPackage:",
|
|
|
|
-fn: function (aPackage){
|
|
|
|
-var self=this;
|
|
|
|
-var name,result;
|
|
|
|
-function $OrderedCollection(){return smalltalk.OrderedCollection||(typeof OrderedCollection=="undefined"?nil:OrderedCollection)}
|
|
|
|
-function $Smalltalk(){return smalltalk.Smalltalk||(typeof Smalltalk=="undefined"?nil:Smalltalk)}
|
|
|
|
-function $Package(){return smalltalk.Package||(typeof Package=="undefined"?nil:Package)}
|
|
|
|
-return smalltalk.withContext(function($ctx1) {
|
|
|
|
-var $1;
|
|
|
|
-name=_st(aPackage)._name();
|
|
|
|
-result=_st($OrderedCollection())._new();
|
|
|
|
-_st(_st($Package())._sortedClasses_(_st(_st($Smalltalk())._current())._classes()))._do_((function(each){
|
|
|
|
-return smalltalk.withContext(function($ctx2) {
|
|
|
|
-return _st([each,_st(each)._class()])._do_((function(aClass){
|
|
|
|
-return smalltalk.withContext(function($ctx3) {
|
|
|
|
-return _st(result)._addAll_(_st(_st(_st(_st(aClass)._methodDictionary())._values())._sorted_((function(a,b){
|
|
|
|
-return smalltalk.withContext(function($ctx4) {
|
|
|
|
-return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
|
|
|
|
-}, function($ctx4) {$ctx4.fillBlock({a:a,b:b},$ctx3)})})))._select_((function(method){
|
|
|
|
-return smalltalk.withContext(function($ctx4) {
|
|
|
|
-return _st(_st(method)._category()).__eq("*".__comma(name));
|
|
|
|
-}, function($ctx4) {$ctx4.fillBlock({method:method},$ctx3)})})));
|
|
|
|
-}, function($ctx3) {$ctx3.fillBlock({aClass:aClass},$ctx2)})}));
|
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
-$1=result;
|
|
|
|
-return $1;
|
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"extensionMethodsOfPackage:",{aPackage:aPackage,name:name,result:result},smalltalk.Exporter)})},
|
|
|
|
-messageSends: ["name", "new", "do:", "addAll:", "select:", "=", ",", "category", "sorted:", "<=", "selector", "values", "methodDictionary", "class", "sortedClasses:", "classes", "current"]}),
|
|
|
|
-smalltalk.Exporter);
|
|
|
|
-
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
selector: "ownMethodsOfClass:",
|
|
selector: "ownMethodsOfClass:",
|
|
@@ -617,66 +762,67 @@ smalltalk.Exporter);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Importer-Exporter');
|
|
|
|
|
|
+smalltalk.addClass('AmdExporter', smalltalk.Exporter, [], 'Importer-Exporter');
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "exportDefinitionOf:on:",
|
|
|
|
-fn: function (aClass,aStream){
|
|
|
|
|
|
+selector: "amdNamesOfPackages:",
|
|
|
|
+fn: function (anArray){
|
|
var self=this;
|
|
var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
|
|
return smalltalk.withContext(function($ctx1) {
|
|
-var $1,$2,$3,$4;
|
|
|
|
-$1=aStream;
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_("smalltalk.addClass(");
|
|
|
|
-_st($1)._nextPutAll_(_st("'".__comma(self._classNameFor_(aClass))).__comma("', "));
|
|
|
|
-_st($1)._nextPutAll_("smalltalk.".__comma(self._classNameFor_(_st(aClass)._superclass())));
|
|
|
|
-$2=_st($1)._nextPutAll_(", [");
|
|
|
|
-_st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
|
|
|
|
|
|
+var $1;
|
|
|
|
+$1=_st(_st(anArray)._select_((function(each){
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return smalltalk.withContext(function($ctx2) {
|
|
-return _st(aStream)._nextPutAll_(_st("'".__comma(each)).__comma("'"));
|
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
|
|
|
|
|
|
+return _st(_st(each)._amdNamespace())._notNil();
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._collect_((function(each){
|
|
return smalltalk.withContext(function($ctx2) {
|
|
return smalltalk.withContext(function($ctx2) {
|
|
-return _st(aStream)._nextPutAll_(", ");
|
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
|
|
|
-$3=aStream;
|
|
|
|
-_st($3)._nextPutAll_("], '");
|
|
|
|
-_st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
|
|
|
|
-$4=_st($3)._nextPutAll_(");");
|
|
|
|
-_st(aStream)._lf();
|
|
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.StrippedExporter)})},
|
|
|
|
-messageSends: ["lf", "nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category"]}),
|
|
|
|
-smalltalk.StrippedExporter);
|
|
|
|
|
|
+return _st(_st(_st(each)._amdNamespace()).__comma("/")).__comma(_st(each)._name());
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"amdNamesOfPackages:",{anArray:anArray},smalltalk.AmdExporter)})},
|
|
|
|
+messageSends: ["collect:", ",", "name", "amdNamespace", "select:", "notNil"]}),
|
|
|
|
+smalltalk.AmdExporter);
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
-selector: "exportMethod:on:",
|
|
|
|
-fn: function (aMethod,aStream){
|
|
|
|
|
|
+selector: "exportPackageEpilogueOf:on:",
|
|
|
|
+fn: function (aPackage,aStream){
|
|
var self=this;
|
|
var self=this;
|
|
return smalltalk.withContext(function($ctx1) {
|
|
return smalltalk.withContext(function($ctx1) {
|
|
var $1,$2;
|
|
var $1,$2;
|
|
$1=aStream;
|
|
$1=aStream;
|
|
-_st($1)._nextPutAll_("smalltalk.addMethod(");
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_("smalltalk.method({");
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_(_st("selector: ".__comma(_st(_st(aMethod)._selector())._asJavascript())).__comma(","));
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_(_st("fn: ".__comma(_st(_st(aMethod)._fn())._compiledSource())).__comma(","));
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_("messageSends: ".__comma(_st(_st(aMethod)._messageSends())._asJavascript()));
|
|
|
|
-_st($1)._nextPutAll_("}),");
|
|
|
|
-_st($1)._lf();
|
|
|
|
-_st($1)._nextPutAll_("smalltalk.".__comma(self._classNameFor_(_st(aMethod)._methodClass())));
|
|
|
|
-_st($1)._nextPutAll_(");");
|
|
|
|
-_st($1)._lf();
|
|
|
|
|
|
+_st($1)._nextPutAll_("});");
|
|
$2=_st($1)._lf();
|
|
$2=_st($1)._lf();
|
|
-return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:on:",{aMethod:aMethod,aStream:aStream},smalltalk.StrippedExporter)})},
|
|
|
|
-messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "selector", "compiledSource", "fn", "messageSends", "classNameFor:", "methodClass"]}),
|
|
|
|
-smalltalk.StrippedExporter);
|
|
|
|
-
|
|
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackageEpilogueOf:on:",{aPackage:aPackage,aStream:aStream},smalltalk.AmdExporter)})},
|
|
|
|
+messageSends: ["nextPutAll:", "lf"]}),
|
|
|
|
+smalltalk.AmdExporter);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportPackagePrologueOf:on:",
|
|
|
|
+fn: function (aPackage,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2,$4,$3,$5;
|
|
|
|
+$1=aStream;
|
|
|
|
+_st($1)._nextPutAll_("define(\x22");
|
|
|
|
+$2=$1;
|
|
|
|
+$4=_st(aPackage)._amdNamespace();
|
|
|
|
+if(($receiver = $4) == nil || $receiver == undefined){
|
|
|
|
+$3="amber";
|
|
|
|
+} else {
|
|
|
|
+$3=$4;
|
|
|
|
+};
|
|
|
|
+_st($2)._nextPutAll_($3);
|
|
|
|
+_st($1)._nextPutAll_("/");
|
|
|
|
+_st($1)._nextPutAll_(_st(aPackage)._name());
|
|
|
|
+_st($1)._nextPutAll_("\x22, ");
|
|
|
|
+_st($1)._nextPutAll_(_st(["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st"].__comma(self._amdNamesOfPackages_(_st(aPackage)._loadDependencies())))._asJavascript());
|
|
|
|
+_st($1)._nextPutAll_(", function(smalltalk,nil,_st){");
|
|
|
|
+$5=_st($1)._lf();
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportPackagePrologueOf:on:",{aPackage:aPackage,aStream:aStream},smalltalk.AmdExporter)})},
|
|
|
|
+messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "asJavascript", ",", "amdNamesOfPackages:", "loadDependencies", "lf"]}),
|
|
|
|
+smalltalk.AmdExporter);
|
|
|
|
|
|
-smalltalk.addClass('AmdExporter', smalltalk.Object, [], 'Importer-Exporter');
|
|
|
|
|
|
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
@@ -740,6 +886,65 @@ messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "asJavascript",
|
|
smalltalk.AmdExporter.klass);
|
|
smalltalk.AmdExporter.klass);
|
|
|
|
|
|
|
|
|
|
|
|
+smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Importer-Exporter');
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportDefinitionOf:on:",
|
|
|
|
+fn: function (aClass,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2,$3,$4;
|
|
|
|
+$1=aStream;
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_("smalltalk.addClass(");
|
|
|
|
+_st($1)._nextPutAll_(_st("'".__comma(self._classNameFor_(aClass))).__comma("', "));
|
|
|
|
+_st($1)._nextPutAll_("smalltalk.".__comma(self._classNameFor_(_st(aClass)._superclass())));
|
|
|
|
+$2=_st($1)._nextPutAll_(", [");
|
|
|
|
+_st(_st(aClass)._instanceVariableNames())._do_separatedBy_((function(each){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st(aStream)._nextPutAll_(_st("'".__comma(each)).__comma("'"));
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st(aStream)._nextPutAll_(", ");
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
|
|
|
+$3=aStream;
|
|
|
|
+_st($3)._nextPutAll_("], '");
|
|
|
|
+_st($3)._nextPutAll_(_st(_st(aClass)._category()).__comma("'"));
|
|
|
|
+$4=_st($3)._nextPutAll_(");");
|
|
|
|
+_st(aStream)._lf();
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportDefinitionOf:on:",{aClass:aClass,aStream:aStream},smalltalk.StrippedExporter)})},
|
|
|
|
+messageSends: ["lf", "nextPutAll:", ",", "classNameFor:", "superclass", "do:separatedBy:", "instanceVariableNames", "category"]}),
|
|
|
|
+smalltalk.StrippedExporter);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "exportMethod:on:",
|
|
|
|
+fn: function (aMethod,aStream){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1,$2;
|
|
|
|
+$1=aStream;
|
|
|
|
+_st($1)._nextPutAll_("smalltalk.addMethod(");
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_("smalltalk.method({");
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_(_st("selector: ".__comma(_st(_st(aMethod)._selector())._asJavascript())).__comma(","));
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_(_st("fn: ".__comma(_st(_st(aMethod)._fn())._compiledSource())).__comma(","));
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_("messageSends: ".__comma(_st(_st(aMethod)._messageSends())._asJavascript()));
|
|
|
|
+_st($1)._nextPutAll_("}),");
|
|
|
|
+_st($1)._lf();
|
|
|
|
+_st($1)._nextPutAll_("smalltalk.".__comma(self._classNameFor_(_st(aMethod)._methodClass())));
|
|
|
|
+_st($1)._nextPutAll_(");");
|
|
|
|
+_st($1)._lf();
|
|
|
|
+$2=_st($1)._lf();
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"exportMethod:on:",{aMethod:aMethod,aStream:aStream},smalltalk.StrippedExporter)})},
|
|
|
|
+messageSends: ["nextPutAll:", "lf", ",", "asJavascript", "selector", "compiledSource", "fn", "messageSends", "classNameFor:", "methodClass"]}),
|
|
|
|
+smalltalk.StrippedExporter);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
|
|
smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Importer-Exporter');
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
@@ -804,6 +1009,103 @@ messageSends: ["stream:", "new"]}),
|
|
smalltalk.ChunkParser.klass);
|
|
smalltalk.ChunkParser.klass);
|
|
|
|
|
|
|
|
|
|
|
|
+smalltalk.addClass('ExportMethodProtocol', smalltalk.Object, ['name', 'theClass'], 'Importer-Exporter');
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "methods",
|
|
|
|
+fn: function (){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+$1=_st(self._theClass())._methodsInProtocol_(self._name());
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"methods",{},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: ["methodsInProtocol:", "name", "theClass"]}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "name",
|
|
|
|
+fn: function (){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+$1=self["@name"];
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"name",{},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: []}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "name:",
|
|
|
|
+fn: function (aString){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+self["@name"]=aString;
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: []}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "sortedMethods",
|
|
|
|
+fn: function (){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+$1=_st(self._methods())._sorted_((function(a,b){
|
|
|
|
+return smalltalk.withContext(function($ctx2) {
|
|
|
|
+return _st(_st(a)._selector()).__lt_eq(_st(b)._selector());
|
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({a:a,b:b},$ctx1)})}));
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"sortedMethods",{},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: ["sorted:", "<=", "selector", "methods"]}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "theClass",
|
|
|
|
+fn: function (){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $1;
|
|
|
|
+$1=self["@theClass"];
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"theClass",{},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: []}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "theClass:",
|
|
|
|
+fn: function (aClass){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+self["@theClass"]=aClass;
|
|
|
|
+return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass},smalltalk.ExportMethodProtocol)})},
|
|
|
|
+messageSends: []}),
|
|
|
|
+smalltalk.ExportMethodProtocol);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "name:theClass:",
|
|
|
|
+fn: function (aString,aClass){
|
|
|
|
+var self=this;
|
|
|
|
+return smalltalk.withContext(function($ctx1) {
|
|
|
|
+var $2,$3,$1;
|
|
|
|
+$2=self._new();
|
|
|
|
+_st($2)._name_(aString);
|
|
|
|
+_st($2)._theClass_(aClass);
|
|
|
|
+$3=_st($2)._yourself();
|
|
|
|
+$1=$3;
|
|
|
|
+return $1;
|
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"name:theClass:",{aString:aString,aClass:aClass},smalltalk.ExportMethodProtocol.klass)})},
|
|
|
|
+messageSends: ["name:", "new", "theClass:", "yourself"]}),
|
|
|
|
+smalltalk.ExportMethodProtocol.klass);
|
|
|
|
+
|
|
|
|
+
|
|
smalltalk.addClass('ExportRecipeInterpreter', smalltalk.Object, [], 'Importer-Exporter');
|
|
smalltalk.addClass('ExportRecipeInterpreter', smalltalk.Object, [], 'Importer-Exporter');
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
smalltalk.method({
|
|
smalltalk.method({
|