import checkForDupes from '../utils/checkForDupes.js'; import checkForComputedKeys from '../utils/checkForComputedKeys.js'; const builtin = { set: true, get: true, on: true, fire: true, observe: true, teardown: true }; export default function methods ( validator, prop ) { if ( prop.value.type !== 'ObjectExpression' ) { validator.error( `The 'methods' property must be an object literal`, prop.start ); return; } checkForDupes( validator, prop.value.properties ); checkForComputedKeys( validator, prop.value.properties ); prop.value.properties.forEach( prop => { if ( builtin[ prop.key.name ] ) { validator.error( `Cannot overwrite built-in method '${prop.key.name}'` ); } }); }