refactor: Trait::initialize before hooks, actions, and listeners
This commit is contained in:
parent
5e8805fde1
commit
3b50c134d0
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user