Bug 1396856: Part 1 - Remove spread call fallback overhead in event dispatch. r?zombie
MozReview-Commit-ID: 3c5p9OvRqHI
--- a/toolkit/components/extensions/ExtensionCommon.jsm
+++ b/toolkit/components/extensions/ExtensionCommon.jsm
@@ -1561,36 +1561,36 @@ EventManager.prototype = {
return true;
}
return false;
};
let fire = {
sync: (...args) => {
if (shouldFire()) {
- return this.context.runSafe(callback, ...args);
+ return this.context.applySafe(callback, args);
}
},
async: (...args) => {
return Promise.resolve().then(() => {
if (shouldFire()) {
- return this.context.runSafe(callback, ...args);
+ return this.context.applySafe(callback, args);
}
});
},
raw: (...args) => {
if (!shouldFire()) {
throw new Error("Called raw() on unloaded/inactive context");
}
- return callback(...args);
+ return Reflect.apply(callback, null, args);
},
asyncWithoutClone: (...args) => {
return Promise.resolve().then(() => {
if (shouldFire()) {
- return this.context.runSafeWithoutClone(callback, ...args);
+ return this.context.applySafeWithoutClone(callback, args);
}
});
},
};
let unregister = this.register(fire, ...args);
this.unregister.set(callback, unregister);
--- a/toolkit/components/extensions/ExtensionParent.jsm
+++ b/toolkit/components/extensions/ExtensionParent.jsm
@@ -411,20 +411,20 @@ class ProxyContextParent extends BaseCon
this.pendingEventBrowser = savedBrowser;
}
}
get cloneScope() {
return this.sandbox;
}
- runSafe(...args) {
+ applySafe(callback, args) {
// There's no need to clone when calling listeners for a proxied
// context.
- return this.runSafeWithoutClone(...args);
+ return this.applySafeWithoutClone(callback, args);
}
get xulBrowser() {
return this.messageManagerProxy.eventTarget;
}
get parentMessageManager() {
return this.messageManagerProxy.messageManager;