Skip to content

Commit

Permalink
Merge pull request #15169 from emberjs/avoid-extra-meta-lookup
Browse files Browse the repository at this point in the history
[BUGFIX Beta] [PERF] avoid extra `meta` lookup in constructor
  • Loading branch information
stefanpenner committed Apr 26, 2017
2 parents 7932a8d + 34705d1 commit ebdc828
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
13 changes: 8 additions & 5 deletions packages/ember-metal/lib/events.js
Expand Up @@ -200,16 +200,19 @@ export function watchedEvents(obj) {
@param {String} eventName
@param {Array} params Optional parameters for each listener.
@param {Array} actions Optional array of actions (listeners).
@param {Meta} meta Optional meta to lookup listeners
@return true
@public
*/
export function sendEvent(obj, eventName, params, actions) {
if (!actions) {
let meta = peekMeta(obj);
actions = meta && meta.matchingListeners(eventName);
export function sendEvent(obj, eventName, params, actions, _meta) {
if (actions === undefined) {
let meta = _meta || peekMeta(obj);
actions = typeof meta === 'object' &&
meta !== null &&
meta.matchingListeners(eventName);
}

if (!actions || actions.length === 0) { return; }
if (actions === undefined || actions.length === 0) { return; }

for (let i = actions.length - 3; i >= 0; i -= 3) { // looping in reverse for once listeners
let target = actions[i];
Expand Down
2 changes: 1 addition & 1 deletion packages/ember-runtime/lib/system/core_object.js
Expand Up @@ -168,7 +168,7 @@ function makeCtor() {

m.proto = proto;
finishChains(m);
sendEvent(this, 'init');
sendEvent(this, 'init', undefined, undefined, undefined, m);
}

static willReopen() {
Expand Down

0 comments on commit ebdc828

Please sign in to comment.