Spaces:
Running
Running
| JS code generator | |
| emitJSConstantsOn: aStream | |
| "Store the global variable declarations on the given stream." | |
| | unused constList node | | |
| unused := constants keys asSet. | |
| methods do: [ :meth | | |
| meth parseTree nodesDo: [ :n | | |
| n isConstant ifTrue: [ unused remove: n name ifAbsent: []]]]. | |
| constList := constants keys reject: [ :any | unused includes: any]. | |
| constList isEmpty ifTrue: [^self]. | |
| aStream nextPutAll: '/*** Constants ***/'; | |
| cr. | |
| constList asSortedCollection do: [ :varName | | |
| node := constants at: varName. | |
| node name isEmpty ifFalse: [ | |
| aStream nextPutAll: 'var '. | |
| aStream nextPutAll: node name. | |
| aStream nextPutAll: ' = '. | |
| aStream nextPutAll: (self jsLiteralFor: node value). | |
| aStream nextPut: $;. | |
| aStream cr | |
| ]. | |
| ]. | |
| aStream cr. |