diff --git a/packages/entity/traits/index.js b/packages/entity/traits/index.js index 2cf81ea..bc0ef31 100644 --- a/packages/entity/traits/index.js +++ b/packages/entity/traits/index.js @@ -88,6 +88,14 @@ export class Traits { // Instantiate. const {params, state} = json; const instance = new Trait(this.entity_PRIVATE, params, state); + // Proxy properties. + const properties = enumerateProperties(Trait.prototype); + for (const key in properties) { + properties[key].instance = instance; + this.properties_PRIVATE[key] = properties[key]; + } + // Let the Trait do its initialization. + instance.initialize(); // Attach listeners. const listeners = instance.listeners(); for (const eventName in listeners) { @@ -110,14 +118,6 @@ export class Traits { type: Trait.type(), }); } - // Proxy properties. - const properties = enumerateProperties(Trait.prototype); - for (const key in properties) { - properties[key].instance = instance; - this.properties_PRIVATE[key] = properties[key]; - } - // Let the Trait do its initialization. - instance.initialize(); // Add state. this._setInstanceState(type, instance); // Track trait.