@@ -265,7 +265,7 @@ export function evaluateUnaryExpression(operator: TokenType, value: Value, comma
265265 }
266266 default :
267267 // handleRuntimeError(context, new UnsupportedOperandTypeError(...));
268- return { type : 'error' , message : `Unsupported operand for -: '${ value . type } '` } ;
268+ return { type : 'error' , message : `TypeError: Unsupported operand for -: '${ value . type } '` } ;
269269 }
270270
271271 case TokenType . PLUS :
@@ -278,7 +278,7 @@ export function evaluateUnaryExpression(operator: TokenType, value: Value, comma
278278 return { type : 'bigint' , value : value . value ? 1n : 0n } ;
279279 default :
280280 // handleRuntimeError(context, new UnsupportedOperandTypeError(...));
281- return { type : 'error' , message : `Unsupported operand for +: '${ value . type } '` } ;
281+ return { type : 'error' , message : `TypeError: Unsupported operand for +: '${ value . type } '` } ;
282282 }
283283 }
284284 return { type : 'error' , message : 'Unreachable unary operator' } ;
@@ -399,7 +399,7 @@ export function evaluateBinaryExpression(code: string, command: ExprNS.Expr, con
399399 return { type : 'number' , value : Number ( l ) / Number ( r ) } ;
400400 case TokenType . DOUBLESLASH :
401401 if ( r === 0n ) return { type : 'error' , message : 'ZeroDivisionError: integer division or modulo by zero' } ;
402- return { type : 'bigint' , value : l / r } ;
402+ return { type : 'bigint' , value : ( l - ( pythonMod ( l , r ) as bigint ) ) / r } ;
403403 case TokenType . PERCENT :
404404 if ( r === 0n ) return { type : 'error' , message : 'ZeroDivisionError: integer division or modulo by zero' } ;
405405 return { type : 'bigint' , value : pythonMod ( l , r ) } ;
0 commit comments