The following words may be used as keywords in future evolutions of the language, so using them as identifiers should be avoided to allow an easier adoption of those potential future versions:
await class const enum export extends implements import interface let package private protected public static super yield Use of these words as identifiers would produce an error in JavaScript strict mode code.
This list includes also the keywords that have been adopted by the latest versions of ECMAScript. They are kept to support legacy JavaScript codebases.
var package = document.getElementsByName("foo"); // Noncompliant
var someData = { package: true }; // Compliant, as it is not used as an identifier here
var elements = document.getElementsByName("foo"); // Compliant