Spaces:
Running
Running
scratch0-5 / utils /VMMakerJS.package /TCaseStmtNode.extension /instance /emitJSCodeOn.level.generator..st
| *vmmakerjs | |
| emitJSCodeOn: aStream level: level generator: aCodeGen | |
| | indent | | |
| indent := (String new: level) collect: [ :ch | Character tab ]. | |
| aStream nextPutAll: 'switch ('. | |
| expression asExpression emitJSCodeOn: aStream level: level generator: aCodeGen. | |
| aStream nextPutAll: ') {'; cr. | |
| 1 to: cases size do: [ :i | | |
| (firsts at: i) to: (lasts at: i) do: [ :caseIndex | | |
| aStream nextPutAll: indent, 'case ', caseIndex printString, ':'; cr. | |
| ]. | |
| (cases at: i) emitJSCodeOn: aStream level: level + 1 generator: aCodeGen. | |
| aStream nextPutAll: indent; tab; nextPutAll: 'break;'. | |
| aStream cr. | |
| ]. | |
| level timesRepeat: [ aStream tab ]. | |
| aStream nextPutAll: '}'. |