Runtime errors are now reported as exceptions.
Regular Expression changes:
Quantifiers — +, *, ? and {} — can now be followed by a ? to force them to be non-greedy.
Non-capturing parentheses, (?:x) can be used instead of capturing parentheses, (x). When non-capturing parentheses are used, matched subexpressions are not available as back-references.
Positive and negative lookahead assertions are supported. Both assert a match depending on what follows the string being matched.
The m flag has been added to specify that the regular expression should match over multiple lines.
Functions can now be declared inside an if clause.
Functions can now be declared inside an expression.