|  |  |  | @ -33,7 +33,7 @@ export function ClassBody(node, context) { | 
			
		
	
		
			
				
					|  |  |  |  | 	/** @type {Map<string | number, StateField>} */ | 
			
		
	
		
			
				
					|  |  |  |  | 	const state_fields = new Map(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** @type {Map<string, Array<MethodDefinition['kind'] | 'prop' | 'assigned_prop'>>} */ | 
			
		
	
		
			
				
					|  |  |  |  | 	/** @type {Map<string | number, Array<MethodDefinition['kind'] | 'prop' | 'assigned_prop'>>} */ | 
			
		
	
		
			
				
					|  |  |  |  | 	const fields = new Map(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	context.state.analysis.classes.set(node, state_fields); | 
			
		
	
	
		
			
				
					|  |  |  | @ -62,12 +62,15 @@ export function ClassBody(node, context) { | 
			
		
	
		
			
				
					|  |  |  |  | 				e.state_field_duplicate(node, name); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			const _key = (node.type === 'AssignmentExpression' || !node.static ? '' : '@') + name; | 
			
		
	
		
			
				
					|  |  |  |  | 			const _key = | 
			
		
	
		
			
				
					|  |  |  |  | 				typeof name === 'string' | 
			
		
	
		
			
				
					|  |  |  |  | 					? (node.type === 'AssignmentExpression' || !node.static ? '' : '@') + name | 
			
		
	
		
			
				
					|  |  |  |  | 					: name; | 
			
		
	
		
			
				
					|  |  |  |  | 			const field = fields.get(_key); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			// if there's already a method or assigned field, error
 | 
			
		
	
		
			
				
					|  |  |  |  | 			if (field && !(field.length === 1 && field[0] === 'prop')) { | 
			
		
	
		
			
				
					|  |  |  |  | 				e.duplicate_class_field(node, _key); | 
			
		
	
		
			
				
					|  |  |  |  | 				e.duplicate_class_field(node, typeof _key === 'string' ? _key : '[computed key]'); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			state_fields.set(name, { | 
			
		
	
	
		
			
				
					|  |  |  | @ -148,7 +151,7 @@ export function ClassBody(node, context) { | 
			
		
	
		
			
				
					|  |  |  |  | 			continue; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		let deconflicted = `${typeof name === 'number' ? '0' : ''}${name}`.replace( | 
			
		
	
		
			
				
					|  |  |  |  | 		let deconflicted = `${typeof name === 'number' ? '_' : ''}${name}`.replace( | 
			
		
	
		
			
				
					|  |  |  |  | 			regex_invalid_identifier_chars, | 
			
		
	
		
			
				
					|  |  |  |  | 			'_' | 
			
		
	
		
			
				
					|  |  |  |  | 		); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |