@@ -50,19 +50,19 @@ public Section run(Script script, StringBuilder sb) {
5050 case Modulo : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number (a .getNumber () % b .getNumber ())); else error ("Can only modulo 2 numbers." ); break ; }
5151 case Power : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number (Math .pow (a .getNumber (), b .getNumber ()))); else error ("Can only power 2 numbers." ); break ; }
5252
53- case BitwiseAnd : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) & (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
54- case BitwiseOr : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) | (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
55- case BitwiseXor : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) ^ (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
56- case LeftShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) << (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
57- case RightShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) >> (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
58- case UnsignedRightShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((( int ) a .getNumber ()) >>> (( int ) b .getNumber () ))); else error ("This operation requires 2 numbers." ); break ; }
53+ case BitwiseAnd : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () & (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
54+ case BitwiseOr : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () | (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
55+ case BitwiseXor : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () ^ (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
56+ case LeftShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () << (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
57+ case RightShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () >> (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
58+ case UnsignedRightShift : { Value b = pop (); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number ((long ) a .getNumber () >>> (long ) b .getNumber ())); else error ("This operation requires 2 numbers." ); break ; }
5959
6060 case AddConstant : { Value b = script .constants .get (script .code [ip ++] & 0xFF ); Value a = pop (); if (a .isNumber () && b .isNumber ()) push (Value .number (a .getNumber () + b .getNumber ())); else if (a .isString ()) push (Value .string (a .getString () + b .toString ())); else error ("Can only add 2 numbers or 1 string and other value." ); break ; }
6161
6262 case Pop : pop (); break ;
6363 case Not : push (Value .bool (!pop ().isTruthy ())); break ;
6464 case Negate : { Value a = pop (); if (a .isNumber ()) push (Value .number (-a .getNumber ())); else error ("This operation requires a number." ); break ; }
65- case BitwiseNot : { Value a = pop (); if (a .isNumber ()) push (Value .number (~((int ) a .getNumber ()))); else error ("This operation requires a number." ); break ; }
65+ case BitwiseNot : { Value a = pop (); if (a .isNumber ()) push (Value .number (~((long ) a .getNumber ()))); else error ("This operation requires a number." ); break ; }
6666
6767 case Equals : push (Value .bool (pop ().equals (pop ()))); break ;
6868 case NotEquals : push (Value .bool (!pop ().equals (pop ()))); break ;
0 commit comments