isValidIdentifierName = name => {
  // Ensure we have a valid identifier. We use regexpTest rather than
  // /../.test() to guard against the case where RegExp has been poisoned.
  return (
    name !== 'eval' &&
    !arrayIncludes(keywords, name) &&
    regexpTest(identifierPattern, name)
  );
}
isValidIdentifierName()
What variable names might it bring into scope? These include all
property names which can be variable names, including the names
of inherited properties. It excludes symbols and names which are
keywords. We drop symbols safely. Currently, this shim refuses
service if any of the names are keywords or keyword-like. This is
safe and only prevent performance optimization.

@param {string} name