Most often, in a general-purpose imperative language - semicolons as statement-delimiters are either required, or completely disallowed (e.g. C and Python).
However, some languages, like JavaScript, allow you to opt out of delimiting your statements with semicolons, in favor of other delimiters (such as a newline).
What are the design decisions behind this? I understand that semicolons are essential when writing multiple statements on the same line, but is there another reason to make them mandatory (except following C)?
I understand that semicolons are essential when writing multiple statements on the same line- Depends on the language. My favored one has no such delimiters at all, the next statement begins when all function arguments have been used up.}or at end-of-file).