From 652d3c73208d53bcc00f878cd71c3ffd9652cce6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 11 Apr 2015 20:51:01 -0700 Subject: [PATCH] move eval and arguments identifier handling to nameMethod helper --- src/babel/transformation/helpers/name-method.js | 1 + src/babel/types/validators.js | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) 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); }