As @DrAzzy says, Espruino will let you use those peripherals (and many more) in the same program .
What it can't do is transmit on all of them at the same time.
Having said that, it depends what you want to use I2C for. Espruino can act as an I2C master (so controlling other things), but not as a client. If you want a nice way of sending data to it I'd recommend the USART - which uses IRQs so can work concurrently.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
As @DrAzzy says, Espruino will let you use those peripherals (and many more) in the same program .
What it can't do is transmit on all of them at the same time.
Having said that, it depends what you want to use I2C for. Espruino can act as an I2C master (so controlling other things), but not as a client. If you want a nice way of sending data to it I'd recommend the USART - which uses IRQs so can work concurrently.