Spaces:
Running
Running
scratch0-5 / utils /VMMakerJS.package /JSMethod.class /instance /emitJSFunctionHeader.generator.newlineBeforeName..st
| JS code generation | |
| emitJSFunctionHeader: aStream generator: aCodeGen newlineBeforeName: newlineBeforeName "<Boolean>" | |
| "Emit a JS function header for this method onto the given stream." | |
| aStream nextPutAll: 'function'. | |
| newlineBeforeName ifTrue: [aStream cr] ifFalse: [aStream space]. | |
| (returnType last = $) | |
| and: [returnType includesSubString: (aCodeGen jsFunctionNameFor: self selectorForCodeGeneration)]) ifTrue: | |
| ["Hack fix for e.g. <returnTypeC: 'void (*setInterruptCheckChain(void (*aFunction)(void)))()'>" | |
| ^self]. | |
| aStream | |
| nextPutAll: (aCodeGen jsFunctionNameFor: self selectorForCodeGeneration); | |
| nextPut: $(. | |
| args | |
| do: [:arg | aStream nextPutAll: (aCodeGen returnPrefixFromVariable: arg)] | |
| separatedBy: [ aStream nextPutAll: ', ' ]. | |
| aStream nextPut: $) |