When using the pattern of
@Component({
components: { foo: require('./foo.vue') }
})
class ...
foo.vue's class will be created during the initialization of its calling class.
This will end up applying all property decorators (eg, @Watch from https://github.com/kaorun343/vue-property-decorator) to Foo instead of the calling class.
To fix this, you need to change $decoratorQueue to a stack so that you can differentiate between properties applied to different reentrant class definitions.