unaryarith-string.js (2269B)
1 setJitCompilerOption('ion.forceinlineCaches', 1); 2 3 function warmup(fun, input_array, output_array) { 4 assertEq(output_array.length, input_array.length); 5 for (var index = 0; index < input_array.length; index++) { 6 input = input_array[index]; 7 output = output_array[index]; 8 for (var i = 0; i < 30; i++) { 9 var y = fun(input); 10 assertEq(y, output) 11 } 12 } 13 } 14 15 // Unary - operator with transition between string representations of int32 and double. 16 var fun_neg_int32_double = (x) => { return -x; } 17 var fun_neg_double_int32 = (x) => { return -x; } 18 19 // Unary ~ operator using string representations of either int32 or double. 20 var fun_bitnot_int32 = (x) => { return ~x; } 21 var fun_bitnot_double = (x) => { return ~x; } 22 23 // Unary ++ operator using string representations of either int32 or double. 24 var fun_inc_int32 = (x) => { return ++x; } 25 var fun_inc_double = (x) => { return ++x; } 26 27 // Unary -- operator using string representations of either int32 or double. 28 var fun_dec_int32 = (x) => { return --x; } 29 var fun_dec_double = (x) => { return --x; } 30 31 // Unary + operator using string representations of either int32 or double. 32 var fun_pos_int32 = (x) => { return +x; } 33 var fun_pos_double = (x) => { return +x; } 34 35 // JSOp::ToNumeric using string representations of either int32 or double. 36 var fun_tonumeric_int32 = (x) => { return x++; } 37 var fun_tonumeric_double = (x) => { return x++; } 38 39 warmup(fun_neg_int32_double, ["1", "2", "-3"], [-1, -2, 3]); 40 warmup(fun_neg_double_int32, ["0"], [-0]); 41 42 warmup(fun_neg_double_int32, ["3", "4", "-5"], [-3, -4, 5]); 43 warmup(fun_neg_int32_double, ["1.2", "1.4"], [-1.2, -1.4]); 44 45 warmup(fun_bitnot_int32, ["-1", "0"], [0, -1]); 46 warmup(fun_bitnot_double, ["-1.0", "0.0", "1.2", "3"], [0, -1, -2, -4]); 47 48 warmup(fun_inc_int32, ["-1", "0"], [0, 1]); 49 warmup(fun_inc_double, ["-1.0", "0.0", "1.2", "3"], [0, 1, 2.2, 4]); 50 51 warmup(fun_dec_int32, ["-1", "0"], [-2, -1]); 52 warmup(fun_dec_double, ["-1.0", "0.0", "1.5", "3"], [-2, -1, 0.5, 2]); 53 54 warmup(fun_pos_int32, ["-1", "0"], [-1, 0]); 55 warmup(fun_pos_double, ["-1.0", "0.0", "1.2", "3"], [-1.0, 0.0, 1.2, 3]); 56 57 warmup(fun_tonumeric_int32, ["-1", "0"], [-1, 0]); 58 warmup(fun_tonumeric_double, ["-1.0", "0.0", "1.2", "3"], [-1.0, 0.0, 1.2, 3]);