fix firefox setTimeout bug