javascript is a cruel mistress