浏览代码

safer generating of dep list using asJavascript

Herbert Vojčík 10 年之前
父节点
当前提交
49f184cce5
共有 3 个文件被更改,包括 19 次插入12 次删除
  1. 7 4
      js/Importer-Exporter.deploy.js
  2. 8 5
      js/Importer-Exporter.js
  3. 4 3
      st/Importer-Exporter.st

+ 7 - 4
js/Importer-Exporter.deploy.js

@@ -57,12 +57,15 @@ $3=$4;
 _st($2)._nextPutAll_($3);
 _st($1)._nextPutAll_("/");
 _st($1)._nextPutAll_(_st(aPackage)._name());
-_st($1)._nextPutAll_("\x22, [\x22");
-_st($1)._nextPutAll_(_st(["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st"].__comma(self._amdNamesOfPackages_(_st(aPackage)._loadDependencies())))._join_("\x22,\x22"));
-_st($1)._nextPutAll_("\x22], function(smalltalk,nil,_st){");
+_st($1)._nextPutAll_("\x22, [");
+_st($1)._nextPutAll_(_st(_st(["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st"].__comma(self._amdNamesOfPackages_(_st(aPackage)._loadDependencies())))._collect_((function(each){
+return smalltalk.withContext(function($ctx2) {
+return _st(each)._asJavascript();
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._join_(","));
+_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.klass)})},
-messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "join:", ",", "amdNamesOfPackages:", "loadDependencies", "lf"]}),
+messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "join:", "collect:", "asJavascript", ",", "amdNamesOfPackages:", "loadDependencies", "lf"]}),
 smalltalk.AmdExporter.klass);
 
 smalltalk.addMethod(

+ 8 - 5
js/Importer-Exporter.js

@@ -68,14 +68,17 @@ $3=$4;
 _st($2)._nextPutAll_($3);
 _st($1)._nextPutAll_("/");
 _st($1)._nextPutAll_(_st(aPackage)._name());
-_st($1)._nextPutAll_("\x22, [\x22");
-_st($1)._nextPutAll_(_st(["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st"].__comma(self._amdNamesOfPackages_(_st(aPackage)._loadDependencies())))._join_("\x22,\x22"));
-_st($1)._nextPutAll_("\x22], function(smalltalk,nil,_st){");
+_st($1)._nextPutAll_("\x22, [");
+_st($1)._nextPutAll_(_st(_st(["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st"].__comma(self._amdNamesOfPackages_(_st(aPackage)._loadDependencies())))._collect_((function(each){
+return smalltalk.withContext(function($ctx2) {
+return _st(each)._asJavascript();
+}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._join_(","));
+_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.klass)})},
 args: ["aPackage", "aStream"],
-source: "exportPackagePrologueOf: aPackage on: aStream\x0a\x09aStream\x0a\x09\x09nextPutAll: 'define(\x22';\x0a\x09\x09nextPutAll: (aPackage amdNamespace ifNil: [ 'amber' ]); \x22ifNil: only for LegacyPH, it should not happen with AmdPH\x22\x0a\x09\x09nextPutAll: '/';\x0a\x09\x09nextPutAll: aPackage name;\x0a\x09\x09nextPutAll: '\x22, [\x22';\x0a\x09\x09nextPutAll: ((#('amber_vm/smalltalk' 'amber_vm/nil' 'amber_vm/_st'), (self amdNamesOfPackages: aPackage loadDependencies)) join: '\x22,\x22');\x0a\x09\x09nextPutAll: '\x22], function(smalltalk,nil,_st){';\x0a\x09\x09lf",
-messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "join:", ",", "amdNamesOfPackages:", "loadDependencies", "lf"],
+source: "exportPackagePrologueOf: aPackage on: aStream\x0a\x09aStream\x0a\x09\x09nextPutAll: 'define(\x22';\x0a\x09\x09nextPutAll: (aPackage amdNamespace ifNil: [ 'amber' ]); \x22ifNil: only for LegacyPH, it should not happen with AmdPH\x22\x0a\x09\x09nextPutAll: '/';\x0a\x09\x09nextPutAll: aPackage name;\x0a\x09\x09nextPutAll: '\x22, [';\x0a\x09\x09nextPutAll: (((#('amber_vm/smalltalk' 'amber_vm/nil' 'amber_vm/_st'), (self amdNamesOfPackages: aPackage loadDependencies))\x0a\x09\x09\x09collect: [ :each | each asJavascript ]) join: ',');\x0a\x09\x09nextPutAll: '], function(smalltalk,nil,_st){';\x0a\x09\x09lf",
+messageSends: ["nextPutAll:", "ifNil:", "amdNamespace", "name", "join:", "collect:", "asJavascript", ",", "amdNamesOfPackages:", "loadDependencies", "lf"],
 referencedClasses: []
 }),
 smalltalk.AmdExporter.klass);

+ 4 - 3
st/Importer-Exporter.st

@@ -17,9 +17,10 @@ exportPackagePrologueOf: aPackage on: aStream
 		nextPutAll: (aPackage amdNamespace ifNil: [ 'amber' ]); "ifNil: only for LegacyPH, it should not happen with AmdPH"
 		nextPutAll: '/';
 		nextPutAll: aPackage name;
-		nextPutAll: '", ["';
-		nextPutAll: ((#('amber_vm/smalltalk' 'amber_vm/nil' 'amber_vm/_st'), (self amdNamesOfPackages: aPackage loadDependencies)) join: '","');
-		nextPutAll: '"], function(smalltalk,nil,_st){';
+		nextPutAll: '", [';
+		nextPutAll: (((#('amber_vm/smalltalk' 'amber_vm/nil' 'amber_vm/_st'), (self amdNamesOfPackages: aPackage loadDependencies))
+			collect: [ :each | each asJavascript ]) join: ',');
+		nextPutAll: '], function(smalltalk,nil,_st){';
 		lf
 !