Just to expand on that a bit for anyone who might not know this:
var s = new String('foo');
typeof s; // 'object'
That is, when you use the `new` keyword, you get back an object instead of a primitive. Since symbols are always primitives, disallowing the `new` keyword actually prevents inconsistency with the rest of the language in the sense that it doesn't allow you to create non-objects with a constructor.