Identifiers with special meaning become keywords in certain syntactic contexts:
In a for-each-in statement between the 'for' token and the '(' token:
each
In a function definition between the 'function' token and an identifier token:
get set
As the first word of a directive:
namespace include
In an attribute list or wherever an attribute list can be used:
dynamic final native override static
It is a syntax error to use a syntactic keyword in a context where it is treated as a keyword:
namespace = "hello"
namespace()
In these cases, the grammar requires an identifier after the namespace keyword.