Spaces:
Running
Running
File size: 688 Bytes
8f3f8db |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
JS hacks
emitJSSpecialOn: aStream level: level generator: aCodeGen
| expr type |
aCodeGen pluginName = 'B2DPlugin' ifFalse: [^false].
(returnType includes: $*) ifFalse: [^false].
parseTree statements first isReturn ifFalse: [^false].
expr := parseTree statements first expression.
expr isSend ifFalse: [^false].
type := returnType.
expr selector = #cCoerce:to: ifTrue: [
type = expr args second value ifFalse: [self halt].
expr := expr args first.
].
expr selector = #+ ifFalse: [^false].
aStream tab: level; nextPutAll: 'return '.
expr emitJSPointerArithmetic: type on: aStream level: level generator: aCodeGen type: type top: true.
aStream nextPutAll: ';'; cr.
^true
|