diff --git a/src/babel/transformation/helpers/name-method.js b/src/babel/transformation/helpers/name-method.js index 6c0b78dca7..8d3c7693d9 100644 --- a/src/babel/transformation/helpers/name-method.js +++ b/src/babel/transformation/helpers/name-method.js @@ -99,6 +99,7 @@ export function property(node, file, scope) { if (!t.isLiteral(key)) return node; // we can't set a function id with this var name = t.toIdentifier(key.value); + if (name === "eval" || name === "arguments") name = "_" + name; var id = t.identifier(name); var method = node.value; diff --git a/src/babel/types/validators.js b/src/babel/types/validators.js index 9fb1403c5b..2c57deac1d 100644 --- a/src/babel/types/validators.js +++ b/src/babel/types/validators.js @@ -115,9 +115,7 @@ export function isReferencedIdentifier(node: Object, parent: Object, opts?: Obje */ export function isValidIdentifier(name: string): boolean { - if (!isString(name)) return false; - if (esutils.keyword.isReservedWordES6(name, true)) return false; - if (name === "eval" || name === "arguments") return false; + if (!isString(name) || esutils.keyword.isReservedWordES6(name, true)) return false; return esutils.keyword.isIdentifierNameES6(name); }