<!-- Please make sure to provide a **minimal and self-contained reproduction** if you are reporting a bug. You can use the following jsfiddle template or make an example github repository. https://jsfiddle.net/ktsn/nm55jnjk/ For usage questions, please use the following resources: * Ask on the forum https://forum.vuejs.org * Ask on the chat room https://chat.vuejs.org * Look for / ask questions on Stack Overflow --> Example: I want to write `Static` decorator which can be used to add non-reactive instance properties with initial value. Something like this: ```javascript const Static = () => { return createDecorator((opts, key, descriptor) => { descriptor.enumerable = false; const initialValue = typeof descriptor.initializer === 'function' ? descriptor.initializer() : undefined; const beforeCreate = function() { this[key] = initialValue; }; (opts.mixins || (opts.mixins = [])).push({ beforeCreate }); }); }; ``` But `descriptor` is `undefined` because of these lines in `createDecorator`: ```javascript if (typeof index !== 'number') { index = undefined; } ```