use raf for testing asynchrony for better compat with O.o