Hyphenate words with a special meaning in JavaScript.
caller, constructor, length, name, unwatch, watch, abstract, as, boolean, break, byte, case, catch, char, class, continue, const, debugger, default, delete, do, double, else, enum, export, extends, false, final, finally, float, for, function, goto, if, implements, import, in, instanceof, int, interface, is, long, namespace, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, typeof, use, var, void, volatile, while, with
caller, con|struc|tor, length, name, un|watch, watch, ab|stract, as, boolean, break, byte, case, catch, char, class, con|tinue, const, de|bug|ger, de|fault, delete, do, dou|ble, else, enum, ex|port, ex|tends, false, fi|nal, fi|nally, float, for, func|tion, goto, if, im|ple|ments, im|port, in, in|stanceof, int, in|ter|face, is, long, name|space, na|tive, new, null, pack|age, pri|vate, pro|tected, pub|lic, re|turn, short, sta|tic, su|per, switch, syn|chro|nized, this, throw, throws, tran|sient, true, try, typeof, use, var, void, volatile, while, with