Files
ask262/engine262/src/static-semantics/PropName.mts
T

24 lines
602 B
TypeScript

import type { ParseNode } from '../parser/ParseNode.mts';
export function PropName(node: ParseNode): string | undefined {
switch (node.type) {
case 'IdentifierName':
return node.name;
case 'StringLiteral':
return node.value;
case 'MethodDefinition':
case 'GeneratorMethod':
case 'AsyncGeneratorMethod':
case 'AsyncMethod':
case 'FieldDefinition':
return PropName(node.ClassElementName);
case 'PropertyDefinition':
if (node.PropertyName) {
return PropName(node.PropertyName);
}
break;
default:
}
return undefined;
}