// $ babel-node --optional es7.decorators index.js class Assert { private(target, name, descriptor) { let value; descriptor.set = (val) => { value = val; } descriptor.get = () => { return value; } } required(target, name, descriptor) { let original = descriptor.set; descriptor.set = (val) => { console.assert(val !== undefined, `${name} is required`); original(val); } } validate(target, name, descr