\lstdefinelanguage{lJavascript}{
number suffixes={eEn},
   morekeywords=[1]{abstract,arguments,break,case,const,continue,debugger,default,delete,do,else,final,finally,for,function,goto,if,implements,in,instanceof,interface,let,native,new,package,private,protected,public,return,static,switch,synchronized,this,throw,throws,transient,typeof,var,void,volatile,while,with,yield,class,enum,export,extends,import,super,async,await,try,catch
   },
   morekeywords=[2]{false,null,true,number,char,double,byte,int,short,long,float,undefined,Array,Boolean,Date,Math,Number,String,Object,Promise},
   morekeywords=[3]{eval,parseInt,parseFloat,escape,unescape,require},
   morekeywords=[4]{setTimeout,setImmediate,console,then,resolve,reject},
   sensitive,
   alsoletter={\$_},
   morestring=[b]`,
   morecomment=[s]{/*}{*/},
   morecomment=[l]//,
   morestring=[b]',
   morestring=[b]"
}

\RegisterLanguage{javascript}{lJavascript}