In C, if a compiler wants to provide implementation-defined identifiers (language extensions, intrinsics, pseudo-functions and pseudo-macros, basically anything that's not a reserved keyword by the language standard but also isn't a regular function) the convention is for the names to be prefixed with an underscore; it is understood that code should not use such names for normal purposes.
Is there an equivalent convention in JavaScript? Or, if a JavaScript compiler wants to provide implementation-defined identifiers for special purposes, and avoid collisions with identifiers normally used in code, what is the best way for it to do so?