check for invalid binding identifiers when generating inferred method names - fixes #1794

This commit is contained in:
Sebastian McKenzie
2015-06-20 21:48:42 +01:00
parent 2412c1d502
commit 498297ce6b
4 changed files with 25 additions and 3 deletions

View File

@@ -111,8 +111,7 @@ export function property(node, file, scope) {
var key = t.toComputedKey(node, node.key);
if (!t.isLiteral(key)) return; // we can't set a function id with this
var name = t.toIdentifier(key.value);
if (name === "eval" || name === "arguments") name = "_" + name;
var name = t.toBindingIdentifierName(key.value);
var id = t.identifier(name);
var method = node.value;
@@ -153,7 +152,7 @@ export function bare(node, parent, scope) {
return;
}
name = t.toIdentifier(name);
name = t.toBindingIdentifierName(name);
id = t.identifier(name);
var state = visit(node, name, scope);

View File

@@ -154,6 +154,17 @@ export function toIdentifier(name: string): string {
return name || "_";
}
/*
* Description
*/
export function toBindingIdentifierName(name) {
name = toIdentifier(name);
if (name === "eval" || name === "arguments") name = "_" + name;
return name;
}
/**
* Description
*