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:
awaitclassconstenumexportsextendsimplementsimportinterfaceletpackageprivateprotectedpublicstaticsuperyieldUse of these words as identifiers would produce an error in JavaScript strict mode code.
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