message: Fix tokenName property when using token inheritance without polyfills.
  Fixes
diff: -import {isString, isRegExp, isFunction, isUndefined, assignNoOverwrite, has} from "../utils/utils"
  +import {isString, isRegExp, isFunction, isUndefined, assignNoOverwrite, has, isObject} from "../utils/utils"
  import {functionName, defineNameProp} from "../lang/lang_extensions"
  import {Lexer, TokenConstructor} from "./lexer_public"
  import {
  @@ -77,7 +77,7 @@ export function tokenName(clazz:Function):string {
  // where the Function.prototype.name property is not defined as a 'configurable' property
  // enable producing readable error messages.
  /* istanbul ignore if -> will only run in old versions of node.js */
  - if (isString((<any>clazz).tokenName)) {
  + if (isObject(clazz) && clazz.hasOwnProperty("tokenName") && isString((<any>clazz).tokenName)) {
  return (<any>clazz).tokenName
  }
  else {
  