resin 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +2 -0
- data/amber/bin/nodecompile.js +3 -3
- data/amber/css/amber.css +47 -23
- data/amber/images/off.amber.png +0 -0
- data/amber/images/offHover.amber.png +0 -0
- data/amber/images/sprite.amber.png +0 -0
- data/amber/images/tinylogo.amber.png +0 -0
- data/amber/js/Benchfib.deploy.js +34 -34
- data/amber/js/Benchfib.js +49 -49
- data/amber/js/Canvas.deploy.js +937 -937
- data/amber/js/Canvas.js +1622 -1622
- data/amber/js/Compiler-Tests.deploy.js +97 -0
- data/amber/js/Compiler-Tests.js +137 -0
- data/amber/js/Compiler.deploy.js +1030 -924
- data/amber/js/Compiler.js +1613 -1467
- data/amber/js/Documentation.deploy.js +417 -417
- data/amber/js/Documentation.js +728 -728
- data/amber/js/Examples.deploy.js +24 -13
- data/amber/js/Examples.js +36 -19
- data/amber/js/IDE.deploy.js +1583 -1527
- data/amber/js/IDE.js +2586 -2510
- data/amber/js/Kernel-Announcements.deploy.js +19 -19
- data/amber/js/Kernel-Announcements.js +28 -28
- data/amber/js/Kernel-Classes.deploy.js +332 -229
- data/amber/js/Kernel-Classes.js +532 -384
- data/amber/js/Kernel-Collections.deploy.js +1516 -1712
- data/amber/js/Kernel-Collections.js +2436 -2712
- data/amber/js/Kernel-Exceptions.deploy.js +85 -62
- data/amber/js/Kernel-Exceptions.js +131 -98
- data/amber/js/Kernel-Methods.deploy.js +326 -378
- data/amber/js/Kernel-Methods.js +473 -525
- data/amber/js/Kernel-Objects.deploy.js +1777 -2428
- data/amber/js/Kernel-Objects.js +2599 -3426
- data/amber/js/Kernel-Tests.deploy.js +871 -772
- data/amber/js/Kernel-Tests.js +1207 -1083
- data/amber/js/Kernel-Transcript.deploy.js +57 -57
- data/amber/js/Kernel-Transcript.js +94 -94
- data/amber/js/SUnit.deploy.js +116 -116
- data/amber/js/SUnit.js +211 -211
- data/amber/js/amber.js +10 -11
- data/amber/js/boot.js +132 -156
- data/amber/js/init.js +2 -2
- data/amber/js/parser.js +2095 -3014
- data/amber/js/parser.pegjs +1 -1
- data/amber/st/Benchfib.st +22 -22
- data/amber/st/Canvas.st +471 -471
- data/amber/st/Compiler-Tests.st +471 -0
- data/amber/st/Compiler.st +858 -794
- data/amber/st/Examples.st +22 -5
- data/amber/st/IDE.st +1326 -1291
- data/amber/st/Kernel-Announcements.st +2 -2
- data/amber/st/Kernel-Classes.st +148 -90
- data/amber/st/Kernel-Collections.st +950 -1061
- data/amber/st/Kernel-Exceptions.st +33 -25
- data/amber/st/Kernel-Methods.st +151 -151
- data/amber/st/Kernel-Objects.st +891 -1036
- data/amber/st/Kernel-Tests.st +622 -544
- data/amber/st/Kernel-Transcript.st +38 -38
- data/amber/st/SUnit.st +53 -53
- metadata +27 -20
@@ -0,0 +1,97 @@
|
|
1
|
+
smalltalk.addPackage('Compiler-Tests', {});
|
2
|
+
smalltalk.addClass('ImporterTest', smalltalk.TestCase, [], 'Compiler-Tests');
|
3
|
+
smalltalk.addMethod(
|
4
|
+
"_bigChunkString",
|
5
|
+
smalltalk.method({
|
6
|
+
selector: "bigChunkString",
|
7
|
+
fn: function (){
|
8
|
+
var self=this;
|
9
|
+
return "Smalltalk current createPackage: 'Cypress-Definitions' properties: #{}!\x0aObject subclass: #CypressSnapshot\x0a\x09instanceVariableNames: 'definitions'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressSnapshot methodsFor: 'not yet classified'!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09definitions := aDefinitions\x0a!\x0a\x0adefinitions\x0a\x0a\x09^definitions\x0a! !\x0a\x0a!CypressSnapshot class methodsFor: 'not yet classified'!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09^(self new) definitions: aDefinitions\x0a! !\x0a\x0aObject subclass: #CypressPackage\x0a\x09instanceVariableNames: 'name'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressPackage methodsFor: 'not yet classified'!\x0a\x0a= other\x0a\x09^ other species = self species and: [other name sameAs: name]\x0a!\x0a\x0aname\x0a\x09^ name\x0a!\x0a\x0aname: aString\x0a\x09name := aString\x0a!\x0a\x0asnapshot\x0a\x09| package definitions name |\x0a\x09package := Package named: self name.\x0a\x09definitions := OrderedCollection new.\x0a\x09package sortedClasses do: [:cls |\x0a \x09definitions add: cls asCypressClassDefinition.\x0a cls methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: '^\x5c*') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]].\x0a cls class methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: '^\x5c*') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09name := package name.\x0a\x09Smalltalk current classes, (Smalltalk current classes collect: [:each | each class]) do: [:each |\x0a\x09\x09each methodDictionary values do: [:method |\x0a\x09\x09\x09method category = ('*', name) ifTrue: [\x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09^ CypressSnapshot definitions: definitions\x0a!\x0a\x0aprintString\x0a\x09^super printString, '(', name, ')'\x0a! !\x0a\x0aObject subclass: #CypressDefinition\x0a\x09instanceVariableNames: ''\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressDefinition methodsFor: 'not yet classified'!\x0a\x0a= aDefinition\x0a\x09^(aDefinition isKindOf: CypressDefinition) and: [self isRevisionOf: aDefinition]\x0a!\x0a\x0aisRevisionOf: aDefinition\x0a\x09^ (aDefinition isKindOf: CypressDefinition) and: [aDefinition description = self description]\x0a!\x0a\x0adescription\x0a\x09self subclassResponsibility\x0a!\x0a\x0aisSameRevisionAs: aDefinition\x0a\x09^ self = aDefinition\x0a! !\x0a\x0aObject subclass: #CypressPatch\x0a\x09instanceVariableNames: 'operations'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressPatch methodsFor: 'not yet classified'!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09| base target |\x09\x0a\x09operations := OrderedCollection new.\x0a\x09base := CypressDefinitionIndex definitions: baseSnapshot definitions.\x0a\x09target := CypressDefinitionIndex definitions: targetSnapshot definitions.\x0a\x09\x0a\x09target definitions do:\x0a\x09\x09[:t |\x0a\x09\x09base\x0a\x09\x09\x09definitionLike: t\x0a\x09\x09\x09ifPresent: [:b | (b isSameRevisionAs: t) ifFalse: [operations add: (CypressModification of: b to: t)]]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressAddition of: t)]].\x0a\x09\x09\x0a\x09base definitions do:\x0a\x09\x09[:b |\x0a\x09\x09target\x0a\x09\x09\x09definitionLike: b\x0a\x09\x09\x09ifPresent: [:t | ]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressRemoval of: b)]]\x0a!\x0a\x0aoperations\x0a\x0a\x09^operations\x0a! !\x0a\x0a!CypressPatch class methodsFor: 'not yet classified'!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09^ (self new)\x0a\x09\x09fromBase: baseSnapshot\x0a\x09\x09toTarget: targetSnapshot\x0a! !\x0a\x0aObject subclass: #CypressDefinitionIndex\x0a\x09instanceVariableNames: 'definitionMap'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressDefinitionIndex methodsFor: 'not yet classified'!\x0a\x0aadd: aDefinition\x0a\x09^ self definitionMap at: aDefinition description put: aDefinition\x0a!\x0a\x0aaddAll: aCollection\x0a\x09aCollection do: [:ea | self add: ea]\x0a!\x0a\x0adefinitionLike: aDefinition ifPresent: foundBlock ifAbsent: errorBlock\x0a\x09| definition |\x0a\x09definition := self definitionMap at: aDefinition description ifAbsent: [].\x0a\x09^ definition\x0a\x09\x09ifNil: errorBlock\x0a\x09\x09ifNotNil: [foundBlock value: definition]\x0a!\x0a\x0adefinitions\x0a\x09^self definitionMap values\x0a!\x0a\x0adefinitionMap\x0a\x09definitionMap ifNil: [ definitionMap := Dictionary new ].\x0a\x09^ definitionMap\x0a!\x0a\x0aremove: aDefinition\x0a\x09self definitionMap removeKey: aDefinition description ifAbsent: []\x0a! !\x0a\x0a!CypressDefinitionIndex class methodsFor: 'not yet classified'!\x0a\x0adefinitions: aCollection\x0a\x09^ self new addAll: aCollection\x0a! !\x0a\x0aObject subclass: #CypressPatchOperation\x0a\x09instanceVariableNames: ''\x0a\x09package: 'Cypress-Definitions'!\x0a\x0aCypressDefinition subclass: #CypressClassDefinition\x0a\x09instanceVariableNames: 'name superclassName category comment instVarNames classInstVarNames'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressClassDefinition methodsFor: 'not yet classified'!\x0a\x0aname: aClassName superclassName: aSuperclassName category: aCategory instVarNames: anInstanceVariableNames classInstVarNames: aClassInstanceVariableNames comment: aComment\x0a\x0a\x09name := aClassName.\x0a\x09superclassName := aSuperclassName.\x0a\x09category := aCategory.\x0a\x09instVarNames := anInstanceVariableNames.\x0a\x09classInstVarNames := aClassInstanceVariableNames.\x0a\x09comment := aComment\x0a!\x0a\x0a= aDefinition\x0a\x09^(super = aDefinition)\x0a\x09\x09and: [superclassName = aDefinition superclassName\x0a\x09\x09and: [category = aDefinition category\x0a\x09\x09and: [instVarNames = aDefinition instVarNames\x0a\x09\x09and: [classInstVarNames = aDefinition classInstVarNames\x0a\x09\x09and: [comment = aDefinition comment]]]]]\x0a!\x0a\x0asuperclassName\x0a\x0a\x09^superclassName\x0a!\x0a\x0aname\x0a\x0a\x09^name\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0acomment\x0a\x0a\x09^comment\x0a!\x0a\x0adescription\x0a\x0a\x09^ Array with: name\x0a!\x0a\x0ainstVarNames\x0a\x0a\x09^instVarNames\x0a!\x0a\x0aclassInstVarNames\x0a\x0a\x09^classInstVarNames\x0a! !\x0a\x0a!CypressClassDefinition class methodsFor: 'not yet classified'!\x0a\x0aname: aClassName \x0asuperclassName: aSuperclassName\x0acategory: aCategory\x0ainstVarNames: anInstanceVariableNames\x0aclassInstVarNames: aClassInstanceVariableNames\x0acomment: aComment\x0a\x0a\x09^(self new) \x0a\x09\x09name: aClassName \x0a\x09\x09superclassName: aSuperclassName\x0a\x09\x09category: aCategory\x0a\x09\x09instVarNames: anInstanceVariableNames\x0a\x09\x09classInstVarNames: aClassInstanceVariableNames\x0a\x09\x09comment: aComment\x0a! !\x0a\x0aCypressDefinition subclass: #CypressMethodDefinition\x0a\x09instanceVariableNames: 'classIsMeta source category selector className'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressMethodDefinition methodsFor: 'not yet classified'!\x0a\x0aclassName: aName classIsMeta: isMetaclass selector: aSelector category: aCategory source: aSource\x0a\x0a\x09className := aName.\x0a\x09classIsMeta := isMetaclass.\x0a\x09selector := aSelector.\x0a\x09category := aCategory.\x0a\x09source := aSource.\x0a!\x0a\x0a= aDefinition\x0a ^ super = aDefinition\x0a and: [ aDefinition source = self source\x0a and: [ aDefinition category = self category ] ]\x0a!\x0a\x0asource\x0a\x0a\x09^source\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0adescription\x0a\x09^ Array\x09\x0a\x09\x09with: className\x0a\x09\x09with: selector\x0a\x09\x09with: classIsMeta\x0a! !\x0a\x0a!CypressMethodDefinition class methodsFor: 'not yet classified'!\x0a\x0aclassName: aName\x0aclassIsMeta: isMetaclass\x0aselector: aSelector\x0acategory: aCategory\x0asource: aSource\x0a\x0a\x09^(self new)\x0a\x09\x09className: aName\x0a\x09\x09classIsMeta: isMetaclass\x0a\x09\x09selector: aSelector\x0a\x09\x09category: aCategory\x0a\x09\x09source: aSource\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressAddition\x0a\x09instanceVariableNames: 'definition'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressAddition methodsFor: 'not yet classified'!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressAddition class methodsFor: 'not yet classified'!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressModification\x0a\x09instanceVariableNames: 'obsoletion modification'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressModification methodsFor: 'not yet classified'!\x0a\x0abase: base target: target\x0a\x0a\x09obsoletion := base.\x0a\x09modification := target.\x0a! !\x0a\x0a!CypressModification class methodsFor: 'not yet classified'!\x0a\x0aof: base to: target\x0a\x09^ self new base: base target: target\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressRemoval\x0a\x09instanceVariableNames: 'definition'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressRemoval methodsFor: 'not yet classified'!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressRemoval class methodsFor: 'not yet classified'!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0a!Object methodsFor: '*Cypress-Definitions'!\x0a\x0aspecies\x0a\x0a\x09^self class\x0a! !\x0a\x0a!Class methodsFor: '*Cypress-Definitions'!\x0a\x0aasCypressClassDefinition\x0a\x09^CypressClassDefinition\x0a\x09\x09name: self name\x0a\x09\x09superclassName: self superclass name\x0a\x09\x09category: self category \x0a\x09\x09instVarNames: self instanceVariableNames\x0a\x09\x09classInstVarNames: self class instanceVariableNames\x0a\x09\x09comment: self comment\x0a! !\x0a\x0a!CompiledMethod methodsFor: '*Cypress-Definitions'!\x0a\x0aasCypressMethodDefinition\x0a\x0a\x09^CypressMethodDefinition \x0a \x09className: self methodClass name\x0a\x09\x09classIsMeta: self methodClass isMetaclass\x0a\x09\x09selector: self selector\x0a\x09\x09category: self category\x0a\x09\x09source: self source\x0a! !\x0a\x0a!CharacterArray methodsFor: '*Cypress-Definitions'!\x0a\x0asameAs: aString\x0a\x0a\x09^self asUppercase = aString asUppercase\x0a! !\x0a\x0a";
|
10
|
+
return self;}
|
11
|
+
}),
|
12
|
+
smalltalk.ImporterTest);
|
13
|
+
|
14
|
+
smalltalk.addMethod(
|
15
|
+
"_chunkString",
|
16
|
+
smalltalk.method({
|
17
|
+
selector: "chunkString",
|
18
|
+
fn: function (){
|
19
|
+
var self=this;
|
20
|
+
return "!Object methodsFor: 'importer test method'!\x0a\x0aimporterTestMethod\x0a\x0a\x09^'success'\x0a! !\x0a";
|
21
|
+
return self;}
|
22
|
+
}),
|
23
|
+
smalltalk.ImporterTest);
|
24
|
+
|
25
|
+
smalltalk.addMethod(
|
26
|
+
"_cleanUp",
|
27
|
+
smalltalk.method({
|
28
|
+
selector: "cleanUp",
|
29
|
+
fn: function (){
|
30
|
+
var self=this;
|
31
|
+
((($receiver = smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_methodDictionary", []), "_includesKey_", [smalltalk.symbolFor("importerTestMethod")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send((smalltalk.Object || Object), "_removeCompiledMethod_", [smalltalk.send((smalltalk.Object || Object), "_methodAt_", [smalltalk.symbolFor("importerTestMethod")])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send((smalltalk.Object || Object), "_removeCompiledMethod_", [smalltalk.send((smalltalk.Object || Object), "_methodAt_", [smalltalk.symbolFor("importerTestMethod")])]);})]));
|
32
|
+
return self;}
|
33
|
+
}),
|
34
|
+
smalltalk.ImporterTest);
|
35
|
+
|
36
|
+
smalltalk.addMethod(
|
37
|
+
"_setUp",
|
38
|
+
smalltalk.method({
|
39
|
+
selector: "setUp",
|
40
|
+
fn: function (){
|
41
|
+
var self=this;
|
42
|
+
smalltalk.send(self, "_setUp", [], smalltalk.ImporterTest.superclass || nil);
|
43
|
+
smalltalk.send(self, "_cleanUp", []);
|
44
|
+
return self;}
|
45
|
+
}),
|
46
|
+
smalltalk.ImporterTest);
|
47
|
+
|
48
|
+
smalltalk.addMethod(
|
49
|
+
"_tearDown",
|
50
|
+
smalltalk.method({
|
51
|
+
selector: "tearDown",
|
52
|
+
fn: function (){
|
53
|
+
var self=this;
|
54
|
+
smalltalk.send(self, "_tearDown", [], smalltalk.ImporterTest.superclass || nil);
|
55
|
+
smalltalk.send(self, "_cleanUp", []);
|
56
|
+
return self;}
|
57
|
+
}),
|
58
|
+
smalltalk.ImporterTest);
|
59
|
+
|
60
|
+
smalltalk.addMethod(
|
61
|
+
"_testBigChunkString",
|
62
|
+
smalltalk.method({
|
63
|
+
selector: "testBigChunkString",
|
64
|
+
fn: function (){
|
65
|
+
var self=this;
|
66
|
+
smalltalk.send(smalltalk.send((smalltalk.Importer || Importer), "_new", []), "_import_", [smalltalk.send(smalltalk.send(self, "_bigChunkString", []), "_readStream", [])]);
|
67
|
+
smalltalk.send(smalltalk.send((smalltalk.CypressPackage || CypressPackage), "_new", []), "_species", []);
|
68
|
+
return self;}
|
69
|
+
}),
|
70
|
+
smalltalk.ImporterTest);
|
71
|
+
|
72
|
+
smalltalk.addMethod(
|
73
|
+
"_testChunkString",
|
74
|
+
smalltalk.method({
|
75
|
+
selector: "testChunkString",
|
76
|
+
fn: function (){
|
77
|
+
var self=this;
|
78
|
+
smalltalk.send(smalltalk.send((smalltalk.Importer || Importer), "_new", []), "_import_", [smalltalk.send(smalltalk.send(self, "_chunkString", []), "_readStream", [])]);
|
79
|
+
smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_methodDictionary", []), "_includesKey_", ["importerTestMethod"])]);
|
80
|
+
smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_new", []), "_importerTestMethod", []), "__eq", ["success"])]);
|
81
|
+
return self;}
|
82
|
+
}),
|
83
|
+
smalltalk.ImporterTest);
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
smalltalk.addMethod(
|
88
|
+
"_importerLoadMethod",
|
89
|
+
smalltalk.method({
|
90
|
+
selector: "importerLoadMethod",
|
91
|
+
fn: function (){
|
92
|
+
var self=this;
|
93
|
+
return "success";
|
94
|
+
return self;}
|
95
|
+
}),
|
96
|
+
smalltalk.Object);
|
97
|
+
|
@@ -0,0 +1,137 @@
|
|
1
|
+
smalltalk.addPackage('Compiler-Tests', {});
|
2
|
+
smalltalk.addClass('ImporterTest', smalltalk.TestCase, [], 'Compiler-Tests');
|
3
|
+
smalltalk.addMethod(
|
4
|
+
"_bigChunkString",
|
5
|
+
smalltalk.method({
|
6
|
+
selector: "bigChunkString",
|
7
|
+
category: 'private',
|
8
|
+
fn: function (){
|
9
|
+
var self=this;
|
10
|
+
return "Smalltalk current createPackage: 'Cypress-Definitions' properties: #{}!\x0aObject subclass: #CypressSnapshot\x0a\x09instanceVariableNames: 'definitions'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressSnapshot methodsFor: 'not yet classified'!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09definitions := aDefinitions\x0a!\x0a\x0adefinitions\x0a\x0a\x09^definitions\x0a! !\x0a\x0a!CypressSnapshot class methodsFor: 'not yet classified'!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09^(self new) definitions: aDefinitions\x0a! !\x0a\x0aObject subclass: #CypressPackage\x0a\x09instanceVariableNames: 'name'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressPackage methodsFor: 'not yet classified'!\x0a\x0a= other\x0a\x09^ other species = self species and: [other name sameAs: name]\x0a!\x0a\x0aname\x0a\x09^ name\x0a!\x0a\x0aname: aString\x0a\x09name := aString\x0a!\x0a\x0asnapshot\x0a\x09| package definitions name |\x0a\x09package := Package named: self name.\x0a\x09definitions := OrderedCollection new.\x0a\x09package sortedClasses do: [:cls |\x0a \x09definitions add: cls asCypressClassDefinition.\x0a cls methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: '^\x5c*') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]].\x0a cls class methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: '^\x5c*') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09name := package name.\x0a\x09Smalltalk current classes, (Smalltalk current classes collect: [:each | each class]) do: [:each |\x0a\x09\x09each methodDictionary values do: [:method |\x0a\x09\x09\x09method category = ('*', name) ifTrue: [\x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09^ CypressSnapshot definitions: definitions\x0a!\x0a\x0aprintString\x0a\x09^super printString, '(', name, ')'\x0a! !\x0a\x0aObject subclass: #CypressDefinition\x0a\x09instanceVariableNames: ''\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressDefinition methodsFor: 'not yet classified'!\x0a\x0a= aDefinition\x0a\x09^(aDefinition isKindOf: CypressDefinition) and: [self isRevisionOf: aDefinition]\x0a!\x0a\x0aisRevisionOf: aDefinition\x0a\x09^ (aDefinition isKindOf: CypressDefinition) and: [aDefinition description = self description]\x0a!\x0a\x0adescription\x0a\x09self subclassResponsibility\x0a!\x0a\x0aisSameRevisionAs: aDefinition\x0a\x09^ self = aDefinition\x0a! !\x0a\x0aObject subclass: #CypressPatch\x0a\x09instanceVariableNames: 'operations'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressPatch methodsFor: 'not yet classified'!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09| base target |\x09\x0a\x09operations := OrderedCollection new.\x0a\x09base := CypressDefinitionIndex definitions: baseSnapshot definitions.\x0a\x09target := CypressDefinitionIndex definitions: targetSnapshot definitions.\x0a\x09\x0a\x09target definitions do:\x0a\x09\x09[:t |\x0a\x09\x09base\x0a\x09\x09\x09definitionLike: t\x0a\x09\x09\x09ifPresent: [:b | (b isSameRevisionAs: t) ifFalse: [operations add: (CypressModification of: b to: t)]]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressAddition of: t)]].\x0a\x09\x09\x0a\x09base definitions do:\x0a\x09\x09[:b |\x0a\x09\x09target\x0a\x09\x09\x09definitionLike: b\x0a\x09\x09\x09ifPresent: [:t | ]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressRemoval of: b)]]\x0a!\x0a\x0aoperations\x0a\x0a\x09^operations\x0a! !\x0a\x0a!CypressPatch class methodsFor: 'not yet classified'!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09^ (self new)\x0a\x09\x09fromBase: baseSnapshot\x0a\x09\x09toTarget: targetSnapshot\x0a! !\x0a\x0aObject subclass: #CypressDefinitionIndex\x0a\x09instanceVariableNames: 'definitionMap'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressDefinitionIndex methodsFor: 'not yet classified'!\x0a\x0aadd: aDefinition\x0a\x09^ self definitionMap at: aDefinition description put: aDefinition\x0a!\x0a\x0aaddAll: aCollection\x0a\x09aCollection do: [:ea | self add: ea]\x0a!\x0a\x0adefinitionLike: aDefinition ifPresent: foundBlock ifAbsent: errorBlock\x0a\x09| definition |\x0a\x09definition := self definitionMap at: aDefinition description ifAbsent: [].\x0a\x09^ definition\x0a\x09\x09ifNil: errorBlock\x0a\x09\x09ifNotNil: [foundBlock value: definition]\x0a!\x0a\x0adefinitions\x0a\x09^self definitionMap values\x0a!\x0a\x0adefinitionMap\x0a\x09definitionMap ifNil: [ definitionMap := Dictionary new ].\x0a\x09^ definitionMap\x0a!\x0a\x0aremove: aDefinition\x0a\x09self definitionMap removeKey: aDefinition description ifAbsent: []\x0a! !\x0a\x0a!CypressDefinitionIndex class methodsFor: 'not yet classified'!\x0a\x0adefinitions: aCollection\x0a\x09^ self new addAll: aCollection\x0a! !\x0a\x0aObject subclass: #CypressPatchOperation\x0a\x09instanceVariableNames: ''\x0a\x09package: 'Cypress-Definitions'!\x0a\x0aCypressDefinition subclass: #CypressClassDefinition\x0a\x09instanceVariableNames: 'name superclassName category comment instVarNames classInstVarNames'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressClassDefinition methodsFor: 'not yet classified'!\x0a\x0aname: aClassName superclassName: aSuperclassName category: aCategory instVarNames: anInstanceVariableNames classInstVarNames: aClassInstanceVariableNames comment: aComment\x0a\x0a\x09name := aClassName.\x0a\x09superclassName := aSuperclassName.\x0a\x09category := aCategory.\x0a\x09instVarNames := anInstanceVariableNames.\x0a\x09classInstVarNames := aClassInstanceVariableNames.\x0a\x09comment := aComment\x0a!\x0a\x0a= aDefinition\x0a\x09^(super = aDefinition)\x0a\x09\x09and: [superclassName = aDefinition superclassName\x0a\x09\x09and: [category = aDefinition category\x0a\x09\x09and: [instVarNames = aDefinition instVarNames\x0a\x09\x09and: [classInstVarNames = aDefinition classInstVarNames\x0a\x09\x09and: [comment = aDefinition comment]]]]]\x0a!\x0a\x0asuperclassName\x0a\x0a\x09^superclassName\x0a!\x0a\x0aname\x0a\x0a\x09^name\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0acomment\x0a\x0a\x09^comment\x0a!\x0a\x0adescription\x0a\x0a\x09^ Array with: name\x0a!\x0a\x0ainstVarNames\x0a\x0a\x09^instVarNames\x0a!\x0a\x0aclassInstVarNames\x0a\x0a\x09^classInstVarNames\x0a! !\x0a\x0a!CypressClassDefinition class methodsFor: 'not yet classified'!\x0a\x0aname: aClassName \x0asuperclassName: aSuperclassName\x0acategory: aCategory\x0ainstVarNames: anInstanceVariableNames\x0aclassInstVarNames: aClassInstanceVariableNames\x0acomment: aComment\x0a\x0a\x09^(self new) \x0a\x09\x09name: aClassName \x0a\x09\x09superclassName: aSuperclassName\x0a\x09\x09category: aCategory\x0a\x09\x09instVarNames: anInstanceVariableNames\x0a\x09\x09classInstVarNames: aClassInstanceVariableNames\x0a\x09\x09comment: aComment\x0a! !\x0a\x0aCypressDefinition subclass: #CypressMethodDefinition\x0a\x09instanceVariableNames: 'classIsMeta source category selector className'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressMethodDefinition methodsFor: 'not yet classified'!\x0a\x0aclassName: aName classIsMeta: isMetaclass selector: aSelector category: aCategory source: aSource\x0a\x0a\x09className := aName.\x0a\x09classIsMeta := isMetaclass.\x0a\x09selector := aSelector.\x0a\x09category := aCategory.\x0a\x09source := aSource.\x0a!\x0a\x0a= aDefinition\x0a ^ super = aDefinition\x0a and: [ aDefinition source = self source\x0a and: [ aDefinition category = self category ] ]\x0a!\x0a\x0asource\x0a\x0a\x09^source\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0adescription\x0a\x09^ Array\x09\x0a\x09\x09with: className\x0a\x09\x09with: selector\x0a\x09\x09with: classIsMeta\x0a! !\x0a\x0a!CypressMethodDefinition class methodsFor: 'not yet classified'!\x0a\x0aclassName: aName\x0aclassIsMeta: isMetaclass\x0aselector: aSelector\x0acategory: aCategory\x0asource: aSource\x0a\x0a\x09^(self new)\x0a\x09\x09className: aName\x0a\x09\x09classIsMeta: isMetaclass\x0a\x09\x09selector: aSelector\x0a\x09\x09category: aCategory\x0a\x09\x09source: aSource\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressAddition\x0a\x09instanceVariableNames: 'definition'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressAddition methodsFor: 'not yet classified'!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressAddition class methodsFor: 'not yet classified'!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressModification\x0a\x09instanceVariableNames: 'obsoletion modification'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressModification methodsFor: 'not yet classified'!\x0a\x0abase: base target: target\x0a\x0a\x09obsoletion := base.\x0a\x09modification := target.\x0a! !\x0a\x0a!CypressModification class methodsFor: 'not yet classified'!\x0a\x0aof: base to: target\x0a\x09^ self new base: base target: target\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressRemoval\x0a\x09instanceVariableNames: 'definition'\x0a\x09package: 'Cypress-Definitions'!\x0a\x0a!CypressRemoval methodsFor: 'not yet classified'!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressRemoval class methodsFor: 'not yet classified'!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0a!Object methodsFor: '*Cypress-Definitions'!\x0a\x0aspecies\x0a\x0a\x09^self class\x0a! !\x0a\x0a!Class methodsFor: '*Cypress-Definitions'!\x0a\x0aasCypressClassDefinition\x0a\x09^CypressClassDefinition\x0a\x09\x09name: self name\x0a\x09\x09superclassName: self superclass name\x0a\x09\x09category: self category \x0a\x09\x09instVarNames: self instanceVariableNames\x0a\x09\x09classInstVarNames: self class instanceVariableNames\x0a\x09\x09comment: self comment\x0a! !\x0a\x0a!CompiledMethod methodsFor: '*Cypress-Definitions'!\x0a\x0aasCypressMethodDefinition\x0a\x0a\x09^CypressMethodDefinition \x0a \x09className: self methodClass name\x0a\x09\x09classIsMeta: self methodClass isMetaclass\x0a\x09\x09selector: self selector\x0a\x09\x09category: self category\x0a\x09\x09source: self source\x0a! !\x0a\x0a!CharacterArray methodsFor: '*Cypress-Definitions'!\x0a\x0asameAs: aString\x0a\x0a\x09^self asUppercase = aString asUppercase\x0a! !\x0a\x0a";
|
11
|
+
return self;},
|
12
|
+
args: [],
|
13
|
+
source: "bigChunkString\x0a\x0a\x09^'Smalltalk current createPackage: ''Cypress-Definitions'' properties: #{}!\x0aObject subclass: #CypressSnapshot\x0a\x09instanceVariableNames: ''definitions''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressSnapshot methodsFor: ''not yet classified''!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09definitions := aDefinitions\x0a!\x0a\x0adefinitions\x0a\x0a\x09^definitions\x0a! !\x0a\x0a!CypressSnapshot class methodsFor: ''not yet classified''!\x0a\x0adefinitions: aDefinitions\x0a\x0a\x09^(self new) definitions: aDefinitions\x0a! !\x0a\x0aObject subclass: #CypressPackage\x0a\x09instanceVariableNames: ''name''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressPackage methodsFor: ''not yet classified''!\x0a\x0a= other\x0a\x09^ other species = self species and: [other name sameAs: name]\x0a!\x0a\x0aname\x0a\x09^ name\x0a!\x0a\x0aname: aString\x0a\x09name := aString\x0a!\x0a\x0asnapshot\x0a\x09| package definitions name |\x0a\x09package := Package named: self name.\x0a\x09definitions := OrderedCollection new.\x0a\x09package sortedClasses do: [:cls |\x0a \x09definitions add: cls asCypressClassDefinition.\x0a cls methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: ''^\x5c*'') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]].\x0a cls class methodDictionary values do: [:method |\x0a\x09\x09\x09(method category match: ''^\x5c*'') ifFalse: [ \x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09name := package name.\x0a\x09Smalltalk current classes, (Smalltalk current classes collect: [:each | each class]) do: [:each |\x0a\x09\x09each methodDictionary values do: [:method |\x0a\x09\x09\x09method category = (''*'', name) ifTrue: [\x0a\x09\x09\x09\x09definitions add: method asCypressMethodDefinition ]]].\x0a\x09^ CypressSnapshot definitions: definitions\x0a!\x0a\x0aprintString\x0a\x09^super printString, ''('', name, '')''\x0a! !\x0a\x0aObject subclass: #CypressDefinition\x0a\x09instanceVariableNames: ''''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressDefinition methodsFor: ''not yet classified''!\x0a\x0a= aDefinition\x0a\x09^(aDefinition isKindOf: CypressDefinition) and: [self isRevisionOf: aDefinition]\x0a!\x0a\x0aisRevisionOf: aDefinition\x0a\x09^ (aDefinition isKindOf: CypressDefinition) and: [aDefinition description = self description]\x0a!\x0a\x0adescription\x0a\x09self subclassResponsibility\x0a!\x0a\x0aisSameRevisionAs: aDefinition\x0a\x09^ self = aDefinition\x0a! !\x0a\x0aObject subclass: #CypressPatch\x0a\x09instanceVariableNames: ''operations''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressPatch methodsFor: ''not yet classified''!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09| base target |\x09\x0a\x09operations := OrderedCollection new.\x0a\x09base := CypressDefinitionIndex definitions: baseSnapshot definitions.\x0a\x09target := CypressDefinitionIndex definitions: targetSnapshot definitions.\x0a\x09\x0a\x09target definitions do:\x0a\x09\x09[:t |\x0a\x09\x09base\x0a\x09\x09\x09definitionLike: t\x0a\x09\x09\x09ifPresent: [:b | (b isSameRevisionAs: t) ifFalse: [operations add: (CypressModification of: b to: t)]]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressAddition of: t)]].\x0a\x09\x09\x0a\x09base definitions do:\x0a\x09\x09[:b |\x0a\x09\x09target\x0a\x09\x09\x09definitionLike: b\x0a\x09\x09\x09ifPresent: [:t | ]\x0a\x09\x09\x09ifAbsent: [operations add: (CypressRemoval of: b)]]\x0a!\x0a\x0aoperations\x0a\x0a\x09^operations\x0a! !\x0a\x0a!CypressPatch class methodsFor: ''not yet classified''!\x0a\x0afromBase: baseSnapshot toTarget: targetSnapshot\x0a\x09^ (self new)\x0a\x09\x09fromBase: baseSnapshot\x0a\x09\x09toTarget: targetSnapshot\x0a! !\x0a\x0aObject subclass: #CypressDefinitionIndex\x0a\x09instanceVariableNames: ''definitionMap''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressDefinitionIndex methodsFor: ''not yet classified''!\x0a\x0aadd: aDefinition\x0a\x09^ self definitionMap at: aDefinition description put: aDefinition\x0a!\x0a\x0aaddAll: aCollection\x0a\x09aCollection do: [:ea | self add: ea]\x0a!\x0a\x0adefinitionLike: aDefinition ifPresent: foundBlock ifAbsent: errorBlock\x0a\x09| definition |\x0a\x09definition := self definitionMap at: aDefinition description ifAbsent: [].\x0a\x09^ definition\x0a\x09\x09ifNil: errorBlock\x0a\x09\x09ifNotNil: [foundBlock value: definition]\x0a!\x0a\x0adefinitions\x0a\x09^self definitionMap values\x0a!\x0a\x0adefinitionMap\x0a\x09definitionMap ifNil: [ definitionMap := Dictionary new ].\x0a\x09^ definitionMap\x0a!\x0a\x0aremove: aDefinition\x0a\x09self definitionMap removeKey: aDefinition description ifAbsent: []\x0a! !\x0a\x0a!CypressDefinitionIndex class methodsFor: ''not yet classified''!\x0a\x0adefinitions: aCollection\x0a\x09^ self new addAll: aCollection\x0a! !\x0a\x0aObject subclass: #CypressPatchOperation\x0a\x09instanceVariableNames: ''''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0aCypressDefinition subclass: #CypressClassDefinition\x0a\x09instanceVariableNames: ''name superclassName category comment instVarNames classInstVarNames''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressClassDefinition methodsFor: ''not yet classified''!\x0a\x0aname: aClassName superclassName: aSuperclassName category: aCategory instVarNames: anInstanceVariableNames classInstVarNames: aClassInstanceVariableNames comment: aComment\x0a\x0a\x09name := aClassName.\x0a\x09superclassName := aSuperclassName.\x0a\x09category := aCategory.\x0a\x09instVarNames := anInstanceVariableNames.\x0a\x09classInstVarNames := aClassInstanceVariableNames.\x0a\x09comment := aComment\x0a!\x0a\x0a= aDefinition\x0a\x09^(super = aDefinition)\x0a\x09\x09and: [superclassName = aDefinition superclassName\x0a\x09\x09and: [category = aDefinition category\x0a\x09\x09and: [instVarNames = aDefinition instVarNames\x0a\x09\x09and: [classInstVarNames = aDefinition classInstVarNames\x0a\x09\x09and: [comment = aDefinition comment]]]]]\x0a!\x0a\x0asuperclassName\x0a\x0a\x09^superclassName\x0a!\x0a\x0aname\x0a\x0a\x09^name\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0acomment\x0a\x0a\x09^comment\x0a!\x0a\x0adescription\x0a\x0a\x09^ Array with: name\x0a!\x0a\x0ainstVarNames\x0a\x0a\x09^instVarNames\x0a!\x0a\x0aclassInstVarNames\x0a\x0a\x09^classInstVarNames\x0a! !\x0a\x0a!CypressClassDefinition class methodsFor: ''not yet classified''!\x0a\x0aname: aClassName \x0asuperclassName: aSuperclassName\x0acategory: aCategory\x0ainstVarNames: anInstanceVariableNames\x0aclassInstVarNames: aClassInstanceVariableNames\x0acomment: aComment\x0a\x0a\x09^(self new) \x0a\x09\x09name: aClassName \x0a\x09\x09superclassName: aSuperclassName\x0a\x09\x09category: aCategory\x0a\x09\x09instVarNames: anInstanceVariableNames\x0a\x09\x09classInstVarNames: aClassInstanceVariableNames\x0a\x09\x09comment: aComment\x0a! !\x0a\x0aCypressDefinition subclass: #CypressMethodDefinition\x0a\x09instanceVariableNames: ''classIsMeta source category selector className''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressMethodDefinition methodsFor: ''not yet classified''!\x0a\x0aclassName: aName classIsMeta: isMetaclass selector: aSelector category: aCategory source: aSource\x0a\x0a\x09className := aName.\x0a\x09classIsMeta := isMetaclass.\x0a\x09selector := aSelector.\x0a\x09category := aCategory.\x0a\x09source := aSource.\x0a!\x0a\x0a= aDefinition\x0a ^ super = aDefinition\x0a and: [ aDefinition source = self source\x0a and: [ aDefinition category = self category ] ]\x0a!\x0a\x0asource\x0a\x0a\x09^source\x0a!\x0a\x0acategory\x0a\x0a\x09^category\x0a!\x0a\x0adescription\x0a\x09^ Array\x09\x0a\x09\x09with: className\x0a\x09\x09with: selector\x0a\x09\x09with: classIsMeta\x0a! !\x0a\x0a!CypressMethodDefinition class methodsFor: ''not yet classified''!\x0a\x0aclassName: aName\x0aclassIsMeta: isMetaclass\x0aselector: aSelector\x0acategory: aCategory\x0asource: aSource\x0a\x0a\x09^(self new)\x0a\x09\x09className: aName\x0a\x09\x09classIsMeta: isMetaclass\x0a\x09\x09selector: aSelector\x0a\x09\x09category: aCategory\x0a\x09\x09source: aSource\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressAddition\x0a\x09instanceVariableNames: ''definition''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressAddition methodsFor: ''not yet classified''!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressAddition class methodsFor: ''not yet classified''!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressModification\x0a\x09instanceVariableNames: ''obsoletion modification''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressModification methodsFor: ''not yet classified''!\x0a\x0abase: base target: target\x0a\x0a\x09obsoletion := base.\x0a\x09modification := target.\x0a! !\x0a\x0a!CypressModification class methodsFor: ''not yet classified''!\x0a\x0aof: base to: target\x0a\x09^ self new base: base target: target\x0a! !\x0a\x0aCypressPatchOperation subclass: #CypressRemoval\x0a\x09instanceVariableNames: ''definition''\x0a\x09package: ''Cypress-Definitions''!\x0a\x0a!CypressRemoval methodsFor: ''not yet classified''!\x0a\x0adefinition: aDefinition\x0a\x0a\x09definition := aDefinition\x0a! !\x0a\x0a!CypressRemoval class methodsFor: ''not yet classified''!\x0a\x0aof: aDefinition\x0a\x09^ self new definition: aDefinition\x0a! !\x0a\x0a!Object methodsFor: ''*Cypress-Definitions''!\x0a\x0aspecies\x0a\x0a\x09^self class\x0a! !\x0a\x0a!Class methodsFor: ''*Cypress-Definitions''!\x0a\x0aasCypressClassDefinition\x0a\x09^CypressClassDefinition\x0a\x09\x09name: self name\x0a\x09\x09superclassName: self superclass name\x0a\x09\x09category: self category \x0a\x09\x09instVarNames: self instanceVariableNames\x0a\x09\x09classInstVarNames: self class instanceVariableNames\x0a\x09\x09comment: self comment\x0a! !\x0a\x0a!CompiledMethod methodsFor: ''*Cypress-Definitions''!\x0a\x0aasCypressMethodDefinition\x0a\x0a\x09^CypressMethodDefinition \x0a \x09className: self methodClass name\x0a\x09\x09classIsMeta: self methodClass isMetaclass\x0a\x09\x09selector: self selector\x0a\x09\x09category: self category\x0a\x09\x09source: self source\x0a! !\x0a\x0a!CharacterArray methodsFor: ''*Cypress-Definitions''!\x0a\x0asameAs: aString\x0a\x0a\x09^self asUppercase = aString asUppercase\x0a! !\x0a\x0a'",
|
14
|
+
messageSends: [],
|
15
|
+
referencedClasses: []
|
16
|
+
}),
|
17
|
+
smalltalk.ImporterTest);
|
18
|
+
|
19
|
+
smalltalk.addMethod(
|
20
|
+
"_chunkString",
|
21
|
+
smalltalk.method({
|
22
|
+
selector: "chunkString",
|
23
|
+
category: 'private',
|
24
|
+
fn: function (){
|
25
|
+
var self=this;
|
26
|
+
return "!Object methodsFor: 'importer test method'!\x0a\x0aimporterTestMethod\x0a\x0a\x09^'success'\x0a! !\x0a";
|
27
|
+
return self;},
|
28
|
+
args: [],
|
29
|
+
source: "chunkString\x0a\x0a\x09^'!Object methodsFor: ''importer test method''!\x0a\x0aimporterTestMethod\x0a\x0a\x09^''success''\x0a! !\x0a'",
|
30
|
+
messageSends: [],
|
31
|
+
referencedClasses: []
|
32
|
+
}),
|
33
|
+
smalltalk.ImporterTest);
|
34
|
+
|
35
|
+
smalltalk.addMethod(
|
36
|
+
"_cleanUp",
|
37
|
+
smalltalk.method({
|
38
|
+
selector: "cleanUp",
|
39
|
+
category: 'running',
|
40
|
+
fn: function (){
|
41
|
+
var self=this;
|
42
|
+
((($receiver = smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_methodDictionary", []), "_includesKey_", [smalltalk.symbolFor("importerTestMethod")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send((smalltalk.Object || Object), "_removeCompiledMethod_", [smalltalk.send((smalltalk.Object || Object), "_methodAt_", [smalltalk.symbolFor("importerTestMethod")])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send((smalltalk.Object || Object), "_removeCompiledMethod_", [smalltalk.send((smalltalk.Object || Object), "_methodAt_", [smalltalk.symbolFor("importerTestMethod")])]);})]));
|
43
|
+
return self;},
|
44
|
+
args: [],
|
45
|
+
source: "cleanUp\x0a\x0a\x09(Object methodDictionary includesKey: #importerTestMethod)\x0a\x09\x09ifTrue: [ Object removeCompiledMethod: (Object methodAt: #importerTestMethod)].",
|
46
|
+
messageSends: ["ifTrue:", "includesKey:", "methodDictionary", "removeCompiledMethod:", "methodAt:"],
|
47
|
+
referencedClasses: ["Object"]
|
48
|
+
}),
|
49
|
+
smalltalk.ImporterTest);
|
50
|
+
|
51
|
+
smalltalk.addMethod(
|
52
|
+
"_setUp",
|
53
|
+
smalltalk.method({
|
54
|
+
selector: "setUp",
|
55
|
+
category: 'running',
|
56
|
+
fn: function (){
|
57
|
+
var self=this;
|
58
|
+
smalltalk.send(self, "_setUp", [], smalltalk.ImporterTest.superclass || nil);
|
59
|
+
smalltalk.send(self, "_cleanUp", []);
|
60
|
+
return self;},
|
61
|
+
args: [],
|
62
|
+
source: "setUp\x0a\x0a\x09super setUp.\x0a\x09self cleanUp",
|
63
|
+
messageSends: ["setUp", "cleanUp"],
|
64
|
+
referencedClasses: []
|
65
|
+
}),
|
66
|
+
smalltalk.ImporterTest);
|
67
|
+
|
68
|
+
smalltalk.addMethod(
|
69
|
+
"_tearDown",
|
70
|
+
smalltalk.method({
|
71
|
+
selector: "tearDown",
|
72
|
+
category: 'running',
|
73
|
+
fn: function (){
|
74
|
+
var self=this;
|
75
|
+
smalltalk.send(self, "_tearDown", [], smalltalk.ImporterTest.superclass || nil);
|
76
|
+
smalltalk.send(self, "_cleanUp", []);
|
77
|
+
return self;},
|
78
|
+
args: [],
|
79
|
+
source: "tearDown\x0a\x0a\x09super tearDown.\x0a\x09self cleanUp",
|
80
|
+
messageSends: ["tearDown", "cleanUp"],
|
81
|
+
referencedClasses: []
|
82
|
+
}),
|
83
|
+
smalltalk.ImporterTest);
|
84
|
+
|
85
|
+
smalltalk.addMethod(
|
86
|
+
"_testBigChunkString",
|
87
|
+
smalltalk.method({
|
88
|
+
selector: "testBigChunkString",
|
89
|
+
category: 'tests',
|
90
|
+
fn: function (){
|
91
|
+
var self=this;
|
92
|
+
smalltalk.send(smalltalk.send((smalltalk.Importer || Importer), "_new", []), "_import_", [smalltalk.send(smalltalk.send(self, "_bigChunkString", []), "_readStream", [])]);
|
93
|
+
smalltalk.send(smalltalk.send((smalltalk.CypressPackage || CypressPackage), "_new", []), "_species", []);
|
94
|
+
return self;},
|
95
|
+
args: [],
|
96
|
+
source: "testBigChunkString\x0a\x09\x22importer does not correctly add extension methods.\x0a\x0a\x09 After loading in AmberProjectImporter, the following import fails...get a MNU from `CypressPackage new species`:\x0a\x0a \x09\x09AmberProjectImporter\x0a\x09\x09\x09importSTPackage: 'Cypress-Definitions' \x0a\x09\x09\x09prefix: 'tests/'.\x0a\x0a\x09\x09CypressPackage new species. \x0a\x0a\x09WARNING this guy isn't cleaned up automatically\x22\x0a\x0a\x09Importer new import: self bigChunkString readStream.\x0a\x09CypressPackage new species.",
|
97
|
+
messageSends: ["import:", "new", "readStream", "bigChunkString", "species"],
|
98
|
+
referencedClasses: ["Importer", "CypressPackage"]
|
99
|
+
}),
|
100
|
+
smalltalk.ImporterTest);
|
101
|
+
|
102
|
+
smalltalk.addMethod(
|
103
|
+
"_testChunkString",
|
104
|
+
smalltalk.method({
|
105
|
+
selector: "testChunkString",
|
106
|
+
category: 'tests',
|
107
|
+
fn: function (){
|
108
|
+
var self=this;
|
109
|
+
smalltalk.send(smalltalk.send((smalltalk.Importer || Importer), "_new", []), "_import_", [smalltalk.send(smalltalk.send(self, "_chunkString", []), "_readStream", [])]);
|
110
|
+
smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_methodDictionary", []), "_includesKey_", ["importerTestMethod"])]);
|
111
|
+
smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Object || Object), "_new", []), "_importerTestMethod", []), "__eq", ["success"])]);
|
112
|
+
return self;},
|
113
|
+
args: [],
|
114
|
+
source: "testChunkString\x0a\x0a\x09Importer new import: self chunkString readStream.\x0a\x09self assert: (Object methodDictionary includesKey: 'importerTestMethod').\x0a\x09self assert: (Object new importerTestMethod = 'success').",
|
115
|
+
messageSends: ["import:", "new", "readStream", "chunkString", "assert:", "includesKey:", "methodDictionary", "=", "importerTestMethod"],
|
116
|
+
referencedClasses: ["Importer", "Object"]
|
117
|
+
}),
|
118
|
+
smalltalk.ImporterTest);
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
smalltalk.addMethod(
|
123
|
+
"_importerLoadMethod",
|
124
|
+
smalltalk.method({
|
125
|
+
selector: "importerLoadMethod",
|
126
|
+
category: '*Compiler-Tests',
|
127
|
+
fn: function (){
|
128
|
+
var self=this;
|
129
|
+
return "success";
|
130
|
+
return self;},
|
131
|
+
args: [],
|
132
|
+
source: "importerLoadMethod\x0a\x0a\x09^'success'",
|
133
|
+
messageSends: [],
|
134
|
+
referencedClasses: []
|
135
|
+
}),
|
136
|
+
smalltalk.Object);
|
137
|
+
|
data/amber/js/Compiler.deploy.js
CHANGED
@@ -1,284 +1,320 @@
|
|
1
1
|
smalltalk.addPackage('Compiler', {});
|
2
|
-
smalltalk.addClass('
|
2
|
+
smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Compiler');
|
3
3
|
smalltalk.addMethod(
|
4
|
-
|
4
|
+
"_nextChunk",
|
5
5
|
smalltalk.method({
|
6
|
-
selector:
|
7
|
-
fn: function (
|
6
|
+
selector: "nextChunk",
|
7
|
+
fn: function (){
|
8
8
|
var self=this;
|
9
|
-
|
10
|
-
|
9
|
+
var $early={};
|
10
|
+
try{var char_=nil;
|
11
|
+
var result=nil;
|
12
|
+
var chunk=nil;
|
13
|
+
(result=smalltalk.send("", "_writeStream", []));
|
14
|
+
(function(){while((function(){(char_=smalltalk.send(self['@stream'], "_next", []));return smalltalk.send(char_, "_notNil", []);})()) {(function(){((($receiver = smalltalk.send(char_, "__eq", ["!"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", ["!"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw $early=[smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])]})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw $early=[smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", ["!"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw $early=[smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])]})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw $early=[smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])]})();})]));})]));return smalltalk.send(result, "_nextPut_", [char_]);})()}})();
|
15
|
+
return nil;
|
16
|
+
return self;
|
17
|
+
} catch(e) {if(e===$early)return e[0]; throw e}}
|
11
18
|
}),
|
12
|
-
smalltalk.
|
19
|
+
smalltalk.ChunkParser);
|
13
20
|
|
14
21
|
smalltalk.addMethod(
|
15
|
-
|
22
|
+
"_stream_",
|
16
23
|
smalltalk.method({
|
17
|
-
selector:
|
18
|
-
fn: function (
|
24
|
+
selector: "stream:",
|
25
|
+
fn: function (aStream){
|
19
26
|
var self=this;
|
20
|
-
|
27
|
+
(self['@stream']=aStream);
|
21
28
|
return self;}
|
22
29
|
}),
|
23
|
-
smalltalk.
|
30
|
+
smalltalk.ChunkParser);
|
31
|
+
|
24
32
|
|
25
33
|
smalltalk.addMethod(
|
26
|
-
|
34
|
+
"_on_",
|
27
35
|
smalltalk.method({
|
28
|
-
selector:
|
29
|
-
fn: function (
|
36
|
+
selector: "on:",
|
37
|
+
fn: function (aStream){
|
30
38
|
var self=this;
|
31
|
-
smalltalk.send(self, "
|
39
|
+
return smalltalk.send(smalltalk.send(self, "_new", []), "_stream_", [aStream]);
|
32
40
|
return self;}
|
33
41
|
}),
|
34
|
-
smalltalk.
|
42
|
+
smalltalk.ChunkParser.klass);
|
35
43
|
|
44
|
+
|
45
|
+
smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables'], 'Compiler');
|
36
46
|
smalltalk.addMethod(
|
37
|
-
|
47
|
+
"_codeGeneratorClass",
|
38
48
|
smalltalk.method({
|
39
|
-
selector:
|
40
|
-
fn: function (
|
49
|
+
selector: "codeGeneratorClass",
|
50
|
+
fn: function (){
|
41
51
|
var self=this;
|
42
|
-
smalltalk.
|
52
|
+
return (smalltalk.FunCodeGenerator || FunCodeGenerator);
|
43
53
|
return self;}
|
44
54
|
}),
|
45
|
-
smalltalk.
|
55
|
+
smalltalk.Compiler);
|
46
56
|
|
47
57
|
smalltalk.addMethod(
|
48
|
-
|
58
|
+
"_compile_",
|
49
59
|
smalltalk.method({
|
50
|
-
selector:
|
51
|
-
fn: function (
|
60
|
+
selector: "compile:",
|
61
|
+
fn: function (aString){
|
52
62
|
var self=this;
|
53
|
-
smalltalk.send(self, "
|
63
|
+
return smalltalk.send(self, "_compileNode_", [smalltalk.send(self, "_parse_", [aString])]);
|
54
64
|
return self;}
|
55
65
|
}),
|
56
|
-
smalltalk.
|
66
|
+
smalltalk.Compiler);
|
57
67
|
|
58
68
|
smalltalk.addMethod(
|
59
|
-
|
69
|
+
"_compile_forClass_",
|
60
70
|
smalltalk.method({
|
61
|
-
selector:
|
62
|
-
fn: function (
|
71
|
+
selector: "compile:forClass:",
|
72
|
+
fn: function (aString, aClass){
|
63
73
|
var self=this;
|
64
|
-
smalltalk.send(self, "
|
74
|
+
smalltalk.send(self, "_currentClass_", [aClass]);
|
75
|
+
smalltalk.send(self, "_source_", [aString]);
|
76
|
+
return smalltalk.send(self, "_compile_", [aString]);
|
65
77
|
return self;}
|
66
78
|
}),
|
67
|
-
smalltalk.
|
79
|
+
smalltalk.Compiler);
|
68
80
|
|
69
81
|
smalltalk.addMethod(
|
70
|
-
|
82
|
+
"_compileExpression_",
|
71
83
|
smalltalk.method({
|
72
|
-
selector:
|
73
|
-
fn: function (
|
84
|
+
selector: "compileExpression:",
|
85
|
+
fn: function (aString){
|
74
86
|
var self=this;
|
75
|
-
smalltalk.send(self, "
|
87
|
+
smalltalk.send(self, "_currentClass_", [(smalltalk.DoIt || DoIt)]);
|
88
|
+
smalltalk.send(self, "_source_", [smalltalk.send(smalltalk.send("doIt ^[", "__comma", [aString]), "__comma", ["] value"])]);
|
89
|
+
return smalltalk.send(self, "_compileNode_", [smalltalk.send(self, "_parse_", [smalltalk.send(self, "_source", [])])]);
|
76
90
|
return self;}
|
77
91
|
}),
|
78
|
-
smalltalk.
|
92
|
+
smalltalk.Compiler);
|
79
93
|
|
80
94
|
smalltalk.addMethod(
|
81
|
-
|
95
|
+
"_compileNode_",
|
82
96
|
smalltalk.method({
|
83
|
-
selector:
|
97
|
+
selector: "compileNode:",
|
84
98
|
fn: function (aNode){
|
85
99
|
var self=this;
|
86
|
-
|
100
|
+
var generator=nil;
|
101
|
+
var result=nil;
|
102
|
+
(generator=smalltalk.send(smalltalk.send(self, "_codeGeneratorClass", []), "_new", []));
|
103
|
+
(function($rec){smalltalk.send($rec, "_source_", [smalltalk.send(self, "_source", [])]);return smalltalk.send($rec, "_currentClass_", [smalltalk.send(self, "_currentClass", [])]);})(generator);
|
104
|
+
(result=smalltalk.send(generator, "_compileNode_", [aNode]));
|
105
|
+
smalltalk.send(self, "_unknownVariables_", [smalltalk.send(generator, "_unknownVariables", [])]);
|
106
|
+
return result;
|
87
107
|
return self;}
|
88
108
|
}),
|
89
|
-
smalltalk.
|
109
|
+
smalltalk.Compiler);
|
90
110
|
|
91
111
|
smalltalk.addMethod(
|
92
|
-
|
112
|
+
"_currentClass",
|
93
113
|
smalltalk.method({
|
94
|
-
selector:
|
95
|
-
fn: function (
|
114
|
+
selector: "currentClass",
|
115
|
+
fn: function (){
|
96
116
|
var self=this;
|
97
|
-
|
117
|
+
return self['@currentClass'];
|
98
118
|
return self;}
|
99
119
|
}),
|
100
|
-
smalltalk.
|
120
|
+
smalltalk.Compiler);
|
101
121
|
|
102
122
|
smalltalk.addMethod(
|
103
|
-
|
123
|
+
"_currentClass_",
|
104
124
|
smalltalk.method({
|
105
|
-
selector:
|
106
|
-
fn: function (
|
125
|
+
selector: "currentClass:",
|
126
|
+
fn: function (aClass){
|
107
127
|
var self=this;
|
108
|
-
|
128
|
+
(self['@currentClass']=aClass);
|
109
129
|
return self;}
|
110
130
|
}),
|
111
|
-
smalltalk.
|
131
|
+
smalltalk.Compiler);
|
112
132
|
|
113
133
|
smalltalk.addMethod(
|
114
|
-
|
134
|
+
"_eval_",
|
115
135
|
smalltalk.method({
|
116
|
-
selector:
|
117
|
-
fn: function (
|
136
|
+
selector: "eval:",
|
137
|
+
fn: function (aString){
|
118
138
|
var self=this;
|
119
|
-
|
139
|
+
return eval(aString);
|
120
140
|
return self;}
|
121
141
|
}),
|
122
|
-
smalltalk.
|
142
|
+
smalltalk.Compiler);
|
123
143
|
|
124
144
|
smalltalk.addMethod(
|
125
|
-
|
145
|
+
"_evaluateExpression_",
|
126
146
|
smalltalk.method({
|
127
|
-
selector:
|
128
|
-
fn: function (
|
147
|
+
selector: "evaluateExpression:",
|
148
|
+
fn: function (aString){
|
129
149
|
var self=this;
|
130
|
-
|
150
|
+
var result=nil;
|
151
|
+
smalltalk.send((smalltalk.DoIt || DoIt), "_addCompiledMethod_", [smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compileExpression_", [aString])])]);
|
152
|
+
(result=smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt), "_new", []), "_doIt", []));
|
153
|
+
smalltalk.send((smalltalk.DoIt || DoIt), "_removeCompiledMethod_", [smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt), "_methodDictionary", []), "_at_", ["doIt"])]);
|
154
|
+
return result;
|
131
155
|
return self;}
|
132
156
|
}),
|
133
|
-
smalltalk.
|
157
|
+
smalltalk.Compiler);
|
134
158
|
|
135
159
|
smalltalk.addMethod(
|
136
|
-
|
160
|
+
"_install_forClass_category_",
|
137
161
|
smalltalk.method({
|
138
|
-
selector:
|
139
|
-
fn: function (
|
162
|
+
selector: "install:forClass:category:",
|
163
|
+
fn: function (aString, aBehavior, anotherString){
|
140
164
|
var self=this;
|
141
|
-
|
165
|
+
var compiled=nil;
|
166
|
+
(compiled=smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compile_forClass_", [aString, aBehavior])]));
|
167
|
+
smalltalk.send(compiled, "_category_", [anotherString]);
|
168
|
+
smalltalk.send(aBehavior, "_addCompiledMethod_", [compiled]);
|
169
|
+
return compiled;
|
142
170
|
return self;}
|
143
171
|
}),
|
144
|
-
smalltalk.
|
172
|
+
smalltalk.Compiler);
|
145
173
|
|
146
174
|
smalltalk.addMethod(
|
147
|
-
|
175
|
+
"_parse_",
|
148
176
|
smalltalk.method({
|
149
|
-
selector:
|
150
|
-
fn: function (
|
177
|
+
selector: "parse:",
|
178
|
+
fn: function (aString){
|
151
179
|
var self=this;
|
152
|
-
(
|
180
|
+
return smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_parse_", [aString]);
|
153
181
|
return self;}
|
154
182
|
}),
|
155
|
-
smalltalk.
|
183
|
+
smalltalk.Compiler);
|
156
184
|
|
157
185
|
smalltalk.addMethod(
|
158
|
-
|
186
|
+
"_parseExpression_",
|
159
187
|
smalltalk.method({
|
160
|
-
selector:
|
161
|
-
fn: function (
|
188
|
+
selector: "parseExpression:",
|
189
|
+
fn: function (aString){
|
162
190
|
var self=this;
|
163
|
-
smalltalk.send(self, "
|
191
|
+
return smalltalk.send(self, "_parse_", [smalltalk.send(smalltalk.send("doIt ^[", "__comma", [aString]), "__comma", ["] value"])]);
|
164
192
|
return self;}
|
165
193
|
}),
|
166
|
-
smalltalk.
|
194
|
+
smalltalk.Compiler);
|
167
195
|
|
168
196
|
smalltalk.addMethod(
|
169
|
-
|
197
|
+
"_recompile_",
|
170
198
|
smalltalk.method({
|
171
|
-
selector:
|
172
|
-
fn: function (
|
199
|
+
selector: "recompile:",
|
200
|
+
fn: function (aClass){
|
173
201
|
var self=this;
|
174
|
-
smalltalk.send(self, "
|
202
|
+
smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_do_", [(function(each){return smalltalk.send(self, "_install_forClass_category_", [smalltalk.send(each, "_source", []), aClass, smalltalk.send(each, "_category", [])]);})]);
|
203
|
+
smalltalk.send(self, "_setupClass_", [aClass]);
|
204
|
+
((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_recompile_", [smalltalk.send(aClass, "_class", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_recompile_", [smalltalk.send(aClass, "_class", [])]);})]));
|
175
205
|
return self;}
|
176
206
|
}),
|
177
|
-
smalltalk.
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
|
182
|
-
|
207
|
+
smalltalk.Compiler);
|
183
208
|
|
184
|
-
smalltalk.addClass('Importer', smalltalk.Object, [], 'Compiler');
|
185
209
|
smalltalk.addMethod(
|
186
|
-
|
210
|
+
"_recompileAll",
|
187
211
|
smalltalk.method({
|
188
|
-
selector:
|
189
|
-
fn: function (
|
212
|
+
selector: "recompileAll",
|
213
|
+
fn: function (){
|
190
214
|
var self=this;
|
191
|
-
|
192
|
-
var result=nil;
|
193
|
-
var parser=nil;
|
194
|
-
var lastEmpty=nil;
|
195
|
-
(parser=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_on_", [aStream]));
|
196
|
-
(lastEmpty=false);
|
197
|
-
(function(){while(!(function(){(chunk=smalltalk.send(parser, "_nextChunk", []));return smalltalk.send(chunk, "_isNil", []);})()) {(function(){return ((($receiver = smalltalk.send(chunk, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (lastEmpty=true);})() : (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (lastEmpty=true);}), (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_loadExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})]));})()}})();
|
215
|
+
smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_do_", [(function(each){(function($rec){smalltalk.send($rec, "_show_", [each]);return smalltalk.send($rec, "_cr", []);})((smalltalk.Transcript || Transcript));return smalltalk.send((function(){return smalltalk.send(self, "_recompile_", [each]);}), "_valueWithTimeout_", [(100)]);})]);
|
198
216
|
return self;}
|
199
217
|
}),
|
200
|
-
smalltalk.
|
218
|
+
smalltalk.Compiler);
|
201
219
|
|
220
|
+
smalltalk.addMethod(
|
221
|
+
"_setupClass_",
|
222
|
+
smalltalk.method({
|
223
|
+
selector: "setupClass:",
|
224
|
+
fn: function (aClass){
|
225
|
+
var self=this;
|
226
|
+
smalltalk.init(aClass);
|
227
|
+
return self;}
|
228
|
+
}),
|
229
|
+
smalltalk.Compiler);
|
202
230
|
|
231
|
+
smalltalk.addMethod(
|
232
|
+
"_source",
|
233
|
+
smalltalk.method({
|
234
|
+
selector: "source",
|
235
|
+
fn: function (){
|
236
|
+
var self=this;
|
237
|
+
return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
|
238
|
+
return self;}
|
239
|
+
}),
|
240
|
+
smalltalk.Compiler);
|
203
241
|
|
204
|
-
smalltalk.addClass('Exporter', smalltalk.Object, [], 'Compiler');
|
205
242
|
smalltalk.addMethod(
|
206
|
-
|
243
|
+
"_source_",
|
207
244
|
smalltalk.method({
|
208
|
-
selector:
|
209
|
-
fn: function (
|
245
|
+
selector: "source:",
|
246
|
+
fn: function (aString){
|
210
247
|
var self=this;
|
211
|
-
(
|
212
|
-
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
|
213
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
|
214
|
-
((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [unescape(".comment%3D")]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_escaped", [])]), "__comma", [unescape("%27%29")])]);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [unescape(".comment%3D")]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_escaped", [])]), "__comma", [unescape("%27%29")])]);})(aStream);})]));
|
215
|
-
smalltalk.send(aStream, "_lf", []);
|
248
|
+
(self['@source']=aString);
|
216
249
|
return self;}
|
217
250
|
}),
|
218
|
-
smalltalk.
|
251
|
+
smalltalk.Compiler);
|
219
252
|
|
220
253
|
smalltalk.addMethod(
|
221
|
-
|
254
|
+
"_unknownVariables",
|
222
255
|
smalltalk.method({
|
223
|
-
selector:
|
224
|
-
fn: function (
|
256
|
+
selector: "unknownVariables",
|
257
|
+
fn: function (){
|
225
258
|
var self=this;
|
226
|
-
|
259
|
+
return self['@unknownVariables'];
|
227
260
|
return self;}
|
228
261
|
}),
|
229
|
-
smalltalk.
|
262
|
+
smalltalk.Compiler);
|
230
263
|
|
231
264
|
smalltalk.addMethod(
|
232
|
-
|
265
|
+
"_unknownVariables_",
|
233
266
|
smalltalk.method({
|
234
|
-
selector:
|
235
|
-
fn: function (
|
267
|
+
selector: "unknownVariables:",
|
268
|
+
fn: function (aCollection){
|
236
269
|
var self=this;
|
237
|
-
|
238
|
-
smalltalk.send(aStream, "_lf", []);
|
270
|
+
(self['@unknownVariables']=aCollection);
|
239
271
|
return self;}
|
240
272
|
}),
|
241
|
-
smalltalk.
|
273
|
+
smalltalk.Compiler);
|
274
|
+
|
242
275
|
|
243
276
|
smalltalk.addMethod(
|
244
|
-
|
277
|
+
"_recompile_",
|
245
278
|
smalltalk.method({
|
246
|
-
selector:
|
279
|
+
selector: "recompile:",
|
247
280
|
fn: function (aClass){
|
248
281
|
var self=this;
|
249
|
-
|
282
|
+
smalltalk.send(smalltalk.send(self, "_new", []), "_recompile_", [aClass]);
|
250
283
|
return self;}
|
251
284
|
}),
|
252
|
-
smalltalk.
|
285
|
+
smalltalk.Compiler.klass);
|
253
286
|
|
254
287
|
smalltalk.addMethod(
|
255
|
-
|
288
|
+
"_recompileAll",
|
256
289
|
smalltalk.method({
|
257
|
-
selector:
|
258
|
-
fn: function (
|
290
|
+
selector: "recompileAll",
|
291
|
+
fn: function (){
|
259
292
|
var self=this;
|
260
|
-
|
261
|
-
(function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("%7D%29%2C")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
|
293
|
+
smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_do_", [(function(each){return smalltalk.send(self, "_recompile_", [each]);})]);
|
262
294
|
return self;}
|
263
295
|
}),
|
264
|
-
smalltalk.
|
296
|
+
smalltalk.Compiler.klass);
|
297
|
+
|
298
|
+
|
299
|
+
smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
|
265
300
|
|
301
|
+
|
302
|
+
smalltalk.addClass('Exporter', smalltalk.Object, [], 'Compiler');
|
266
303
|
smalltalk.addMethod(
|
267
|
-
|
304
|
+
"_classNameFor_",
|
268
305
|
smalltalk.method({
|
269
|
-
selector:
|
270
|
-
fn: function (
|
306
|
+
selector: "classNameFor:",
|
307
|
+
fn: function (aClass){
|
271
308
|
var self=this;
|
272
|
-
|
273
|
-
return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){(package=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packageAt_", [packageName]));smalltalk.send(self, "_exportPackageDefinitionOf_on_", [package, stream]);smalltalk.send(smalltalk.send(package, "_sortedClasses", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
|
309
|
+
return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
|
274
310
|
return self;}
|
275
311
|
}),
|
276
312
|
smalltalk.Exporter);
|
277
313
|
|
278
314
|
smalltalk.addMethod(
|
279
|
-
|
315
|
+
"_exportAll",
|
280
316
|
smalltalk.method({
|
281
|
-
selector:
|
317
|
+
selector: "exportAll",
|
282
318
|
fn: function (){
|
283
319
|
var self=this;
|
284
320
|
return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packages", []), "_do_", [(function(pkg){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportPackage_", [smalltalk.send(pkg, "_name", [])])]);})]);})]);
|
@@ -287,9 +323,9 @@ return self;}
|
|
287
323
|
smalltalk.Exporter);
|
288
324
|
|
289
325
|
smalltalk.addMethod(
|
290
|
-
|
326
|
+
"_exportClass_",
|
291
327
|
smalltalk.method({
|
292
|
-
selector:
|
328
|
+
selector: "exportClass:",
|
293
329
|
fn: function (aClass){
|
294
330
|
var self=this;
|
295
331
|
return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){smalltalk.send(self, "_exportDefinitionOf_on_", [aClass, stream]);smalltalk.send(self, "_exportMethodsOf_on_", [aClass, stream]);smalltalk.send(self, "_exportMetaDefinitionOf_on_", [aClass, stream]);return smalltalk.send(self, "_exportMethodsOf_on_", [smalltalk.send(aClass, "_class", []), stream]);})]);
|
@@ -298,545 +334,546 @@ return self;}
|
|
298
334
|
smalltalk.Exporter);
|
299
335
|
|
300
336
|
smalltalk.addMethod(
|
301
|
-
|
337
|
+
"_exportDefinitionOf_on_",
|
302
338
|
smalltalk.method({
|
303
|
-
selector:
|
304
|
-
fn: function (
|
339
|
+
selector: "exportDefinitionOf:on:",
|
340
|
+
fn: function (aClass, aStream){
|
305
341
|
var self=this;
|
306
|
-
|
307
|
-
(
|
308
|
-
|
342
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addClass("]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", ["', "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [", ["]);})(aStream);
|
343
|
+
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [", "]);})]);
|
344
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["], '"]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", ["'"])]);return smalltalk.send($rec, "_nextPutAll_", [");"]);})(aStream);
|
345
|
+
((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [".comment="]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_asJavascript", [])]);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [aClass])]);smalltalk.send($rec, "_nextPutAll_", [".comment="]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_comment", []), "_asJavascript", [])]);})(aStream);})]));
|
346
|
+
smalltalk.send(aStream, "_lf", []);
|
309
347
|
return self;}
|
310
348
|
}),
|
311
349
|
smalltalk.Exporter);
|
312
350
|
|
313
351
|
smalltalk.addMethod(
|
314
|
-
|
352
|
+
"_exportMetaDefinitionOf_on_",
|
315
353
|
smalltalk.method({
|
316
|
-
selector:
|
317
|
-
fn: function (
|
354
|
+
selector: "exportMetaDefinitionOf:on:",
|
355
|
+
fn: function (aClass, aStream){
|
318
356
|
var self=this;
|
319
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [
|
320
|
-
smalltalk.send(aStream, "_lf", []);
|
357
|
+
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [".iVarNames = ["]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [","]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send("];", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [".iVarNames = ["]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [","]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send("];", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})]));
|
321
358
|
return self;}
|
322
359
|
}),
|
323
360
|
smalltalk.Exporter);
|
324
361
|
|
325
|
-
|
326
|
-
|
327
|
-
smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Compiler');
|
328
362
|
smalltalk.addMethod(
|
329
|
-
|
363
|
+
"_exportMethod_of_on_",
|
330
364
|
smalltalk.method({
|
331
|
-
selector:
|
332
|
-
fn: function (aStream){
|
365
|
+
selector: "exportMethod:of:on:",
|
366
|
+
fn: function (aMethod, aClass, aStream){
|
333
367
|
var self=this;
|
334
|
-
(
|
368
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addMethod("]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("category: '", "__comma", [smalltalk.send(aMethod, "_category", [])]), "__comma", ["',"])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("args: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_arguments", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("source: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_source", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("messageSends: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_messageSends", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("referencedClasses: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_referencedClasses", []), "_asJavascript", [])])]);})(aStream);
|
369
|
+
(function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["}),"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [");"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
|
335
370
|
return self;}
|
336
371
|
}),
|
337
|
-
smalltalk.
|
372
|
+
smalltalk.Exporter);
|
338
373
|
|
339
374
|
smalltalk.addMethod(
|
340
|
-
|
375
|
+
"_exportMethodsOf_on_",
|
341
376
|
smalltalk.method({
|
342
|
-
selector:
|
343
|
-
fn: function (){
|
377
|
+
selector: "exportMethodsOf:on:",
|
378
|
+
fn: function (aClass, aStream){
|
344
379
|
var self=this;
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
(result=smalltalk.send("", "_writeStream", []));
|
349
|
-
(function(){while((function(){(char_=smalltalk.send(self['@stream'], "_next", []));return smalltalk.send(char_, "_notNil", []);})()) {(function(){((($receiver = smalltalk.send(char_, "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})]));return smalltalk.send(result, "_nextPut_", [char_]);})()}})();
|
350
|
-
(function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return nil}})})();
|
351
|
-
return self;
|
352
|
-
} catch(e) {if(e.name === 'stReturn' && e.selector === '_nextChunk'){return e.fn()} throw(e)}}
|
380
|
+
smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_values", []), "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(b, "_selector", [])]));})]), "_do_", [(function(each){return ((($receiver = smalltalk.send(smalltalk.send(each, "_category", []), "_match_", ["^\x5c*"])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]));})]);
|
381
|
+
smalltalk.send(aStream, "_lf", []);
|
382
|
+
return self;}
|
353
383
|
}),
|
354
|
-
smalltalk.
|
355
|
-
|
384
|
+
smalltalk.Exporter);
|
356
385
|
|
357
386
|
smalltalk.addMethod(
|
358
|
-
|
387
|
+
"_exportPackage_",
|
359
388
|
smalltalk.method({
|
360
|
-
selector:
|
361
|
-
fn: function (
|
389
|
+
selector: "exportPackage:",
|
390
|
+
fn: function (packageName){
|
362
391
|
var self=this;
|
363
|
-
|
392
|
+
var package=nil;
|
393
|
+
return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){(package=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packageAt_", [packageName]));smalltalk.send(self, "_exportPackageDefinitionOf_on_", [package, stream]);smalltalk.send(smalltalk.send(smalltalk.send(package, "_sortedClasses", []), "_asSet", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
|
364
394
|
return self;}
|
365
395
|
}),
|
366
|
-
smalltalk.
|
367
|
-
|
396
|
+
smalltalk.Exporter);
|
368
397
|
|
369
|
-
smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
|
370
398
|
smalltalk.addMethod(
|
371
|
-
|
399
|
+
"_exportPackageDefinitionOf_on_",
|
372
400
|
smalltalk.method({
|
373
|
-
selector:
|
374
|
-
fn: function (){
|
401
|
+
selector: "exportPackageDefinitionOf:on:",
|
402
|
+
fn: function (package, aStream){
|
375
403
|
var self=this;
|
376
|
-
|
404
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addPackage("]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(package, "_name", [])]), "__comma", ["', "]), "__comma", [smalltalk.send(package, "_propertiesAsJSON", [])]), "__comma", [");"])]);})(aStream);
|
405
|
+
smalltalk.send(aStream, "_lf", []);
|
377
406
|
return self;}
|
378
407
|
}),
|
379
|
-
smalltalk.
|
408
|
+
smalltalk.Exporter);
|
380
409
|
|
381
410
|
smalltalk.addMethod(
|
382
|
-
|
411
|
+
"_exportPackageExtensionsOf_on_",
|
383
412
|
smalltalk.method({
|
384
|
-
selector:
|
385
|
-
fn: function (
|
413
|
+
selector: "exportPackageExtensionsOf:on:",
|
414
|
+
fn: function (package, aStream){
|
386
415
|
var self=this;
|
387
|
-
|
416
|
+
var name=nil;
|
417
|
+
(name=smalltalk.send(package, "_name", []));
|
418
|
+
smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_sortedClasses_", [smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", [])]), "_do_", [(function(each){return smalltalk.send([each,smalltalk.send(each, "_class", [])], "_do_", [(function(aClass){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_values", []), "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(b, "_selector", [])]));})]), "_do_", [(function(method){return ((($receiver = smalltalk.send(smalltalk.send(method, "_category", []), "_match_", [smalltalk.send("^\x5c*", "__comma", [name])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethod_of_on_", [method, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethod_of_on_", [method, aClass, aStream]);})]));})]);})]);})]);
|
388
419
|
return self;}
|
389
420
|
}),
|
390
|
-
smalltalk.
|
421
|
+
smalltalk.Exporter);
|
422
|
+
|
391
423
|
|
424
|
+
|
425
|
+
smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Compiler');
|
392
426
|
smalltalk.addMethod(
|
393
|
-
|
427
|
+
"_chunkEscape_",
|
394
428
|
smalltalk.method({
|
395
|
-
selector:
|
396
|
-
fn: function (
|
429
|
+
selector: "chunkEscape:",
|
430
|
+
fn: function (aString){
|
397
431
|
var self=this;
|
398
|
-
smalltalk.send(smalltalk.send(
|
432
|
+
return smalltalk.send(smalltalk.send(aString, "_replace_with_", ["!", "!!"]), "_trimBoth", []);
|
399
433
|
return self;}
|
400
434
|
}),
|
401
|
-
smalltalk.
|
435
|
+
smalltalk.ChunkExporter);
|
402
436
|
|
403
437
|
smalltalk.addMethod(
|
404
|
-
|
438
|
+
"_classNameFor_",
|
405
439
|
smalltalk.method({
|
406
|
-
selector:
|
407
|
-
fn: function (
|
440
|
+
selector: "classNameFor:",
|
441
|
+
fn: function (aClass){
|
408
442
|
var self=this;
|
409
|
-
smalltalk.send(
|
443
|
+
return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
|
410
444
|
return self;}
|
411
445
|
}),
|
412
|
-
smalltalk.
|
446
|
+
smalltalk.ChunkExporter);
|
413
447
|
|
414
448
|
smalltalk.addMethod(
|
415
|
-
|
449
|
+
"_exportDefinitionOf_on_",
|
416
450
|
smalltalk.method({
|
417
|
-
selector:
|
418
|
-
fn: function (){
|
451
|
+
selector: "exportDefinitionOf:on:",
|
452
|
+
fn: function (aClass, aStream){
|
419
453
|
var self=this;
|
420
|
-
return
|
454
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(" subclass: #", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["\x09instanceVariableNames: '"]);})(aStream);
|
455
|
+
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
|
456
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["'"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("\x09package: '", "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", ["'!"])]);return smalltalk.send($rec, "_lf", []);})(aStream);
|
457
|
+
((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("!", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [" commentStamp!"])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", ["!"])]);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("!", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [" commentStamp!"])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", ["!"])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
|
458
|
+
smalltalk.send(aStream, "_lf", []);
|
421
459
|
return self;}
|
422
460
|
}),
|
423
|
-
smalltalk.
|
461
|
+
smalltalk.ChunkExporter);
|
424
462
|
|
425
463
|
smalltalk.addMethod(
|
426
|
-
|
464
|
+
"_exportMetaDefinitionOf_on_",
|
427
465
|
smalltalk.method({
|
428
|
-
selector:
|
429
|
-
fn: function (){
|
466
|
+
selector: "exportMetaDefinitionOf:on:",
|
467
|
+
fn: function (aClass, aStream){
|
430
468
|
var self=this;
|
431
|
-
return
|
469
|
+
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [" instanceVariableNames: '"]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["'!"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [" instanceVariableNames: '"]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["'!"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
|
432
470
|
return self;}
|
433
471
|
}),
|
434
|
-
smalltalk.
|
472
|
+
smalltalk.ChunkExporter);
|
435
473
|
|
436
474
|
smalltalk.addMethod(
|
437
|
-
|
475
|
+
"_exportMethod_of_on_",
|
438
476
|
smalltalk.method({
|
439
|
-
selector:
|
440
|
-
fn: function (){
|
477
|
+
selector: "exportMethod:of:on:",
|
478
|
+
fn: function (aMethod, aClass, aStream){
|
441
479
|
var self=this;
|
442
|
-
return
|
480
|
+
(function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aMethod, "_source", [])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["!"]);})(aStream);
|
443
481
|
return self;}
|
444
482
|
}),
|
445
|
-
smalltalk.
|
446
|
-
|
447
|
-
|
483
|
+
smalltalk.ChunkExporter);
|
448
484
|
|
449
|
-
smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
|
450
485
|
smalltalk.addMethod(
|
451
|
-
|
486
|
+
"_exportMethods_category_of_on_",
|
452
487
|
smalltalk.method({
|
453
|
-
selector:
|
454
|
-
fn: function (){
|
488
|
+
selector: "exportMethods:category:of:on:",
|
489
|
+
fn: function (methods, category, aClass, aStream){
|
455
490
|
var self=this;
|
456
|
-
|
491
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("!", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(" methodsFor: '", "__comma", [category]), "__comma", ["'!"])]);})(aStream);
|
492
|
+
smalltalk.send(smalltalk.send(methods, "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(b, "_selector", [])]));})]), "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
|
493
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [" !"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
|
457
494
|
return self;}
|
458
495
|
}),
|
459
|
-
smalltalk.
|
496
|
+
smalltalk.ChunkExporter);
|
460
497
|
|
461
498
|
smalltalk.addMethod(
|
462
|
-
|
499
|
+
"_exportMethodsOf_on_",
|
463
500
|
smalltalk.method({
|
464
|
-
selector:
|
465
|
-
fn: function (
|
501
|
+
selector: "exportMethodsOf:on:",
|
502
|
+
fn: function (aClass, aStream){
|
466
503
|
var self=this;
|
467
|
-
|
504
|
+
var map=nil;
|
505
|
+
(map=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
|
506
|
+
smalltalk.send(aClass, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "_match_", ["^\x5c*"])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(map, "_at_put_", [category, methods]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(map, "_at_put_", [category, methods]);})]));})]);
|
507
|
+
smalltalk.send(smalltalk.send(smalltalk.send(map, "_keys", []), "_sorted_", [(function(a, b){return ((($receiver = a).klass === smalltalk.Number) ? $receiver <=b : smalltalk.send($receiver, "__lt_eq", [b]));})]), "_do_", [(function(category){var methods=nil;
|
508
|
+
(methods=smalltalk.send(map, "_at_", [category]));return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})]);
|
468
509
|
return self;}
|
469
510
|
}),
|
470
|
-
smalltalk.
|
511
|
+
smalltalk.ChunkExporter);
|
471
512
|
|
472
513
|
smalltalk.addMethod(
|
473
|
-
|
514
|
+
"_exportPackageDefinitionOf_on_",
|
474
515
|
smalltalk.method({
|
475
|
-
selector:
|
476
|
-
fn: function (){
|
516
|
+
selector: "exportPackageDefinitionOf:on:",
|
517
|
+
fn: function (package, aStream){
|
477
518
|
var self=this;
|
478
|
-
|
519
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("Smalltalk current createPackage: '", "__comma", [smalltalk.send(package, "_name", [])]), "__comma", ["' properties: "]), "__comma", [smalltalk.send(smalltalk.send(package, "_properties", []), "_storeString", [])]), "__comma", ["!"])]);return smalltalk.send($rec, "_lf", []);})(aStream);
|
479
520
|
return self;}
|
480
521
|
}),
|
481
|
-
smalltalk.
|
522
|
+
smalltalk.ChunkExporter);
|
482
523
|
|
483
524
|
smalltalk.addMethod(
|
484
|
-
|
525
|
+
"_exportPackageExtensionsOf_on_",
|
485
526
|
smalltalk.method({
|
486
|
-
selector:
|
487
|
-
fn: function (
|
527
|
+
selector: "exportPackageExtensionsOf:on:",
|
528
|
+
fn: function (package, aStream){
|
488
529
|
var self=this;
|
489
|
-
|
530
|
+
var name=nil;
|
531
|
+
var map=nil;
|
532
|
+
(name=smalltalk.send(package, "_name", []));
|
533
|
+
smalltalk.send(smalltalk.send((smalltalk.Package || Package), "_sortedClasses_", [smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", [])]), "_do_", [(function(each){return smalltalk.send([each,smalltalk.send(each, "_class", [])], "_do_", [(function(aClass){(map=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));smalltalk.send(aClass, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "_match_", [smalltalk.send("^\x5c*", "__comma", [name])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(map, "_at_put_", [category, methods]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(map, "_at_put_", [category, methods]);})]));})]);return smalltalk.send(smalltalk.send(smalltalk.send(map, "_keys", []), "_sorted_", [(function(a, b){return ((($receiver = a).klass === smalltalk.Number) ? $receiver <=b : smalltalk.send($receiver, "__lt_eq", [b]));})]), "_do_", [(function(category){var methods=nil;
|
534
|
+
(methods=smalltalk.send(map, "_at_", [category]));return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})]);})]);})]);
|
490
535
|
return self;}
|
491
536
|
}),
|
492
|
-
smalltalk.
|
537
|
+
smalltalk.ChunkExporter);
|
493
538
|
|
494
539
|
|
495
540
|
|
496
|
-
smalltalk.addClass('
|
541
|
+
smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Compiler');
|
497
542
|
smalltalk.addMethod(
|
498
|
-
|
543
|
+
"_exportDefinitionOf_on_",
|
499
544
|
smalltalk.method({
|
500
|
-
selector:
|
501
|
-
fn: function (
|
545
|
+
selector: "exportDefinitionOf:on:",
|
546
|
+
fn: function (aClass, aStream){
|
502
547
|
var self=this;
|
503
|
-
smalltalk.send(
|
548
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addClass("]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", ["', "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [", ["]);})(aStream);
|
549
|
+
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [", "]);})]);
|
550
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["], '"]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", ["'"])]);return smalltalk.send($rec, "_nextPutAll_", [");"]);})(aStream);
|
551
|
+
smalltalk.send(aStream, "_lf", []);
|
504
552
|
return self;}
|
505
553
|
}),
|
506
|
-
smalltalk.
|
507
|
-
|
508
|
-
|
554
|
+
smalltalk.StrippedExporter);
|
509
555
|
|
510
|
-
smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
|
511
556
|
smalltalk.addMethod(
|
512
|
-
|
557
|
+
"_exportMethod_of_on_",
|
513
558
|
smalltalk.method({
|
514
|
-
selector:
|
515
|
-
fn: function (
|
559
|
+
selector: "exportMethod:of:on:",
|
560
|
+
fn: function (aMethod, aClass, aStream){
|
516
561
|
var self=this;
|
517
|
-
smalltalk.send(
|
562
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addMethod("]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["}),"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [");"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
|
518
563
|
return self;}
|
519
564
|
}),
|
520
|
-
smalltalk.
|
565
|
+
smalltalk.StrippedExporter);
|
521
566
|
|
522
567
|
|
523
568
|
|
524
|
-
smalltalk.addClass('
|
569
|
+
smalltalk.addClass('Importer', smalltalk.Object, [], 'Compiler');
|
525
570
|
smalltalk.addMethod(
|
526
|
-
|
571
|
+
"_import_",
|
527
572
|
smalltalk.method({
|
528
|
-
selector:
|
529
|
-
fn: function (){
|
573
|
+
selector: "import:",
|
574
|
+
fn: function (aStream){
|
530
575
|
var self=this;
|
531
|
-
|
576
|
+
var chunk=nil;
|
577
|
+
var result=nil;
|
578
|
+
var parser=nil;
|
579
|
+
var lastEmpty=nil;
|
580
|
+
(parser=smalltalk.send((smalltalk.ChunkParser || ChunkParser), "_on_", [aStream]));
|
581
|
+
(lastEmpty=false);
|
582
|
+
(function(){while(!(function(){(chunk=smalltalk.send(parser, "_nextChunk", []));return smalltalk.send(chunk, "_isNil", []);})()) {(function(){return ((($receiver = smalltalk.send(chunk, "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (lastEmpty=true);})() : (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_evaluateExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (lastEmpty=true);}), (function(){(result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_evaluateExpression_", [chunk]));return ((($receiver = lastEmpty).klass === smalltalk.Boolean) ? ($receiver ? (function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(lastEmpty=false);return smalltalk.send(result, "_scanFrom_", [parser]);})]));})]));})()}})();
|
532
583
|
return self;}
|
533
584
|
}),
|
534
|
-
smalltalk.
|
585
|
+
smalltalk.Importer);
|
535
586
|
|
536
|
-
smalltalk.addMethod(
|
537
|
-
unescape('_value_'),
|
538
|
-
smalltalk.method({
|
539
|
-
selector: unescape('value%3A'),
|
540
|
-
fn: function (anObject){
|
541
|
-
var self=this;
|
542
|
-
(self['@value']=anObject);
|
543
|
-
return self;}
|
544
|
-
}),
|
545
|
-
smalltalk.ValueNode);
|
546
587
|
|
588
|
+
|
589
|
+
smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
|
547
590
|
smalltalk.addMethod(
|
548
|
-
|
591
|
+
"_accept_",
|
549
592
|
smalltalk.method({
|
550
|
-
selector:
|
593
|
+
selector: "accept:",
|
551
594
|
fn: function (aVisitor){
|
552
595
|
var self=this;
|
553
|
-
smalltalk.send(aVisitor, "
|
596
|
+
smalltalk.send(aVisitor, "_visitNode_", [self]);
|
554
597
|
return self;}
|
555
598
|
}),
|
556
|
-
smalltalk.
|
599
|
+
smalltalk.Node);
|
557
600
|
|
558
601
|
smalltalk.addMethod(
|
559
|
-
|
602
|
+
"_addNode_",
|
560
603
|
smalltalk.method({
|
561
|
-
selector:
|
562
|
-
fn: function (){
|
604
|
+
selector: "addNode:",
|
605
|
+
fn: function (aNode){
|
563
606
|
var self=this;
|
564
|
-
|
607
|
+
smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]);
|
565
608
|
return self;}
|
566
609
|
}),
|
567
|
-
smalltalk.
|
568
|
-
|
569
|
-
|
610
|
+
smalltalk.Node);
|
570
611
|
|
571
|
-
smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
|
572
612
|
smalltalk.addMethod(
|
573
|
-
|
613
|
+
"_isBlockNode",
|
574
614
|
smalltalk.method({
|
575
|
-
selector:
|
576
|
-
fn: function (
|
615
|
+
selector: "isBlockNode",
|
616
|
+
fn: function (){
|
577
617
|
var self=this;
|
578
|
-
|
618
|
+
return false;
|
579
619
|
return self;}
|
580
620
|
}),
|
581
|
-
smalltalk.
|
621
|
+
smalltalk.Node);
|
582
622
|
|
583
623
|
smalltalk.addMethod(
|
584
|
-
|
624
|
+
"_isBlockSequenceNode",
|
585
625
|
smalltalk.method({
|
586
|
-
selector:
|
626
|
+
selector: "isBlockSequenceNode",
|
587
627
|
fn: function (){
|
588
628
|
var self=this;
|
589
|
-
return
|
629
|
+
return false;
|
590
630
|
return self;}
|
591
631
|
}),
|
592
|
-
smalltalk.
|
632
|
+
smalltalk.Node);
|
593
633
|
|
594
634
|
smalltalk.addMethod(
|
595
|
-
|
635
|
+
"_isValueNode",
|
596
636
|
smalltalk.method({
|
597
|
-
selector:
|
598
|
-
fn: function (
|
637
|
+
selector: "isValueNode",
|
638
|
+
fn: function (){
|
599
639
|
var self=this;
|
600
|
-
|
640
|
+
return false;
|
601
641
|
return self;}
|
602
642
|
}),
|
603
|
-
smalltalk.
|
604
|
-
|
605
|
-
|
643
|
+
smalltalk.Node);
|
606
644
|
|
607
|
-
smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Compiler');
|
608
645
|
smalltalk.addMethod(
|
609
|
-
|
646
|
+
"_nodes",
|
610
647
|
smalltalk.method({
|
611
|
-
selector:
|
612
|
-
fn: function (
|
648
|
+
selector: "nodes",
|
649
|
+
fn: function (){
|
613
650
|
var self=this;
|
614
|
-
(
|
615
|
-
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
|
616
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%09category%3A%20%27"), "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", [unescape("%27%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
|
617
|
-
((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
|
618
|
-
smalltalk.send(aStream, "_lf", []);
|
651
|
+
return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
619
652
|
return self;}
|
620
653
|
}),
|
621
|
-
smalltalk.
|
654
|
+
smalltalk.Node);
|
622
655
|
|
623
656
|
smalltalk.addMethod(
|
624
|
-
|
657
|
+
"_nodes_",
|
625
658
|
smalltalk.method({
|
626
|
-
selector:
|
627
|
-
fn: function (
|
659
|
+
selector: "nodes:",
|
660
|
+
fn: function (aCollection){
|
628
661
|
var self=this;
|
629
|
-
(
|
662
|
+
(self['@nodes']=aCollection);
|
630
663
|
return self;}
|
631
664
|
}),
|
632
|
-
smalltalk.
|
665
|
+
smalltalk.Node);
|
666
|
+
|
667
|
+
|
633
668
|
|
669
|
+
smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler');
|
634
670
|
smalltalk.addMethod(
|
635
|
-
|
671
|
+
"_accept_",
|
636
672
|
smalltalk.method({
|
637
|
-
selector:
|
638
|
-
fn: function (
|
673
|
+
selector: "accept:",
|
674
|
+
fn: function (aVisitor){
|
639
675
|
var self=this;
|
640
|
-
smalltalk.send(
|
676
|
+
smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
|
641
677
|
return self;}
|
642
678
|
}),
|
643
|
-
smalltalk.
|
679
|
+
smalltalk.AssignmentNode);
|
644
680
|
|
645
681
|
smalltalk.addMethod(
|
646
|
-
|
682
|
+
"_left",
|
647
683
|
smalltalk.method({
|
648
|
-
selector:
|
649
|
-
fn: function (
|
684
|
+
selector: "left",
|
685
|
+
fn: function (){
|
650
686
|
var self=this;
|
651
|
-
|
687
|
+
return self['@left'];
|
652
688
|
return self;}
|
653
689
|
}),
|
654
|
-
smalltalk.
|
690
|
+
smalltalk.AssignmentNode);
|
655
691
|
|
656
692
|
smalltalk.addMethod(
|
657
|
-
|
693
|
+
"_left_",
|
658
694
|
smalltalk.method({
|
659
|
-
selector:
|
660
|
-
fn: function (
|
695
|
+
selector: "left:",
|
696
|
+
fn: function (aNode){
|
661
697
|
var self=this;
|
662
|
-
|
698
|
+
(self['@left']=aNode);
|
699
|
+
smalltalk.send(self['@left'], "_assigned_", [true]);
|
663
700
|
return self;}
|
664
701
|
}),
|
665
|
-
smalltalk.
|
702
|
+
smalltalk.AssignmentNode);
|
666
703
|
|
667
704
|
smalltalk.addMethod(
|
668
|
-
|
705
|
+
"_right",
|
669
706
|
smalltalk.method({
|
670
|
-
selector:
|
671
|
-
fn: function (
|
707
|
+
selector: "right",
|
708
|
+
fn: function (){
|
672
709
|
var self=this;
|
673
|
-
return
|
710
|
+
return self['@right'];
|
674
711
|
return self;}
|
675
712
|
}),
|
676
|
-
smalltalk.
|
713
|
+
smalltalk.AssignmentNode);
|
677
714
|
|
678
715
|
smalltalk.addMethod(
|
679
|
-
|
716
|
+
"_right_",
|
680
717
|
smalltalk.method({
|
681
|
-
selector:
|
682
|
-
fn: function (
|
718
|
+
selector: "right:",
|
719
|
+
fn: function (aNode){
|
683
720
|
var self=this;
|
684
|
-
(
|
685
|
-
smalltalk.send(methods, "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
|
686
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%20%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
|
721
|
+
(self['@right']=aNode);
|
687
722
|
return self;}
|
688
723
|
}),
|
689
|
-
smalltalk.
|
724
|
+
smalltalk.AssignmentNode);
|
690
725
|
|
726
|
+
|
727
|
+
|
728
|
+
smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
|
691
729
|
smalltalk.addMethod(
|
692
|
-
|
730
|
+
"_accept_",
|
693
731
|
smalltalk.method({
|
694
|
-
selector:
|
695
|
-
fn: function (
|
732
|
+
selector: "accept:",
|
733
|
+
fn: function (aVisitor){
|
696
734
|
var self=this;
|
697
|
-
|
698
|
-
(name=smalltalk.send(package, "_name", []));
|
699
|
-
smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]), "_do_", [(function(each){return smalltalk.send(each, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "__eq", [smalltalk.send(unescape("*"), "__comma", [name])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})]));})]);})]);
|
735
|
+
smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
|
700
736
|
return self;}
|
701
737
|
}),
|
702
|
-
smalltalk.
|
738
|
+
smalltalk.BlockNode);
|
703
739
|
|
704
740
|
smalltalk.addMethod(
|
705
|
-
|
741
|
+
"_inlined",
|
706
742
|
smalltalk.method({
|
707
|
-
selector:
|
708
|
-
fn: function (
|
743
|
+
selector: "inlined",
|
744
|
+
fn: function (){
|
709
745
|
var self=this;
|
710
|
-
(
|
746
|
+
return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
711
747
|
return self;}
|
712
748
|
}),
|
713
|
-
smalltalk.
|
714
|
-
|
715
|
-
|
749
|
+
smalltalk.BlockNode);
|
716
750
|
|
717
|
-
smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler');
|
718
751
|
smalltalk.addMethod(
|
719
|
-
|
752
|
+
"_inlined_",
|
720
753
|
smalltalk.method({
|
721
|
-
selector:
|
722
|
-
fn: function (
|
754
|
+
selector: "inlined:",
|
755
|
+
fn: function (aBoolean){
|
723
756
|
var self=this;
|
724
|
-
|
757
|
+
(self['@inlined']=aBoolean);
|
725
758
|
return self;}
|
726
759
|
}),
|
727
|
-
smalltalk.
|
728
|
-
|
729
|
-
|
760
|
+
smalltalk.BlockNode);
|
730
761
|
|
731
|
-
smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver'], 'Compiler');
|
732
762
|
smalltalk.addMethod(
|
733
|
-
|
763
|
+
"_isBlockNode",
|
734
764
|
smalltalk.method({
|
735
|
-
selector:
|
765
|
+
selector: "isBlockNode",
|
736
766
|
fn: function (){
|
737
767
|
var self=this;
|
738
|
-
return
|
768
|
+
return true;
|
739
769
|
return self;}
|
740
770
|
}),
|
741
|
-
smalltalk.
|
771
|
+
smalltalk.BlockNode);
|
742
772
|
|
743
773
|
smalltalk.addMethod(
|
744
|
-
|
774
|
+
"_parameters",
|
745
775
|
smalltalk.method({
|
746
|
-
selector:
|
747
|
-
fn: function (
|
776
|
+
selector: "parameters",
|
777
|
+
fn: function (){
|
748
778
|
var self=this;
|
749
|
-
(self['@
|
779
|
+
return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
|
750
780
|
return self;}
|
751
781
|
}),
|
752
|
-
smalltalk.
|
782
|
+
smalltalk.BlockNode);
|
753
783
|
|
754
784
|
smalltalk.addMethod(
|
755
|
-
|
785
|
+
"_parameters_",
|
756
786
|
smalltalk.method({
|
757
|
-
selector:
|
758
|
-
fn: function (){
|
787
|
+
selector: "parameters:",
|
788
|
+
fn: function (aCollection){
|
759
789
|
var self=this;
|
760
|
-
|
790
|
+
(self['@parameters']=aCollection);
|
761
791
|
return self;}
|
762
792
|
}),
|
763
|
-
smalltalk.
|
793
|
+
smalltalk.BlockNode);
|
794
|
+
|
764
795
|
|
796
|
+
|
797
|
+
smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
|
765
798
|
smalltalk.addMethod(
|
766
|
-
|
799
|
+
"_accept_",
|
767
800
|
smalltalk.method({
|
768
|
-
selector:
|
769
|
-
fn: function (
|
801
|
+
selector: "accept:",
|
802
|
+
fn: function (aVisitor){
|
770
803
|
var self=this;
|
771
|
-
(self
|
804
|
+
smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
|
772
805
|
return self;}
|
773
806
|
}),
|
774
|
-
smalltalk.
|
807
|
+
smalltalk.CascadeNode);
|
775
808
|
|
776
809
|
smalltalk.addMethod(
|
777
|
-
|
810
|
+
"_receiver",
|
778
811
|
smalltalk.method({
|
779
|
-
selector:
|
812
|
+
selector: "receiver",
|
780
813
|
fn: function (){
|
781
814
|
var self=this;
|
782
815
|
return self['@receiver'];
|
783
816
|
return self;}
|
784
817
|
}),
|
785
|
-
smalltalk.
|
818
|
+
smalltalk.CascadeNode);
|
786
819
|
|
787
820
|
smalltalk.addMethod(
|
788
|
-
|
821
|
+
"_receiver_",
|
789
822
|
smalltalk.method({
|
790
|
-
selector:
|
823
|
+
selector: "receiver:",
|
791
824
|
fn: function (aNode){
|
792
825
|
var self=this;
|
793
826
|
(self['@receiver']=aNode);
|
794
827
|
return self;}
|
795
828
|
}),
|
796
|
-
smalltalk.
|
829
|
+
smalltalk.CascadeNode);
|
797
830
|
|
831
|
+
|
832
|
+
|
833
|
+
smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler');
|
798
834
|
smalltalk.addMethod(
|
799
|
-
|
835
|
+
"_accept_",
|
800
836
|
smalltalk.method({
|
801
|
-
selector:
|
802
|
-
fn: function (
|
837
|
+
selector: "accept:",
|
838
|
+
fn: function (aVisitor){
|
803
839
|
var self=this;
|
804
|
-
|
840
|
+
smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
|
805
841
|
return self;}
|
806
842
|
}),
|
807
|
-
smalltalk.
|
843
|
+
smalltalk.DynamicArrayNode);
|
844
|
+
|
808
845
|
|
846
|
+
|
847
|
+
smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler');
|
809
848
|
smalltalk.addMethod(
|
810
|
-
|
849
|
+
"_accept_",
|
811
850
|
smalltalk.method({
|
812
|
-
selector:
|
813
|
-
fn: function (
|
851
|
+
selector: "accept:",
|
852
|
+
fn: function (aVisitor){
|
814
853
|
var self=this;
|
815
|
-
|
816
|
-
(first=(function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", [])));
|
817
|
-
return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", []));
|
854
|
+
smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
|
818
855
|
return self;}
|
819
856
|
}),
|
820
|
-
smalltalk.
|
857
|
+
smalltalk.DynamicDictionaryNode);
|
821
858
|
|
859
|
+
|
860
|
+
|
861
|
+
smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
|
822
862
|
smalltalk.addMethod(
|
823
|
-
|
863
|
+
"_accept_",
|
824
864
|
smalltalk.method({
|
825
|
-
selector:
|
865
|
+
selector: "accept:",
|
826
866
|
fn: function (aVisitor){
|
827
867
|
var self=this;
|
828
|
-
smalltalk.send(aVisitor, "
|
868
|
+
smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
|
829
869
|
return self;}
|
830
870
|
}),
|
831
|
-
smalltalk.
|
832
|
-
|
833
|
-
|
871
|
+
smalltalk.JSStatementNode);
|
834
872
|
|
835
|
-
smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
|
836
873
|
smalltalk.addMethod(
|
837
|
-
|
874
|
+
"_source",
|
838
875
|
smalltalk.method({
|
839
|
-
selector:
|
876
|
+
selector: "source",
|
840
877
|
fn: function (){
|
841
878
|
var self=this;
|
842
879
|
return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
|
@@ -845,9 +882,9 @@ return self;}
|
|
845
882
|
smalltalk.JSStatementNode);
|
846
883
|
|
847
884
|
smalltalk.addMethod(
|
848
|
-
|
885
|
+
"_source_",
|
849
886
|
smalltalk.method({
|
850
|
-
selector:
|
887
|
+
selector: "source:",
|
851
888
|
fn: function (aString){
|
852
889
|
var self=this;
|
853
890
|
(self['@source']=aString);
|
@@ -855,1017 +892,1086 @@ return self;}
|
|
855
892
|
}),
|
856
893
|
smalltalk.JSStatementNode);
|
857
894
|
|
895
|
+
|
896
|
+
|
897
|
+
smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
|
858
898
|
smalltalk.addMethod(
|
859
|
-
|
899
|
+
"_accept_",
|
860
900
|
smalltalk.method({
|
861
|
-
selector:
|
901
|
+
selector: "accept:",
|
862
902
|
fn: function (aVisitor){
|
863
903
|
var self=this;
|
864
|
-
smalltalk.send(aVisitor, "
|
904
|
+
smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
|
865
905
|
return self;}
|
866
906
|
}),
|
867
|
-
smalltalk.
|
868
|
-
|
869
|
-
|
907
|
+
smalltalk.MethodNode);
|
870
908
|
|
871
|
-
smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler');
|
872
909
|
smalltalk.addMethod(
|
873
|
-
|
910
|
+
"_arguments",
|
874
911
|
smalltalk.method({
|
875
|
-
selector:
|
912
|
+
selector: "arguments",
|
876
913
|
fn: function (){
|
877
914
|
var self=this;
|
878
|
-
return self['@
|
915
|
+
return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
879
916
|
return self;}
|
880
917
|
}),
|
881
|
-
smalltalk.
|
918
|
+
smalltalk.MethodNode);
|
882
919
|
|
883
920
|
smalltalk.addMethod(
|
884
|
-
|
921
|
+
"_arguments_",
|
885
922
|
smalltalk.method({
|
886
|
-
selector:
|
887
|
-
fn: function (
|
923
|
+
selector: "arguments:",
|
924
|
+
fn: function (aCollection){
|
888
925
|
var self=this;
|
889
|
-
(self['@
|
890
|
-
smalltalk.send(self['@left'], "_assigned_", [true]);
|
926
|
+
(self['@arguments']=aCollection);
|
891
927
|
return self;}
|
892
928
|
}),
|
893
|
-
smalltalk.
|
929
|
+
smalltalk.MethodNode);
|
894
930
|
|
895
931
|
smalltalk.addMethod(
|
896
|
-
|
932
|
+
"_selector",
|
897
933
|
smalltalk.method({
|
898
|
-
selector:
|
934
|
+
selector: "selector",
|
899
935
|
fn: function (){
|
900
936
|
var self=this;
|
901
|
-
return self['@
|
937
|
+
return self['@selector'];
|
902
938
|
return self;}
|
903
939
|
}),
|
904
|
-
smalltalk.
|
940
|
+
smalltalk.MethodNode);
|
905
941
|
|
906
942
|
smalltalk.addMethod(
|
907
|
-
|
943
|
+
"_selector_",
|
908
944
|
smalltalk.method({
|
909
|
-
selector:
|
910
|
-
fn: function (
|
945
|
+
selector: "selector:",
|
946
|
+
fn: function (aString){
|
911
947
|
var self=this;
|
912
|
-
(self['@
|
948
|
+
(self['@selector']=aString);
|
913
949
|
return self;}
|
914
950
|
}),
|
915
|
-
smalltalk.
|
951
|
+
smalltalk.MethodNode);
|
916
952
|
|
917
953
|
smalltalk.addMethod(
|
918
|
-
|
954
|
+
"_source",
|
919
955
|
smalltalk.method({
|
920
|
-
selector:
|
921
|
-
fn: function (
|
956
|
+
selector: "source",
|
957
|
+
fn: function (){
|
922
958
|
var self=this;
|
923
|
-
|
959
|
+
return self['@source'];
|
924
960
|
return self;}
|
925
961
|
}),
|
926
|
-
smalltalk.
|
962
|
+
smalltalk.MethodNode);
|
927
963
|
|
964
|
+
smalltalk.addMethod(
|
965
|
+
"_source_",
|
966
|
+
smalltalk.method({
|
967
|
+
selector: "source:",
|
968
|
+
fn: function (aString){
|
969
|
+
var self=this;
|
970
|
+
(self['@source']=aString);
|
971
|
+
return self;}
|
972
|
+
}),
|
973
|
+
smalltalk.MethodNode);
|
928
974
|
|
929
975
|
|
930
|
-
|
976
|
+
|
977
|
+
smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
|
931
978
|
smalltalk.addMethod(
|
932
|
-
|
979
|
+
"_accept_",
|
933
980
|
smalltalk.method({
|
934
|
-
selector:
|
981
|
+
selector: "accept:",
|
935
982
|
fn: function (aVisitor){
|
936
983
|
var self=this;
|
937
|
-
smalltalk.send(aVisitor, "
|
984
|
+
smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
|
938
985
|
return self;}
|
939
986
|
}),
|
940
|
-
smalltalk.
|
987
|
+
smalltalk.ReturnNode);
|
941
988
|
|
942
989
|
|
943
990
|
|
944
|
-
smalltalk.addClass('
|
991
|
+
smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver'], 'Compiler');
|
945
992
|
smalltalk.addMethod(
|
946
|
-
|
993
|
+
"_accept_",
|
947
994
|
smalltalk.method({
|
948
|
-
selector:
|
949
|
-
fn: function (){
|
995
|
+
selector: "accept:",
|
996
|
+
fn: function (aVisitor){
|
950
997
|
var self=this;
|
951
|
-
smalltalk.send(
|
952
|
-
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
953
|
-
(self['@unknownVariables']=[]);
|
954
|
-
(self['@tempVariables']=[]);
|
955
|
-
(self['@argVariables']=[]);
|
956
|
-
(self['@messageSends']=[]);
|
957
|
-
(self['@classReferenced']=[]);
|
998
|
+
smalltalk.send(aVisitor, "_visitSendNode_", [self]);
|
958
999
|
return self;}
|
959
1000
|
}),
|
960
|
-
smalltalk.
|
1001
|
+
smalltalk.SendNode);
|
961
1002
|
|
962
1003
|
smalltalk.addMethod(
|
963
|
-
|
1004
|
+
"_arguments",
|
964
1005
|
smalltalk.method({
|
965
|
-
selector:
|
1006
|
+
selector: "arguments",
|
966
1007
|
fn: function (){
|
967
1008
|
var self=this;
|
968
|
-
return
|
1009
|
+
return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver;
|
969
1010
|
return self;}
|
970
1011
|
}),
|
971
|
-
smalltalk.
|
1012
|
+
smalltalk.SendNode);
|
972
1013
|
|
973
1014
|
smalltalk.addMethod(
|
974
|
-
|
1015
|
+
"_arguments_",
|
975
1016
|
smalltalk.method({
|
976
|
-
selector:
|
1017
|
+
selector: "arguments:",
|
1018
|
+
fn: function (aCollection){
|
1019
|
+
var self=this;
|
1020
|
+
(self['@arguments']=aCollection);
|
1021
|
+
return self;}
|
1022
|
+
}),
|
1023
|
+
smalltalk.SendNode);
|
1024
|
+
|
1025
|
+
smalltalk.addMethod(
|
1026
|
+
"_cascadeNodeWithMessages_",
|
1027
|
+
smalltalk.method({
|
1028
|
+
selector: "cascadeNodeWithMessages:",
|
1029
|
+
fn: function (aCollection){
|
1030
|
+
var self=this;
|
1031
|
+
var first=nil;
|
1032
|
+
(first=(function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", [])));
|
1033
|
+
return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", []));
|
1034
|
+
return self;}
|
1035
|
+
}),
|
1036
|
+
smalltalk.SendNode);
|
1037
|
+
|
1038
|
+
smalltalk.addMethod(
|
1039
|
+
"_receiver",
|
1040
|
+
smalltalk.method({
|
1041
|
+
selector: "receiver",
|
977
1042
|
fn: function (){
|
978
1043
|
var self=this;
|
979
|
-
return self['@
|
1044
|
+
return self['@receiver'];
|
980
1045
|
return self;}
|
981
1046
|
}),
|
982
|
-
smalltalk.
|
1047
|
+
smalltalk.SendNode);
|
983
1048
|
|
984
1049
|
smalltalk.addMethod(
|
985
|
-
|
1050
|
+
"_receiver_",
|
986
1051
|
smalltalk.method({
|
987
|
-
selector:
|
988
|
-
fn: function (
|
1052
|
+
selector: "receiver:",
|
1053
|
+
fn: function (aNode){
|
989
1054
|
var self=this;
|
990
|
-
(self['@
|
1055
|
+
(self['@receiver']=aNode);
|
991
1056
|
return self;}
|
992
1057
|
}),
|
993
|
-
smalltalk.
|
1058
|
+
smalltalk.SendNode);
|
1059
|
+
|
1060
|
+
smalltalk.addMethod(
|
1061
|
+
"_selector",
|
1062
|
+
smalltalk.method({
|
1063
|
+
selector: "selector",
|
1064
|
+
fn: function (){
|
1065
|
+
var self=this;
|
1066
|
+
return self['@selector'];
|
1067
|
+
return self;}
|
1068
|
+
}),
|
1069
|
+
smalltalk.SendNode);
|
994
1070
|
|
995
1071
|
smalltalk.addMethod(
|
996
|
-
|
1072
|
+
"_selector_",
|
997
1073
|
smalltalk.method({
|
998
|
-
selector:
|
1074
|
+
selector: "selector:",
|
999
1075
|
fn: function (aString){
|
1000
1076
|
var self=this;
|
1001
|
-
|
1002
|
-
smalltalk.send((smalltalk.DoIt || DoIt), "_addCompiledMethod_", [smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compileExpression_", [aString])])]);
|
1003
|
-
(result=smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt), "_new", []), "_doIt", []));
|
1004
|
-
smalltalk.send((smalltalk.DoIt || DoIt), "_removeCompiledMethod_", [smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt), "_methodDictionary", []), "_at_", ["doIt"])]);
|
1005
|
-
return result;
|
1077
|
+
(self['@selector']=aString);
|
1006
1078
|
return self;}
|
1007
1079
|
}),
|
1008
|
-
smalltalk.
|
1080
|
+
smalltalk.SendNode);
|
1009
1081
|
|
1010
1082
|
smalltalk.addMethod(
|
1011
|
-
|
1083
|
+
"_valueForReceiver_",
|
1012
1084
|
smalltalk.method({
|
1013
|
-
selector:
|
1014
|
-
fn: function (
|
1085
|
+
selector: "valueForReceiver:",
|
1086
|
+
fn: function (anObject){
|
1015
1087
|
var self=this;
|
1016
|
-
|
1017
|
-
(compiled=smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compile_forClass_", [aString, aClass])]));
|
1018
|
-
smalltalk.send(self, "_setupClass_", [aClass]);
|
1019
|
-
return compiled;
|
1088
|
+
return (function($rec){smalltalk.send($rec, "_receiver_", [(($receiver = smalltalk.send(self, "_receiver", [])) == nil || $receiver == undefined) ? (function(){return anObject;})() : (function(){return smalltalk.send(smalltalk.send(self, "_receiver", []), "_valueForReceiver_", [anObject]);})()]);smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []));
|
1020
1089
|
return self;}
|
1021
1090
|
}),
|
1022
|
-
smalltalk.
|
1091
|
+
smalltalk.SendNode);
|
1092
|
+
|
1023
1093
|
|
1094
|
+
|
1095
|
+
smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
|
1024
1096
|
smalltalk.addMethod(
|
1025
|
-
|
1097
|
+
"_accept_",
|
1026
1098
|
smalltalk.method({
|
1027
|
-
selector:
|
1028
|
-
fn: function (
|
1099
|
+
selector: "accept:",
|
1100
|
+
fn: function (aVisitor){
|
1029
1101
|
var self=this;
|
1030
|
-
smalltalk.send(
|
1031
|
-
smalltalk.send(self, "_source_", [aString]);
|
1032
|
-
return smalltalk.send(self, "_compile_", [aString]);
|
1102
|
+
smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
|
1033
1103
|
return self;}
|
1034
1104
|
}),
|
1035
|
-
smalltalk.
|
1105
|
+
smalltalk.SequenceNode);
|
1036
1106
|
|
1037
1107
|
smalltalk.addMethod(
|
1038
|
-
|
1108
|
+
"_asBlockSequenceNode",
|
1039
1109
|
smalltalk.method({
|
1040
|
-
selector:
|
1041
|
-
fn: function (
|
1110
|
+
selector: "asBlockSequenceNode",
|
1111
|
+
fn: function (){
|
1042
1112
|
var self=this;
|
1043
|
-
smalltalk.send(self, "
|
1044
|
-
smalltalk.send(self, "_source_", [smalltalk.send(smalltalk.send(unescape("doIt%20%5E%5B"), "__comma", [aString]), "__comma", [unescape("%5D%20value")])]);
|
1045
|
-
return smalltalk.send(self, "_compileNode_", [smalltalk.send(self, "_parse_", [smalltalk.send(self, "_source", [])])]);
|
1113
|
+
return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", []));
|
1046
1114
|
return self;}
|
1047
1115
|
}),
|
1048
|
-
smalltalk.
|
1116
|
+
smalltalk.SequenceNode);
|
1049
1117
|
|
1050
1118
|
smalltalk.addMethod(
|
1051
|
-
|
1119
|
+
"_temps",
|
1052
1120
|
smalltalk.method({
|
1053
|
-
selector:
|
1054
|
-
fn: function (
|
1121
|
+
selector: "temps",
|
1122
|
+
fn: function (){
|
1055
1123
|
var self=this;
|
1056
|
-
return
|
1124
|
+
return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
|
1057
1125
|
return self;}
|
1058
1126
|
}),
|
1059
|
-
smalltalk.
|
1127
|
+
smalltalk.SequenceNode);
|
1060
1128
|
|
1061
1129
|
smalltalk.addMethod(
|
1062
|
-
|
1130
|
+
"_temps_",
|
1063
1131
|
smalltalk.method({
|
1064
|
-
selector:
|
1065
|
-
fn: function (
|
1132
|
+
selector: "temps:",
|
1133
|
+
fn: function (aCollection){
|
1066
1134
|
var self=this;
|
1067
|
-
|
1135
|
+
(self['@temps']=aCollection);
|
1068
1136
|
return self;}
|
1069
1137
|
}),
|
1070
|
-
smalltalk.
|
1138
|
+
smalltalk.SequenceNode);
|
1071
1139
|
|
1140
|
+
|
1141
|
+
|
1142
|
+
smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
|
1072
1143
|
smalltalk.addMethod(
|
1073
|
-
|
1144
|
+
"_accept_",
|
1074
1145
|
smalltalk.method({
|
1075
|
-
selector:
|
1076
|
-
fn: function (
|
1146
|
+
selector: "accept:",
|
1147
|
+
fn: function (aVisitor){
|
1077
1148
|
var self=this;
|
1078
|
-
|
1079
|
-
smalltalk.send(self, "_visit_", [aNode]);
|
1080
|
-
return smalltalk.send(self['@stream'], "_contents", []);
|
1149
|
+
smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
|
1081
1150
|
return self;}
|
1082
1151
|
}),
|
1083
|
-
smalltalk.
|
1152
|
+
smalltalk.BlockSequenceNode);
|
1084
1153
|
|
1085
1154
|
smalltalk.addMethod(
|
1086
|
-
|
1155
|
+
"_isBlockSequenceNode",
|
1087
1156
|
smalltalk.method({
|
1088
|
-
selector:
|
1089
|
-
fn: function (
|
1157
|
+
selector: "isBlockSequenceNode",
|
1158
|
+
fn: function (){
|
1090
1159
|
var self=this;
|
1091
|
-
|
1160
|
+
return true;
|
1092
1161
|
return self;}
|
1093
1162
|
}),
|
1094
|
-
smalltalk.
|
1163
|
+
smalltalk.BlockSequenceNode);
|
1164
|
+
|
1095
1165
|
|
1166
|
+
|
1167
|
+
smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler');
|
1096
1168
|
smalltalk.addMethod(
|
1097
|
-
|
1169
|
+
"_accept_",
|
1098
1170
|
smalltalk.method({
|
1099
|
-
selector:
|
1100
|
-
fn: function (
|
1171
|
+
selector: "accept:",
|
1172
|
+
fn: function (aVisitor){
|
1101
1173
|
var self=this;
|
1102
|
-
|
1103
|
-
var currentSelector=nil;
|
1104
|
-
(self['@currentSelector']=smalltalk.send(smalltalk.send(aNode, "_selector", []), "_asSelector", []));
|
1105
|
-
(self['@nestedBlocks']=(0));
|
1106
|
-
(self['@earlyReturn']=false);
|
1107
|
-
(self['@messageSends']=[]);
|
1108
|
-
(self['@referencedClasses']=[]);
|
1109
|
-
(self['@unknownVariables']=[]);
|
1110
|
-
(self['@tempVariables']=[]);
|
1111
|
-
(self['@argVariables']=[]);
|
1112
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.method%28%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("selector%3A%20%22"), "__comma", [smalltalk.send(aNode, "_selector", [])]), "__comma", [unescape("%22%2C")])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1113
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("source%3A%20unescape%28%22"), "__comma", [smalltalk.send(smalltalk.send(self, "_source", []), "_escaped", [])]), "__comma", [unescape("%22%29%2C")])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1114
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("fn%3A%20function%28")]);
|
1115
|
-
smalltalk.send(smalltalk.send(aNode, "_arguments", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@argVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%2C%20")]);})]);
|
1116
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%29%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("var%20self%3Dthis%3B")]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1117
|
-
(str=self['@stream']);
|
1118
|
-
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1119
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1120
|
-
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [unescape("try%7B")]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [unescape("try%7B")]);})]));
|
1121
|
-
smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self['@stream'], "_contents", [])]);
|
1122
|
-
(self['@stream']=str);
|
1123
|
-
(function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("return%20self%3B")]);})(self['@stream']);
|
1124
|
-
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%7D%20catch%28e%29%20%7Bif%28e.name%20%3D%3D%3D%20%27stReturn%27%20%26%26%20e.selector%20%3D%3D%3D%20"), "__comma", [smalltalk.send(self['@currentSelector'], "_printString", [])]), "__comma", [unescape("%29%7Breturn%20e.fn%28%29%7D%20throw%28e%29%7D")])]);})(self['@stream']);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%7D%20catch%28e%29%20%7Bif%28e.name%20%3D%3D%3D%20%27stReturn%27%20%26%26%20e.selector%20%3D%3D%3D%20"), "__comma", [smalltalk.send(self['@currentSelector'], "_printString", [])]), "__comma", [unescape("%29%7Breturn%20e.fn%28%29%7D%20throw%28e%29%7D")])]);})(self['@stream']);})]));
|
1125
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D")]);
|
1126
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%2C"), "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", ["messageSends: "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@messageSends'], "_asJavascript", []), "__comma", [unescape("%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("args: ", "__comma", [smalltalk.send(self['@argVariables'], "_asJavascript", [])]), "__comma", [unescape("%2C")])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("referencedClasses%3A%20%5B")]);})(self['@stream']);
|
1127
|
-
smalltalk.send(self['@referencedClasses'], "_do_separatedBy_", [(function(each){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(each, "_printString", [])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%2C")]);})]);
|
1128
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%5D")]);
|
1129
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D%29")]);
|
1174
|
+
smalltalk.send(aVisitor, "_visitValueNode_", [self]);
|
1130
1175
|
return self;}
|
1131
1176
|
}),
|
1132
|
-
smalltalk.
|
1177
|
+
smalltalk.ValueNode);
|
1133
1178
|
|
1134
1179
|
smalltalk.addMethod(
|
1135
|
-
|
1180
|
+
"_isValueNode",
|
1136
1181
|
smalltalk.method({
|
1137
|
-
selector:
|
1138
|
-
fn: function (
|
1182
|
+
selector: "isValueNode",
|
1183
|
+
fn: function (){
|
1139
1184
|
var self=this;
|
1140
|
-
|
1141
|
-
smalltalk.send(smalltalk.send(aNode, "_parameters", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@tempVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%2C%20")]);})]);
|
1142
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%7B")]);
|
1143
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1144
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D%29")]);
|
1185
|
+
return true;
|
1145
1186
|
return self;}
|
1146
1187
|
}),
|
1147
|
-
smalltalk.
|
1188
|
+
smalltalk.ValueNode);
|
1148
1189
|
|
1149
1190
|
smalltalk.addMethod(
|
1150
|
-
|
1191
|
+
"_value",
|
1151
1192
|
smalltalk.method({
|
1152
|
-
selector:
|
1153
|
-
fn: function (
|
1193
|
+
selector: "value",
|
1194
|
+
fn: function (){
|
1154
1195
|
var self=this;
|
1155
|
-
|
1156
|
-
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", [unescape("%3Dnil%3B")])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);
|
1157
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%3B")]);}), (function(){return smalltalk.send(self['@stream'], "_lf", []);})]);
|
1196
|
+
return self['@value'];
|
1158
1197
|
return self;}
|
1159
1198
|
}),
|
1160
|
-
smalltalk.
|
1199
|
+
smalltalk.ValueNode);
|
1161
1200
|
|
1162
1201
|
smalltalk.addMethod(
|
1163
|
-
|
1202
|
+
"_value_",
|
1164
1203
|
smalltalk.method({
|
1165
|
-
selector:
|
1166
|
-
fn: function (
|
1204
|
+
selector: "value:",
|
1205
|
+
fn: function (anObject){
|
1167
1206
|
var self=this;
|
1168
|
-
|
1169
|
-
(self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
|
1170
|
-
((($receiver = smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("return%20nil%3B")]);})() : (function(){smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
|
1171
|
-
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", [unescape("%3Dnil%3B")])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);(index=(0));return smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%3B")]);})]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("return%20nil%3B")]);}), (function(){smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
|
1172
|
-
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", [unescape("%3Dnil%3B")])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);(index=(0));return smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%3B")]);})]);})]));
|
1173
|
-
(self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
|
1207
|
+
(self['@value']=anObject);
|
1174
1208
|
return self;}
|
1175
1209
|
}),
|
1176
|
-
smalltalk.
|
1210
|
+
smalltalk.ValueNode);
|
1211
|
+
|
1212
|
+
|
1213
|
+
|
1214
|
+
smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
|
1215
|
+
smalltalk.addMethod(
|
1216
|
+
"_accept_",
|
1217
|
+
smalltalk.method({
|
1218
|
+
selector: "accept:",
|
1219
|
+
fn: function (aVisitor){
|
1220
|
+
var self=this;
|
1221
|
+
smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
|
1222
|
+
return self;}
|
1223
|
+
}),
|
1224
|
+
smalltalk.VariableNode);
|
1177
1225
|
|
1178
1226
|
smalltalk.addMethod(
|
1179
|
-
|
1227
|
+
"_assigned",
|
1180
1228
|
smalltalk.method({
|
1181
|
-
selector:
|
1182
|
-
fn: function (
|
1229
|
+
selector: "assigned",
|
1230
|
+
fn: function (){
|
1183
1231
|
var self=this;
|
1184
|
-
|
1185
|
-
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%28function%28%29%7Bthrow%28")]);smalltalk.send($rec, "_nextPutAll_", [unescape("%7Bname%3A%20%27stReturn%27%2C%20selector%3A%20")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@currentSelector'], "_printString", [])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20fn%3A%20function%28%29%7Breturn%20")]);})(self['@stream']);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%28function%28%29%7Bthrow%28")]);smalltalk.send($rec, "_nextPutAll_", [unescape("%7Bname%3A%20%27stReturn%27%2C%20selector%3A%20")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self['@currentSelector'], "_printString", [])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20fn%3A%20function%28%29%7Breturn%20")]);})(self['@stream']);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));
|
1186
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1187
|
-
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D%7D%29%7D%29%28%29")]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D%7D%29%7D%29%28%29")]);})]));
|
1232
|
+
return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
|
1188
1233
|
return self;}
|
1189
1234
|
}),
|
1190
|
-
smalltalk.
|
1235
|
+
smalltalk.VariableNode);
|
1191
1236
|
|
1192
1237
|
smalltalk.addMethod(
|
1193
|
-
|
1238
|
+
"_assigned_",
|
1194
1239
|
smalltalk.method({
|
1195
|
-
selector:
|
1196
|
-
fn: function (
|
1240
|
+
selector: "assigned:",
|
1241
|
+
fn: function (aBoolean){
|
1197
1242
|
var self=this;
|
1198
|
-
|
1199
|
-
var receiver=nil;
|
1200
|
-
var superSend=nil;
|
1201
|
-
var inlined=nil;
|
1202
|
-
(str=self['@stream']);
|
1203
|
-
((($receiver = smalltalk.send(self['@messageSends'], "_includes_", [smalltalk.send(aNode, "_selector", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})]));
|
1204
|
-
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1205
|
-
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_receiver", [])]);
|
1206
|
-
(superSend=smalltalk.send(smalltalk.send(self['@stream'], "_contents", []), "__eq", ["super"]));
|
1207
|
-
(receiver=((($receiver = superSend).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "self";})() : (function(){return smalltalk.send(self['@stream'], "_contents", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "self";}), (function(){return smalltalk.send(self['@stream'], "_contents", []);})])));
|
1208
|
-
(self['@stream']=str);
|
1209
|
-
((($receiver = smalltalk.send(self, "_performOptimizations", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [unescape("%29")])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));
|
1243
|
+
(self['@assigned']=aBoolean);
|
1210
1244
|
return self;}
|
1211
1245
|
}),
|
1212
|
-
smalltalk.
|
1246
|
+
smalltalk.VariableNode);
|
1247
|
+
|
1248
|
+
|
1249
|
+
|
1250
|
+
smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler');
|
1251
|
+
smalltalk.addMethod(
|
1252
|
+
"_accept_",
|
1253
|
+
smalltalk.method({
|
1254
|
+
selector: "accept:",
|
1255
|
+
fn: function (aVisitor){
|
1256
|
+
var self=this;
|
1257
|
+
smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]);
|
1258
|
+
return self;}
|
1259
|
+
}),
|
1260
|
+
smalltalk.ClassReferenceNode);
|
1261
|
+
|
1213
1262
|
|
1263
|
+
|
1264
|
+
smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler');
|
1214
1265
|
smalltalk.addMethod(
|
1215
|
-
|
1266
|
+
"_visit_",
|
1216
1267
|
smalltalk.method({
|
1217
|
-
selector:
|
1268
|
+
selector: "visit:",
|
1218
1269
|
fn: function (aNode){
|
1219
1270
|
var self=this;
|
1220
|
-
|
1221
|
-
(index=(0));
|
1222
|
-
((($receiver = smalltalk.send(self['@tempVariables'], "_includes_", ["$rec"])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@tempVariables'], "_add_", ["$rec"]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@tempVariables'], "_add_", ["$rec"]);})]));
|
1223
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%24rec%29%7B")]);
|
1224
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(each, "_receiver_", [smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode), "_new", []), "_value_", ["$rec"])]);smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%3B")]);})]);
|
1225
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%7D%29%28")]);
|
1226
|
-
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_receiver", [])]);
|
1227
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29")]);
|
1271
|
+
smalltalk.send(aNode, "_accept_", [self]);
|
1228
1272
|
return self;}
|
1229
1273
|
}),
|
1230
|
-
smalltalk.
|
1274
|
+
smalltalk.NodeVisitor);
|
1231
1275
|
|
1232
1276
|
smalltalk.addMethod(
|
1233
|
-
|
1277
|
+
"_visitAssignmentNode_",
|
1234
1278
|
smalltalk.method({
|
1235
|
-
selector:
|
1279
|
+
selector: "visitAssignmentNode:",
|
1236
1280
|
fn: function (aNode){
|
1237
1281
|
var self=this;
|
1238
|
-
smalltalk.send(self
|
1282
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1239
1283
|
return self;}
|
1240
1284
|
}),
|
1241
|
-
smalltalk.
|
1285
|
+
smalltalk.NodeVisitor);
|
1242
1286
|
|
1243
1287
|
smalltalk.addMethod(
|
1244
|
-
|
1288
|
+
"_visitBlockNode_",
|
1245
1289
|
smalltalk.method({
|
1246
|
-
selector:
|
1290
|
+
selector: "visitBlockNode:",
|
1247
1291
|
fn: function (aNode){
|
1248
1292
|
var self=this;
|
1249
|
-
smalltalk.send(self
|
1250
|
-
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_left", [])]);
|
1251
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%3D")]);
|
1252
|
-
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_right", [])]);
|
1253
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29")]);
|
1293
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1254
1294
|
return self;}
|
1255
1295
|
}),
|
1256
|
-
smalltalk.
|
1296
|
+
smalltalk.NodeVisitor);
|
1257
1297
|
|
1258
1298
|
smalltalk.addMethod(
|
1259
|
-
|
1299
|
+
"_visitBlockSequenceNode_",
|
1260
1300
|
smalltalk.method({
|
1261
|
-
selector:
|
1301
|
+
selector: "visitBlockSequenceNode:",
|
1262
1302
|
fn: function (aNode){
|
1263
1303
|
var self=this;
|
1264
|
-
|
1265
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28smalltalk."), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [unescape("%20%7C%7C%20")]), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [unescape("%29")])]);
|
1304
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1266
1305
|
return self;}
|
1267
1306
|
}),
|
1268
|
-
smalltalk.
|
1307
|
+
smalltalk.NodeVisitor);
|
1269
1308
|
|
1270
1309
|
smalltalk.addMethod(
|
1271
|
-
|
1310
|
+
"_visitCascadeNode_",
|
1272
1311
|
smalltalk.method({
|
1273
|
-
selector:
|
1312
|
+
selector: "visitCascadeNode:",
|
1274
1313
|
fn: function (aNode){
|
1275
1314
|
var self=this;
|
1276
|
-
|
1277
|
-
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_currentClass", []), "_allInstanceVariableNames", []), "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("self%5B%27@"), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [unescape("%27%5D")])]);})() : (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("self%5B%27@"), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [unescape("%27%5D")])]);}), (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("%28typeof%20"), "__comma", [varName]), "__comma", [unescape("%20%3D%3D%20%27undefined%27%20%3F%20nil%20%3A%20")]), "__comma", [varName]), "__comma", [unescape("%29")])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28smalltalk.getThisContext%28%29%29")]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})]));
|
1315
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1278
1316
|
return self;}
|
1279
1317
|
}),
|
1280
|
-
smalltalk.
|
1318
|
+
smalltalk.NodeVisitor);
|
1281
1319
|
|
1282
1320
|
smalltalk.addMethod(
|
1283
|
-
|
1321
|
+
"_visitClassReferenceNode_",
|
1284
1322
|
smalltalk.method({
|
1285
|
-
selector:
|
1323
|
+
selector: "visitClassReferenceNode:",
|
1286
1324
|
fn: function (aNode){
|
1287
1325
|
var self=this;
|
1288
|
-
smalltalk.send(self
|
1326
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1289
1327
|
return self;}
|
1290
1328
|
}),
|
1291
|
-
smalltalk.
|
1329
|
+
smalltalk.NodeVisitor);
|
1292
1330
|
|
1293
1331
|
smalltalk.addMethod(
|
1294
|
-
|
1332
|
+
"_visitDynamicArrayNode_",
|
1295
1333
|
smalltalk.method({
|
1296
|
-
selector:
|
1297
|
-
fn: function (
|
1334
|
+
selector: "visitDynamicArrayNode:",
|
1335
|
+
fn: function (aNode){
|
1298
1336
|
var self=this;
|
1299
|
-
|
1337
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1300
1338
|
return self;}
|
1301
1339
|
}),
|
1302
|
-
smalltalk.
|
1340
|
+
smalltalk.NodeVisitor);
|
1303
1341
|
|
1304
1342
|
smalltalk.addMethod(
|
1305
|
-
|
1343
|
+
"_visitDynamicDictionaryNode_",
|
1306
1344
|
smalltalk.method({
|
1307
|
-
selector:
|
1308
|
-
fn: function (
|
1345
|
+
selector: "visitDynamicDictionaryNode:",
|
1346
|
+
fn: function (aNode){
|
1309
1347
|
var self=this;
|
1310
|
-
|
1348
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1311
1349
|
return self;}
|
1312
1350
|
}),
|
1313
|
-
smalltalk.
|
1351
|
+
smalltalk.NodeVisitor);
|
1314
1352
|
|
1315
1353
|
smalltalk.addMethod(
|
1316
|
-
|
1354
|
+
"_visitJSStatementNode_",
|
1317
1355
|
smalltalk.method({
|
1318
|
-
selector:
|
1319
|
-
fn: function (){
|
1356
|
+
selector: "visitJSStatementNode:",
|
1357
|
+
fn: function (aNode){
|
1320
1358
|
var self=this;
|
1321
|
-
|
1359
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1322
1360
|
return self;}
|
1323
1361
|
}),
|
1324
|
-
smalltalk.
|
1362
|
+
smalltalk.NodeVisitor);
|
1325
1363
|
|
1326
1364
|
smalltalk.addMethod(
|
1327
|
-
|
1365
|
+
"_visitMethodNode_",
|
1328
1366
|
smalltalk.method({
|
1329
|
-
selector:
|
1330
|
-
fn: function (){
|
1367
|
+
selector: "visitMethodNode:",
|
1368
|
+
fn: function (aNode){
|
1331
1369
|
var self=this;
|
1332
|
-
|
1370
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1333
1371
|
return self;}
|
1334
1372
|
}),
|
1335
|
-
smalltalk.
|
1373
|
+
smalltalk.NodeVisitor);
|
1336
1374
|
|
1337
1375
|
smalltalk.addMethod(
|
1338
|
-
|
1376
|
+
"_visitNode_",
|
1339
1377
|
smalltalk.method({
|
1340
|
-
selector:
|
1341
|
-
fn: function (){
|
1378
|
+
selector: "visitNode:",
|
1379
|
+
fn: function (aNode){
|
1342
1380
|
var self=this;
|
1343
|
-
|
1381
|
+
|
1344
1382
|
return self;}
|
1345
1383
|
}),
|
1346
|
-
smalltalk.
|
1384
|
+
smalltalk.NodeVisitor);
|
1347
1385
|
|
1348
1386
|
smalltalk.addMethod(
|
1349
|
-
|
1387
|
+
"_visitReturnNode_",
|
1350
1388
|
smalltalk.method({
|
1351
|
-
selector:
|
1352
|
-
fn: function (){
|
1389
|
+
selector: "visitReturnNode:",
|
1390
|
+
fn: function (aNode){
|
1353
1391
|
var self=this;
|
1354
|
-
|
1392
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1355
1393
|
return self;}
|
1356
1394
|
}),
|
1357
|
-
smalltalk.
|
1395
|
+
smalltalk.NodeVisitor);
|
1358
1396
|
|
1359
1397
|
smalltalk.addMethod(
|
1360
|
-
|
1398
|
+
"_visitSendNode_",
|
1361
1399
|
smalltalk.method({
|
1362
|
-
selector:
|
1363
|
-
fn: function (
|
1400
|
+
selector: "visitSendNode:",
|
1401
|
+
fn: function (aNode){
|
1364
1402
|
var self=this;
|
1365
|
-
smalltalk.send(
|
1366
|
-
(method=smalltalk.send(self, "_load_forClass_", [smalltalk.send(each, "_source", []), aClass]));smalltalk.send(method, "_category_", [smalltalk.send(each, "_category", [])]);return smalltalk.send(aClass, "_addCompiledMethod_", [method]);})]);
|
1367
|
-
((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_recompile_", [smalltalk.send(aClass, "_class", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_recompile_", [smalltalk.send(aClass, "_class", [])]);})]));
|
1403
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1368
1404
|
return self;}
|
1369
1405
|
}),
|
1370
|
-
smalltalk.
|
1406
|
+
smalltalk.NodeVisitor);
|
1371
1407
|
|
1372
1408
|
smalltalk.addMethod(
|
1373
|
-
|
1409
|
+
"_visitSequenceNode_",
|
1374
1410
|
smalltalk.method({
|
1375
|
-
selector:
|
1376
|
-
fn: function (){
|
1411
|
+
selector: "visitSequenceNode:",
|
1412
|
+
fn: function (aNode){
|
1377
1413
|
var self=this;
|
1378
|
-
smalltalk.send(
|
1414
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1379
1415
|
return self;}
|
1380
1416
|
}),
|
1381
|
-
smalltalk.
|
1417
|
+
smalltalk.NodeVisitor);
|
1382
1418
|
|
1383
1419
|
smalltalk.addMethod(
|
1384
|
-
|
1420
|
+
"_visitValueNode_",
|
1385
1421
|
smalltalk.method({
|
1386
|
-
selector:
|
1387
|
-
fn: function (
|
1422
|
+
selector: "visitValueNode:",
|
1423
|
+
fn: function (aNode){
|
1388
1424
|
var self=this;
|
1389
|
-
|
1425
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1390
1426
|
return self;}
|
1391
1427
|
}),
|
1392
|
-
smalltalk.
|
1428
|
+
smalltalk.NodeVisitor);
|
1393
1429
|
|
1394
1430
|
smalltalk.addMethod(
|
1395
|
-
|
1431
|
+
"_visitVariableNode_",
|
1396
1432
|
smalltalk.method({
|
1397
|
-
selector:
|
1398
|
-
fn: function (
|
1433
|
+
selector: "visitVariableNode:",
|
1434
|
+
fn: function (aNode){
|
1399
1435
|
var self=this;
|
1400
|
-
smalltalk.send(self, "
|
1436
|
+
smalltalk.send(self, "_visitNode_", [aNode]);
|
1401
1437
|
return self;}
|
1402
1438
|
}),
|
1403
|
-
smalltalk.
|
1439
|
+
smalltalk.NodeVisitor);
|
1440
|
+
|
1404
1441
|
|
1442
|
+
|
1443
|
+
smalltalk.addClass('AbstractCodeGenerator', smalltalk.NodeVisitor, ['currentClass', 'source'], 'Compiler');
|
1405
1444
|
smalltalk.addMethod(
|
1406
|
-
|
1445
|
+
"_classNameFor_",
|
1407
1446
|
smalltalk.method({
|
1408
|
-
selector:
|
1447
|
+
selector: "classNameFor:",
|
1409
1448
|
fn: function (aClass){
|
1410
1449
|
var self=this;
|
1411
|
-
smalltalk.
|
1450
|
+
return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
|
1412
1451
|
return self;}
|
1413
1452
|
}),
|
1414
|
-
smalltalk.
|
1453
|
+
smalltalk.AbstractCodeGenerator);
|
1415
1454
|
|
1416
1455
|
smalltalk.addMethod(
|
1417
|
-
|
1456
|
+
"_compileNode_",
|
1418
1457
|
smalltalk.method({
|
1419
|
-
selector:
|
1420
|
-
fn: function (
|
1458
|
+
selector: "compileNode:",
|
1459
|
+
fn: function (aNode){
|
1421
1460
|
var self=this;
|
1422
|
-
|
1423
|
-
(tmp=self['@stream']);smalltalk.send(str, "_nextPutAll_", [unescape("smalltalk.send%28")]);smalltalk.send(str, "_nextPutAll_", [aReceiver]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%2C%20%22"), "__comma", [smalltalk.send(aSelector, "_asSelector", [])]), "__comma", [unescape("%22%2C%20%5B")])]);(self['@stream']=str);smalltalk.send(aCollection, "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%2C%20")]);})]);(self['@stream']=tmp);smalltalk.send(str, "_nextPutAll_", [unescape("%5D")]);((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(unescape("%2C%20smalltalk."), "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(smalltalk.send(self, "_currentClass", []), "_superclass", [])])])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(unescape("%2C%20smalltalk."), "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(smalltalk.send(self, "_currentClass", []), "_superclass", [])])])]);})]));return smalltalk.send(str, "_nextPutAll_", [unescape("%29")]);})]);
|
1461
|
+
smalltalk.send(self, "_subclassResponsibility", []);
|
1424
1462
|
return self;}
|
1425
1463
|
}),
|
1426
|
-
smalltalk.
|
1464
|
+
smalltalk.AbstractCodeGenerator);
|
1427
1465
|
|
1428
1466
|
smalltalk.addMethod(
|
1429
|
-
|
1467
|
+
"_currentClass",
|
1430
1468
|
smalltalk.method({
|
1431
|
-
selector:
|
1432
|
-
fn: function (
|
1469
|
+
selector: "currentClass",
|
1470
|
+
fn: function (){
|
1433
1471
|
var self=this;
|
1434
|
-
|
1472
|
+
return self['@currentClass'];
|
1435
1473
|
return self;}
|
1436
1474
|
}),
|
1437
|
-
smalltalk.
|
1475
|
+
smalltalk.AbstractCodeGenerator);
|
1438
1476
|
|
1439
1477
|
smalltalk.addMethod(
|
1440
|
-
|
1478
|
+
"_currentClass_",
|
1441
1479
|
smalltalk.method({
|
1442
|
-
selector:
|
1443
|
-
fn: function (
|
1480
|
+
selector: "currentClass:",
|
1481
|
+
fn: function (aClass){
|
1444
1482
|
var self=this;
|
1445
|
-
|
1446
|
-
(inlined=false);
|
1447
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})]));})]));
|
1448
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%7D%7D%29%28%29")]);return (inlined=true);})]));})]));
|
1449
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})]));})]));
|
1450
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28function%28%29%7Bwhile%28%21")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29%20%7B%7D%7D%29%28%29")]);return (inlined=true);})]));})]));
|
1451
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("+")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20+%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20+%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20+%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20+%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1452
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("-")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20-%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20-%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20-%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20-%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1453
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("*")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20*%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20*%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20*%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20*%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1454
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("/")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20/%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20/%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20/%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20/%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1455
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3C")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1456
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3C%3D")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3C%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1457
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3E")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1458
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3E%3D")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%20%3E%3D%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1459
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20%24receiver")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20%24receiver")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20%24receiver")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20%24receiver")]);return (inlined=true);})]));})]));
|
1460
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%21%3D%20nil%20%26%26%20%24receiver%20%21%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%21%3D%20nil%20%26%26%20%24receiver%20%21%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%21%3D%20nil%20%26%26%20%24receiver%20%21%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%21%3D%20nil%20%26%26%20%24receiver%20%21%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil")]);return (inlined=true);})]));})]));
|
1461
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})]));})]));
|
1462
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%28%24receiver%20%3D%20")]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%29%20%3D%3D%20nil%20%7C%7C%20%24receiver%20%3D%3D%20undefined%29%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29")]);return (inlined=true);})]));})]));
|
1463
|
-
return inlined;
|
1483
|
+
(self['@currentClass']=aClass);
|
1464
1484
|
return self;}
|
1465
1485
|
}),
|
1466
|
-
smalltalk.
|
1486
|
+
smalltalk.AbstractCodeGenerator);
|
1467
1487
|
|
1468
1488
|
smalltalk.addMethod(
|
1469
|
-
|
1489
|
+
"_pseudoVariables",
|
1470
1490
|
smalltalk.method({
|
1471
|
-
selector:
|
1472
|
-
fn: function (
|
1491
|
+
selector: "pseudoVariables",
|
1492
|
+
fn: function (){
|
1473
1493
|
var self=this;
|
1474
|
-
return
|
1494
|
+
return ["self", "super", "true", "false", "nil", "thisContext"];
|
1475
1495
|
return self;}
|
1476
1496
|
}),
|
1477
|
-
smalltalk.
|
1497
|
+
smalltalk.AbstractCodeGenerator);
|
1478
1498
|
|
1479
1499
|
smalltalk.addMethod(
|
1480
|
-
|
1500
|
+
"_safeVariableNameFor_",
|
1481
1501
|
smalltalk.method({
|
1482
|
-
selector:
|
1483
|
-
fn: function (
|
1502
|
+
selector: "safeVariableNameFor:",
|
1503
|
+
fn: function (aString){
|
1484
1504
|
var self=this;
|
1485
|
-
|
1486
|
-
(inlined=false);
|
1487
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})]));})]));
|
1488
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20nil%29")]);return (inlined=true);})]));})]));
|
1489
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})]));})]));
|
1490
|
-
((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%21%20%24receiver%20%3F%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%20%3A%20")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%28%29%29")]);return (inlined=true);})]));})]));
|
1491
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3C")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3C")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3C")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1492
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3C%3D")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3C%3D")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3C%3D")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1493
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3E")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3E")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3E")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1494
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("%3E%3D")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3E%3D")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20%3E%3D")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1495
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("+")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20+")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20+")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1496
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("-")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20-")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20-")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1497
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("*")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20*")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20*")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1498
|
-
((($receiver = smalltalk.send(aSelector, "__eq", [unescape("/")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20/")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%24receiver%20/")]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1499
|
-
return inlined;
|
1505
|
+
return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_reservedWords", []), "_includes_", [aString])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aString, "__comma", ["_"]);})() : (function(){return aString;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aString, "__comma", ["_"]);}), (function(){return aString;})]));
|
1500
1506
|
return self;}
|
1501
1507
|
}),
|
1502
|
-
smalltalk.
|
1508
|
+
smalltalk.AbstractCodeGenerator);
|
1503
1509
|
|
1504
1510
|
smalltalk.addMethod(
|
1505
|
-
|
1511
|
+
"_source",
|
1506
1512
|
smalltalk.method({
|
1507
|
-
selector:
|
1513
|
+
selector: "source",
|
1508
1514
|
fn: function (){
|
1509
1515
|
var self=this;
|
1510
|
-
return
|
1516
|
+
return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
|
1511
1517
|
return self;}
|
1512
1518
|
}),
|
1513
|
-
smalltalk.
|
1519
|
+
smalltalk.AbstractCodeGenerator);
|
1514
1520
|
|
1515
1521
|
smalltalk.addMethod(
|
1516
|
-
|
1522
|
+
"_source_",
|
1517
1523
|
smalltalk.method({
|
1518
|
-
selector:
|
1519
|
-
fn: function (){
|
1524
|
+
selector: "source:",
|
1525
|
+
fn: function (aString){
|
1520
1526
|
var self=this;
|
1521
|
-
|
1527
|
+
(self['@source']=aString);
|
1522
1528
|
return self;}
|
1523
1529
|
}),
|
1524
|
-
smalltalk.
|
1530
|
+
smalltalk.AbstractCodeGenerator);
|
1531
|
+
|
1525
1532
|
|
1533
|
+
|
1534
|
+
smalltalk.addClass('FunCodeGenerator', smalltalk.AbstractCodeGenerator, ['stream', 'nestedBlocks', 'earlyReturn', 'currentSelector', 'unknownVariables', 'tempVariables', 'messageSends', 'referencedClasses', 'classReferenced', 'argVariables'], 'Compiler');
|
1526
1535
|
smalltalk.addMethod(
|
1527
|
-
|
1536
|
+
"_argVariables",
|
1528
1537
|
smalltalk.method({
|
1529
|
-
selector:
|
1530
|
-
fn: function (
|
1538
|
+
selector: "argVariables",
|
1539
|
+
fn: function (){
|
1531
1540
|
var self=this;
|
1532
|
-
(self['@
|
1541
|
+
return smalltalk.send(self['@argVariables'], "_copy", []);
|
1533
1542
|
return self;}
|
1534
1543
|
}),
|
1535
|
-
smalltalk.
|
1544
|
+
smalltalk.FunCodeGenerator);
|
1536
1545
|
|
1537
1546
|
smalltalk.addMethod(
|
1538
|
-
|
1547
|
+
"_checkClass_for_",
|
1539
1548
|
smalltalk.method({
|
1540
|
-
selector:
|
1541
|
-
fn: function (
|
1549
|
+
selector: "checkClass:for:",
|
1550
|
+
fn: function (aClassName, receiver){
|
1542
1551
|
var self=this;
|
1543
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [
|
1544
|
-
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%2C")]);})]);
|
1545
|
-
smalltalk.send(self['@stream'], "_nextPutAll_", [unescape("%5D")]);
|
1552
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((($receiver = ", "__comma", [receiver]), "__comma", [").klass === smalltalk."]), "__comma", [aClassName]), "__comma", [") ? "])]);
|
1546
1553
|
return self;}
|
1547
1554
|
}),
|
1548
|
-
smalltalk.
|
1555
|
+
smalltalk.FunCodeGenerator);
|
1549
1556
|
|
1550
1557
|
smalltalk.addMethod(
|
1551
|
-
|
1558
|
+
"_compileNode_",
|
1552
1559
|
smalltalk.method({
|
1553
|
-
selector:
|
1560
|
+
selector: "compileNode:",
|
1554
1561
|
fn: function (aNode){
|
1555
1562
|
var self=this;
|
1556
|
-
|
1557
|
-
smalltalk.send(
|
1558
|
-
smalltalk.send(self['@stream'], "
|
1563
|
+
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1564
|
+
smalltalk.send(self, "_visit_", [aNode]);
|
1565
|
+
return smalltalk.send(self['@stream'], "_contents", []);
|
1559
1566
|
return self;}
|
1560
1567
|
}),
|
1561
|
-
smalltalk.
|
1568
|
+
smalltalk.FunCodeGenerator);
|
1562
1569
|
|
1563
1570
|
smalltalk.addMethod(
|
1564
|
-
|
1571
|
+
"_initialize",
|
1565
1572
|
smalltalk.method({
|
1566
|
-
selector:
|
1573
|
+
selector: "initialize",
|
1567
1574
|
fn: function (){
|
1568
1575
|
var self=this;
|
1569
|
-
|
1576
|
+
smalltalk.send(self, "_initialize", [], smalltalk.FunCodeGenerator.superclass || nil);
|
1577
|
+
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1578
|
+
(self['@unknownVariables']=[]);
|
1579
|
+
(self['@tempVariables']=[]);
|
1580
|
+
(self['@argVariables']=[]);
|
1581
|
+
(self['@messageSends']=[]);
|
1582
|
+
(self['@classReferenced']=[]);
|
1570
1583
|
return self;}
|
1571
1584
|
}),
|
1572
|
-
smalltalk.
|
1585
|
+
smalltalk.FunCodeGenerator);
|
1573
1586
|
|
1574
1587
|
smalltalk.addMethod(
|
1575
|
-
|
1588
|
+
"_inline_receiver_argumentNodes_",
|
1576
1589
|
smalltalk.method({
|
1577
|
-
selector:
|
1578
|
-
fn: function (
|
1590
|
+
selector: "inline:receiver:argumentNodes:",
|
1591
|
+
fn: function (aSelector, receiver, aCollection){
|
1579
1592
|
var self=this;
|
1580
|
-
|
1593
|
+
var inlined=nil;
|
1594
|
+
(inlined=false);
|
1595
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})]));})]));
|
1596
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil)"]);return (inlined=true);})]));})]));
|
1597
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["($receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})]));})]));
|
1598
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Boolean", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["(! $receiver ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["())"]);return (inlined=true);})]));})]));
|
1599
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["<"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver <"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver <"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1600
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["<="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver <="]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver <="]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1601
|
+
((($receiver = smalltalk.send(aSelector, "__eq", [">"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver >"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver >"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1602
|
+
((($receiver = smalltalk.send(aSelector, "__eq", [">="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver >="]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver >="]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1603
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["+"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver +"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver +"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1604
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["-"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver -"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver -"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1605
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["*"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver *"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver *"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1606
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["/"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver /"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self['@stream'], "_nextPutAll_", ["$receiver /"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));
|
1607
|
+
return inlined;
|
1581
1608
|
return self;}
|
1582
1609
|
}),
|
1583
|
-
smalltalk.
|
1610
|
+
smalltalk.FunCodeGenerator);
|
1584
1611
|
|
1585
|
-
|
1586
|
-
smalltalk.Compiler.klass.iVarNames = ['performOptimizations'];
|
1587
1612
|
smalltalk.addMethod(
|
1588
|
-
|
1613
|
+
"_inlineLiteral_receiverNode_argumentNodes_",
|
1589
1614
|
smalltalk.method({
|
1590
|
-
selector:
|
1591
|
-
fn: function (
|
1615
|
+
selector: "inlineLiteral:receiverNode:argumentNodes:",
|
1616
|
+
fn: function (aSelector, anObject, aCollection){
|
1592
1617
|
var self=this;
|
1593
|
-
|
1594
|
-
(
|
1595
|
-
((($receiver = smalltalk.send(
|
1618
|
+
var inlined=nil;
|
1619
|
+
(inlined=false);
|
1620
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})]));})]));
|
1621
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {"]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()}})()"]);return (inlined=true);})]));})]));
|
1622
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while("]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})]));})]));
|
1623
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){while(!"]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()) {}})()"]);return (inlined=true);})]));})]));
|
1624
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["+"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" + "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" + "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" + "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" + "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1625
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["-"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" - "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" - "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" - "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" - "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1626
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["*"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" * "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" * "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" * "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" * "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1627
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["/"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" / "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" / "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" / "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" / "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1628
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["<"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" < "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" < "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" < "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" < "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1629
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["<="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" <= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" <= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" <= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" <= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1630
|
+
((($receiver = smalltalk.send(aSelector, "__eq", [">"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" > "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" > "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" > "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" > "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1631
|
+
((($receiver = smalltalk.send(aSelector, "__eq", [">="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" >= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" >= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [anObject, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" >= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [" >= "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);return (inlined=true);})]));})]));
|
1632
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : $receiver"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : $receiver"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : $receiver"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : $receiver"]);return (inlined=true);})]));})]));
|
1633
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") != nil && $receiver != undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") != nil && $receiver != undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") != nil && $receiver != undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") != nil && $receiver != undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : nil"]);return (inlined=true);})]));})]));
|
1634
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})]));})]));
|
1635
|
+
((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["(($receiver = "]);smalltalk.send(self, "_visit_", [anObject]);smalltalk.send(self['@stream'], "_nextPutAll_", [") == nil || $receiver == undefined) ? "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_second", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["() : "]);smalltalk.send(self, "_visit_", [smalltalk.send(aCollection, "_first", [])]);smalltalk.send(self['@stream'], "_nextPutAll_", ["()"]);return (inlined=true);})]));})]));
|
1636
|
+
return inlined;
|
1596
1637
|
return self;}
|
1597
1638
|
}),
|
1598
|
-
smalltalk.
|
1639
|
+
smalltalk.FunCodeGenerator);
|
1599
1640
|
|
1600
1641
|
smalltalk.addMethod(
|
1601
|
-
|
1642
|
+
"_isNode_ofClass_",
|
1602
1643
|
smalltalk.method({
|
1603
|
-
selector:
|
1604
|
-
fn: function (){
|
1644
|
+
selector: "isNode:ofClass:",
|
1645
|
+
fn: function (aNode, aClass){
|
1605
1646
|
var self=this;
|
1606
|
-
smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.
|
1647
|
+
return smalltalk.send(smalltalk.send(aNode, "_isValueNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "_class", []), "__eq", [aClass]), "_or_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["self"]), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_currentClass", []), "__eq", [aClass]);})]);})]);})]);
|
1607
1648
|
return self;}
|
1608
1649
|
}),
|
1609
|
-
smalltalk.
|
1650
|
+
smalltalk.FunCodeGenerator);
|
1610
1651
|
|
1611
1652
|
smalltalk.addMethod(
|
1612
|
-
|
1653
|
+
"_knownVariables",
|
1613
1654
|
smalltalk.method({
|
1614
|
-
selector:
|
1655
|
+
selector: "knownVariables",
|
1615
1656
|
fn: function (){
|
1616
1657
|
var self=this;
|
1617
|
-
return (($
|
1658
|
+
return (function($rec){smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_tempVariables", [])]);smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_argVariables", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_pseudoVariables", []));
|
1618
1659
|
return self;}
|
1619
1660
|
}),
|
1620
|
-
smalltalk.
|
1661
|
+
smalltalk.FunCodeGenerator);
|
1621
1662
|
|
1622
1663
|
smalltalk.addMethod(
|
1623
|
-
|
1664
|
+
"_performOptimizations",
|
1624
1665
|
smalltalk.method({
|
1625
|
-
selector:
|
1626
|
-
fn: function (
|
1666
|
+
selector: "performOptimizations",
|
1667
|
+
fn: function (){
|
1627
1668
|
var self=this;
|
1628
|
-
(self[
|
1669
|
+
return smalltalk.send(smalltalk.send(self, "_class", []), "_performOptimizations", []);
|
1629
1670
|
return self;}
|
1630
1671
|
}),
|
1631
|
-
smalltalk.
|
1632
|
-
|
1672
|
+
smalltalk.FunCodeGenerator);
|
1633
1673
|
|
1634
|
-
smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
|
1635
1674
|
smalltalk.addMethod(
|
1636
|
-
|
1675
|
+
"_send_to_arguments_superSend_",
|
1637
1676
|
smalltalk.method({
|
1638
|
-
selector:
|
1639
|
-
fn: function (
|
1677
|
+
selector: "send:to:arguments:superSend:",
|
1678
|
+
fn: function (aSelector, aReceiver, aCollection, aBoolean){
|
1640
1679
|
var self=this;
|
1641
|
-
smalltalk.send(
|
1680
|
+
return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(str){var tmp=nil;
|
1681
|
+
(tmp=self['@stream']);smalltalk.send(str, "_nextPutAll_", ["smalltalk.send("]);smalltalk.send(str, "_nextPutAll_", [aReceiver]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", \x22", "__comma", [smalltalk.send(aSelector, "_asSelector", [])]), "__comma", ["\x22, ["])]);(self['@stream']=str);smalltalk.send(aCollection, "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);(self['@stream']=tmp);smalltalk.send(str, "_nextPutAll_", ["]"]);((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(self, "_currentClass", [])])]), "__comma", [".superclass || nil"])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(self, "_currentClass", [])])]), "__comma", [".superclass || nil"])]);})]));return smalltalk.send(str, "_nextPutAll_", [")"]);})]);
|
1642
1682
|
return self;}
|
1643
1683
|
}),
|
1644
|
-
smalltalk.
|
1684
|
+
smalltalk.FunCodeGenerator);
|
1645
1685
|
|
1646
1686
|
smalltalk.addMethod(
|
1647
|
-
|
1687
|
+
"_tempVariables",
|
1648
1688
|
smalltalk.method({
|
1649
|
-
selector:
|
1689
|
+
selector: "tempVariables",
|
1650
1690
|
fn: function (){
|
1651
1691
|
var self=this;
|
1652
|
-
return
|
1692
|
+
return smalltalk.send(self['@tempVariables'], "_copy", []);
|
1653
1693
|
return self;}
|
1654
1694
|
}),
|
1655
|
-
smalltalk.
|
1656
|
-
|
1695
|
+
smalltalk.FunCodeGenerator);
|
1657
1696
|
|
1658
|
-
|
1659
|
-
smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
|
1660
1697
|
smalltalk.addMethod(
|
1661
|
-
|
1698
|
+
"_unknownVariables",
|
1662
1699
|
smalltalk.method({
|
1663
|
-
selector:
|
1700
|
+
selector: "unknownVariables",
|
1664
1701
|
fn: function (){
|
1665
1702
|
var self=this;
|
1666
|
-
return (
|
1703
|
+
return smalltalk.send(self['@unknownVariables'], "_copy", []);
|
1667
1704
|
return self;}
|
1668
1705
|
}),
|
1669
|
-
smalltalk.
|
1706
|
+
smalltalk.FunCodeGenerator);
|
1670
1707
|
|
1671
1708
|
smalltalk.addMethod(
|
1672
|
-
|
1709
|
+
"_visit_",
|
1673
1710
|
smalltalk.method({
|
1674
|
-
selector:
|
1675
|
-
fn: function (
|
1711
|
+
selector: "visit:",
|
1712
|
+
fn: function (aNode){
|
1676
1713
|
var self=this;
|
1677
|
-
(self
|
1714
|
+
smalltalk.send(aNode, "_accept_", [self]);
|
1678
1715
|
return self;}
|
1679
1716
|
}),
|
1680
|
-
smalltalk.
|
1717
|
+
smalltalk.FunCodeGenerator);
|
1681
1718
|
|
1682
1719
|
smalltalk.addMethod(
|
1683
|
-
|
1720
|
+
"_visitAssignmentNode_",
|
1684
1721
|
smalltalk.method({
|
1685
|
-
selector:
|
1686
|
-
fn: function (
|
1722
|
+
selector: "visitAssignmentNode:",
|
1723
|
+
fn: function (aNode){
|
1687
1724
|
var self=this;
|
1688
|
-
smalltalk.send(
|
1725
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["("]);
|
1726
|
+
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_left", [])]);
|
1727
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["="]);
|
1728
|
+
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_right", [])]);
|
1729
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [")"]);
|
1689
1730
|
return self;}
|
1690
1731
|
}),
|
1691
|
-
smalltalk.
|
1732
|
+
smalltalk.FunCodeGenerator);
|
1692
1733
|
|
1693
1734
|
smalltalk.addMethod(
|
1694
|
-
|
1735
|
+
"_visitBlockNode_",
|
1695
1736
|
smalltalk.method({
|
1696
|
-
selector:
|
1697
|
-
fn: function (){
|
1737
|
+
selector: "visitBlockNode:",
|
1738
|
+
fn: function (aNode){
|
1698
1739
|
var self=this;
|
1699
|
-
|
1740
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["(function("]);
|
1741
|
+
smalltalk.send(smalltalk.send(aNode, "_parameters", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@tempVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);
|
1742
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["){"]);
|
1743
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1744
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["})"]);
|
1700
1745
|
return self;}
|
1701
1746
|
}),
|
1702
|
-
smalltalk.
|
1747
|
+
smalltalk.FunCodeGenerator);
|
1703
1748
|
|
1704
1749
|
smalltalk.addMethod(
|
1705
|
-
|
1750
|
+
"_visitBlockSequenceNode_",
|
1706
1751
|
smalltalk.method({
|
1707
|
-
selector:
|
1708
|
-
fn: function (){
|
1752
|
+
selector: "visitBlockSequenceNode:",
|
1753
|
+
fn: function (aNode){
|
1709
1754
|
var self=this;
|
1710
|
-
|
1755
|
+
var index=nil;
|
1756
|
+
(self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
|
1757
|
+
((($receiver = smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return nil;"]);})() : (function(){smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
|
1758
|
+
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", ["=nil;"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);(index=(0));return smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [";"]);})]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return nil;"]);}), (function(){smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
|
1759
|
+
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", ["=nil;"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);(index=(0));return smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [";"]);})]);})]));
|
1760
|
+
(self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
|
1711
1761
|
return self;}
|
1712
1762
|
}),
|
1713
|
-
smalltalk.
|
1763
|
+
smalltalk.FunCodeGenerator);
|
1714
1764
|
|
1715
1765
|
smalltalk.addMethod(
|
1716
|
-
|
1766
|
+
"_visitCascadeNode_",
|
1717
1767
|
smalltalk.method({
|
1718
|
-
selector:
|
1719
|
-
fn: function (
|
1768
|
+
selector: "visitCascadeNode:",
|
1769
|
+
fn: function (aNode){
|
1720
1770
|
var self=this;
|
1721
|
-
|
1771
|
+
var index=nil;
|
1772
|
+
(index=(0));
|
1773
|
+
((($receiver = smalltalk.send(self['@tempVariables'], "_includes_", ["$rec"])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@tempVariables'], "_add_", ["$rec"]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@tempVariables'], "_add_", ["$rec"]);})]));
|
1774
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["(function($rec){"]);
|
1775
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));smalltalk.send(each, "_receiver_", [smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode), "_new", []), "_value_", ["$rec"])]);smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [";"]);})]);
|
1776
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["})("]);
|
1777
|
+
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_receiver", [])]);
|
1778
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [")"]);
|
1722
1779
|
return self;}
|
1723
1780
|
}),
|
1724
|
-
smalltalk.
|
1725
|
-
|
1726
|
-
|
1781
|
+
smalltalk.FunCodeGenerator);
|
1727
1782
|
|
1728
|
-
smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
|
1729
1783
|
smalltalk.addMethod(
|
1730
|
-
|
1784
|
+
"_visitClassReferenceNode_",
|
1731
1785
|
smalltalk.method({
|
1732
|
-
selector:
|
1733
|
-
fn: function (){
|
1786
|
+
selector: "visitClassReferenceNode:",
|
1787
|
+
fn: function (aNode){
|
1734
1788
|
var self=this;
|
1735
|
-
return self['@receiver'];
|
1789
|
+
((($receiver = smalltalk.send(self['@referencedClasses'], "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})]));
|
1790
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(smalltalk.", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [" || "]), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [")"])]);
|
1736
1791
|
return self;}
|
1737
1792
|
}),
|
1738
|
-
smalltalk.
|
1793
|
+
smalltalk.FunCodeGenerator);
|
1739
1794
|
|
1740
1795
|
smalltalk.addMethod(
|
1741
|
-
|
1796
|
+
"_visitDynamicArrayNode_",
|
1742
1797
|
smalltalk.method({
|
1743
|
-
selector:
|
1798
|
+
selector: "visitDynamicArrayNode:",
|
1744
1799
|
fn: function (aNode){
|
1745
1800
|
var self=this;
|
1746
|
-
(self['@
|
1801
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["["]);
|
1802
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
|
1803
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["]"]);
|
1747
1804
|
return self;}
|
1748
1805
|
}),
|
1749
|
-
smalltalk.
|
1806
|
+
smalltalk.FunCodeGenerator);
|
1750
1807
|
|
1751
1808
|
smalltalk.addMethod(
|
1752
|
-
|
1809
|
+
"_visitDynamicDictionaryNode_",
|
1753
1810
|
smalltalk.method({
|
1754
|
-
selector:
|
1755
|
-
fn: function (
|
1811
|
+
selector: "visitDynamicDictionaryNode:",
|
1812
|
+
fn: function (aNode){
|
1756
1813
|
var self=this;
|
1757
|
-
smalltalk.send(
|
1814
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["smalltalk.HashedCollection._fromPairs_(["]);
|
1815
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
|
1816
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["])"]);
|
1758
1817
|
return self;}
|
1759
1818
|
}),
|
1760
|
-
smalltalk.
|
1819
|
+
smalltalk.FunCodeGenerator);
|
1761
1820
|
|
1762
|
-
|
1763
|
-
|
1764
|
-
smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
|
1765
1821
|
smalltalk.addMethod(
|
1766
|
-
|
1822
|
+
"_visitFailure_",
|
1767
1823
|
smalltalk.method({
|
1768
|
-
selector:
|
1769
|
-
fn: function (){
|
1824
|
+
selector: "visitFailure:",
|
1825
|
+
fn: function (aFailure){
|
1770
1826
|
var self=this;
|
1771
|
-
|
1827
|
+
smalltalk.send(self, "_error_", [smalltalk.send(aFailure, "_asString", [])]);
|
1772
1828
|
return self;}
|
1773
1829
|
}),
|
1774
|
-
smalltalk.
|
1830
|
+
smalltalk.FunCodeGenerator);
|
1775
1831
|
|
1776
1832
|
smalltalk.addMethod(
|
1777
|
-
|
1833
|
+
"_visitJSStatementNode_",
|
1778
1834
|
smalltalk.method({
|
1779
|
-
selector:
|
1780
|
-
fn: function (
|
1835
|
+
selector: "visitJSStatementNode:",
|
1836
|
+
fn: function (aNode){
|
1781
1837
|
var self=this;
|
1782
|
-
(self['@
|
1838
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(aNode, "_source", [])]);
|
1783
1839
|
return self;}
|
1784
1840
|
}),
|
1785
|
-
smalltalk.
|
1841
|
+
smalltalk.FunCodeGenerator);
|
1786
1842
|
|
1787
1843
|
smalltalk.addMethod(
|
1788
|
-
|
1844
|
+
"_visitMethodNode_",
|
1789
1845
|
smalltalk.method({
|
1790
|
-
selector:
|
1791
|
-
fn: function (){
|
1846
|
+
selector: "visitMethodNode:",
|
1847
|
+
fn: function (aNode){
|
1792
1848
|
var self=this;
|
1793
|
-
|
1849
|
+
var str=nil;
|
1850
|
+
var currentSelector=nil;
|
1851
|
+
(self['@currentSelector']=smalltalk.send(smalltalk.send(aNode, "_selector", []), "_asSelector", []));
|
1852
|
+
(self['@nestedBlocks']=(0));
|
1853
|
+
(self['@earlyReturn']=false);
|
1854
|
+
(self['@messageSends']=[]);
|
1855
|
+
(self['@referencedClasses']=[]);
|
1856
|
+
(self['@unknownVariables']=[]);
|
1857
|
+
(self['@tempVariables']=[]);
|
1858
|
+
(self['@argVariables']=[]);
|
1859
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: \x22", "__comma", [smalltalk.send(aNode, "_selector", [])]), "__comma", ["\x22,"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1860
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("source: ", "__comma", [smalltalk.send(smalltalk.send(self, "_source", []), "_asJavascript", [])]), "__comma", [","])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1861
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["fn: function("]);
|
1862
|
+
smalltalk.send(smalltalk.send(aNode, "_arguments", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@argVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);
|
1863
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", ["){"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["var self=this;"]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
|
1864
|
+
(str=self['@stream']);
|
1865
|
+
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1866
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1867
|
+
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["var $early={};"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["try{"]);})(str);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["var $early={};"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["try{"]);})(str);})]));
|
1868
|
+
smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self['@stream'], "_contents", [])]);
|
1869
|
+
(self['@stream']=str);
|
1870
|
+
(function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["return self;"]);})(self['@stream']);
|
1871
|
+
((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["} catch(e) {if(e===$early)return e[0]; throw e}"]);})(self['@stream']);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["} catch(e) {if(e===$early)return e[0]; throw e}"]);})(self['@stream']);})]));
|
1872
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["}"]);
|
1873
|
+
(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(",", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", ["messageSends: "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@messageSends'], "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("args: ", "__comma", [smalltalk.send(self['@argVariables'], "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["referencedClasses: ["]);})(self['@stream']);
|
1874
|
+
smalltalk.send(self['@referencedClasses'], "_do_separatedBy_", [(function(each){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(each, "_printString", [])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
|
1875
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["]"]);
|
1876
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", ["})"]);
|
1794
1877
|
return self;}
|
1795
1878
|
}),
|
1796
|
-
smalltalk.
|
1879
|
+
smalltalk.FunCodeGenerator);
|
1797
1880
|
|
1798
1881
|
smalltalk.addMethod(
|
1799
|
-
|
1882
|
+
"_visitReturnNode_",
|
1800
1883
|
smalltalk.method({
|
1801
|
-
selector:
|
1802
|
-
fn: function (
|
1884
|
+
selector: "visitReturnNode:",
|
1885
|
+
fn: function (aNode){
|
1803
1886
|
var self=this;
|
1804
|
-
(self['@
|
1887
|
+
((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (self['@earlyReturn']=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (self['@earlyReturn']=true);})]));
|
1888
|
+
((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){throw $early=["]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){throw $early=["]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));
|
1889
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
|
1890
|
+
((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["]})()"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["]})()"]);})]));
|
1805
1891
|
return self;}
|
1806
1892
|
}),
|
1807
|
-
smalltalk.
|
1893
|
+
smalltalk.FunCodeGenerator);
|
1808
1894
|
|
1809
1895
|
smalltalk.addMethod(
|
1810
|
-
|
1896
|
+
"_visitSendNode_",
|
1811
1897
|
smalltalk.method({
|
1812
|
-
selector:
|
1813
|
-
fn: function (){
|
1898
|
+
selector: "visitSendNode:",
|
1899
|
+
fn: function (aNode){
|
1814
1900
|
var self=this;
|
1815
|
-
|
1901
|
+
var str=nil;
|
1902
|
+
var receiver=nil;
|
1903
|
+
var superSend=nil;
|
1904
|
+
var inlined=nil;
|
1905
|
+
(str=self['@stream']);
|
1906
|
+
((($receiver = smalltalk.send(self['@messageSends'], "_includes_", [smalltalk.send(aNode, "_selector", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})]));
|
1907
|
+
(self['@stream']=smalltalk.send("", "_writeStream", []));
|
1908
|
+
smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_receiver", [])]);
|
1909
|
+
(superSend=smalltalk.send(smalltalk.send(self['@stream'], "_contents", []), "__eq", ["super"]));
|
1910
|
+
(receiver=((($receiver = superSend).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "self";})() : (function(){return smalltalk.send(self['@stream'], "_contents", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "self";}), (function(){return smalltalk.send(self['@stream'], "_contents", []);})])));
|
1911
|
+
(self['@stream']=str);
|
1912
|
+
((($receiver = smalltalk.send(self, "_performOptimizations", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));
|
1816
1913
|
return self;}
|
1817
1914
|
}),
|
1818
|
-
smalltalk.
|
1915
|
+
smalltalk.FunCodeGenerator);
|
1819
1916
|
|
1820
1917
|
smalltalk.addMethod(
|
1821
|
-
|
1918
|
+
"_visitSequenceNode_",
|
1822
1919
|
smalltalk.method({
|
1823
|
-
selector:
|
1824
|
-
fn: function (
|
1920
|
+
selector: "visitSequenceNode:",
|
1921
|
+
fn: function (aNode){
|
1825
1922
|
var self=this;
|
1826
|
-
(
|
1923
|
+
smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
|
1924
|
+
(temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", ["=nil;"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);
|
1925
|
+
smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [";"]);}), (function(){return smalltalk.send(self['@stream'], "_lf", []);})]);
|
1827
1926
|
return self;}
|
1828
1927
|
}),
|
1829
|
-
smalltalk.
|
1928
|
+
smalltalk.FunCodeGenerator);
|
1830
1929
|
|
1831
1930
|
smalltalk.addMethod(
|
1832
|
-
|
1931
|
+
"_visitValueNode_",
|
1833
1932
|
smalltalk.method({
|
1834
|
-
selector:
|
1835
|
-
fn: function (
|
1933
|
+
selector: "visitValueNode:",
|
1934
|
+
fn: function (aNode){
|
1836
1935
|
var self=this;
|
1837
|
-
smalltalk.send(
|
1936
|
+
smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(aNode, "_value", []), "_asJavascript", [])]);
|
1838
1937
|
return self;}
|
1839
1938
|
}),
|
1840
|
-
smalltalk.
|
1939
|
+
smalltalk.FunCodeGenerator);
|
1841
1940
|
|
1941
|
+
smalltalk.addMethod(
|
1942
|
+
"_visitVariableNode_",
|
1943
|
+
smalltalk.method({
|
1944
|
+
selector: "visitVariableNode:",
|
1945
|
+
fn: function (aNode){
|
1946
|
+
var self=this;
|
1947
|
+
var varName=nil;
|
1948
|
+
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_currentClass", []), "_allInstanceVariableNames", []), "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send("self['@", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", ["']"])]);})() : (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send("self['@", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", ["']"])]);}), (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})]));
|
1949
|
+
return self;}
|
1950
|
+
}),
|
1951
|
+
smalltalk.FunCodeGenerator);
|
1842
1952
|
|
1843
1953
|
|
1844
|
-
smalltalk.
|
1954
|
+
smalltalk.FunCodeGenerator.klass.iVarNames = ['performOptimizations'];
|
1845
1955
|
smalltalk.addMethod(
|
1846
|
-
|
1956
|
+
"_performOptimizations",
|
1847
1957
|
smalltalk.method({
|
1848
|
-
selector:
|
1849
|
-
fn: function (
|
1958
|
+
selector: "performOptimizations",
|
1959
|
+
fn: function (){
|
1850
1960
|
var self=this;
|
1851
|
-
(
|
1852
|
-
smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
|
1853
|
-
(function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
|
1854
|
-
smalltalk.send(aStream, "_lf", []);
|
1961
|
+
return (($receiver = self['@performOptimizations']) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver;
|
1855
1962
|
return self;}
|
1856
1963
|
}),
|
1857
|
-
smalltalk.
|
1964
|
+
smalltalk.FunCodeGenerator.klass);
|
1858
1965
|
|
1859
1966
|
smalltalk.addMethod(
|
1860
|
-
|
1967
|
+
"_performOptimizations_",
|
1861
1968
|
smalltalk.method({
|
1862
|
-
selector:
|
1863
|
-
fn: function (
|
1969
|
+
selector: "performOptimizations:",
|
1970
|
+
fn: function (aBoolean){
|
1864
1971
|
var self=this;
|
1865
|
-
(
|
1972
|
+
(self['@performOptimizations']=aBoolean);
|
1866
1973
|
return self;}
|
1867
1974
|
}),
|
1868
|
-
smalltalk.
|
1869
|
-
|
1975
|
+
smalltalk.FunCodeGenerator.klass);
|
1870
1976
|
|
1871
1977
|
|