The first two values use two bytes each. The decoder won’t automatically add the other bytes for you. So, you’d need:
// LSB (least significant byte first):
var temperature = bytes[1]<<8 | bytes[0];
var pressure = bytes[3]<<8 | bytes[2];
Also, to support negative temperatures, you’ll want to read my notes about sign-extension above, and use:
// LSB (least significant byte first) and sign-extension to get 4 bytes
// for proper decoding of negative values:
var temperature = bytes[1]<<24>>16 | bytes[0];