- Remove labels. They clutter the syntax for no real gain compared to what PHP did.
- Replace with break and continue statements taking an optional positive integer (default 1), breaking that many loops out.
- Match statement (See match.js)
- [[call]] special property in object literal syntax.
- [[prototype]] special property in object literal syntax.
- 'self' lexical variable that refers to current object.
- 'self(integer n)' lexical function that refers to the nth highest object literal. This looks ugly, but that's intentional. Note that the integer passed must be a literal integer.
- Mixins via the [[prototype]] property being an array. First go through the prototype chain of the first object in the array. If not found, go through the second. Ect. ect. Until the end. If not found, the key is empty, and return undefined.
- arraylike(v) -> true iff 'length' in v and v.length is numeric.
- callable(v) -> true iff 'v's [[call]] property is not null.