1398 "/ valueNeeded ifTrue:[aStream nextPut:#pushNil]. |
1398 "/ valueNeeded ifTrue:[aStream nextPut:#pushNil]. |
1399 "/ |
1399 "/ |
1400 needLineNr := true. |
1400 needLineNr := true. |
1401 |
1401 |
1402 pos := aStream position. |
1402 pos := aStream position. |
|
1403 |
|
1404 aCompiler lineNumberInfo == #full ifTrue:[ |
|
1405 ParseNode codeLineNumber:lineNr on:aStream for:aCompiler. |
|
1406 ]. |
|
1407 |
1403 optByteCode notNil ifTrue:[ |
1408 optByteCode notNil ifTrue:[ |
1404 theReceiver codeOn:aStream inBlock:b for:aCompiler. |
1409 theReceiver codeOn:aStream inBlock:b for:aCompiler. |
1405 theArg notNil ifTrue:[ |
1410 theArg notNil ifTrue:[ |
1406 theArg codeOn:aStream inBlock:b for:aCompiler |
1411 theArg codeOn:aStream inBlock:b for:aCompiler |
1407 ] |
1412 ] |
1440 "/ |
1445 "/ |
1441 "/ cannot enable code below |
1446 "/ cannot enable code below |
1442 "/ (tiny loops would not be debuggable with next, since lineNo remains the same) |
1447 "/ (tiny loops would not be debuggable with next, since lineNo remains the same) |
1443 "/ think about it ... |
1448 "/ think about it ... |
1444 "/ |
1449 "/ |
1445 "/ blockExpr := theReceiver simpleSendBlockReceiver. |
1450 blockExpr := theReceiver simpleSendBlockExpression. |
1446 "/ blockExpr notNil ifTrue:[ |
1451 blockExpr notNil ifTrue:[ |
1447 "/ blockExpr isMessage ifTrue:[ |
1452 blockExpr isMessage ifTrue:[ |
1448 "/ (aCompiler hasLineNumber:(blockExpr selector)) ifTrue:[ |
1453 (aCompiler hasLineNumber:(blockExpr selector)) ifTrue:[ |
1449 "/ blockExpr lineNumber == lineNr ifTrue:[ |
1454 blockExpr lineNumber == lineNr ifTrue:[ |
1450 "/ needLineNr := false |
1455 needLineNr := false |
1451 "/ ] |
1456 ] |
1452 "/ ] |
1457 ] |
1453 "/ ] |
1458 ] |
1454 "/ ]. |
1459 ]. |
1455 ]. |
1460 ]. |
1456 |
1461 |
1457 needLineNr ifTrue:[ |
1462 needLineNr ifTrue:[ |
1458 (lineNr between:1 and:255) ifTrue:[ |
1463 ParseNode codeLineNumber:lineNr on:aStream for:aCompiler. |
1459 aStream nextPut:#lineno; nextPut:lineNr. |
|
1460 ] |
|
1461 ]. |
1464 ]. |
1462 |
1465 |
1463 hasLoopBlock ifFalse:[ |
1466 hasLoopBlock ifFalse:[ |
1464 "/ simple [...] whileXXX |
1467 "/ simple [...] whileXXX |
1465 theByteCode ~~ #never ifTrue:[ |
1468 theByteCode ~~ #never ifTrue:[ |