|
|
@ -792,17 +792,17 @@ vAPI.messaging.broadcast = function(message) { |
|
|
|
|
|
|
|
// This allows to avoid creating a closure for every single message which
|
|
|
|
// expects an answer. Having a closure created each time a message is processed
|
|
|
|
// has been always bothering me. Another benefit of the implementation here
|
|
|
|
// has been always bothering me. Another benefit of the implementation here
|
|
|
|
// is to reuse the callback proxy object, so less memory churning.
|
|
|
|
//
|
|
|
|
// https://developers.google.com/speed/articles/optimizing-javascript
|
|
|
|
// "Creating a closure is significantly slower then creating an inner
|
|
|
|
// function without a closure, and much slower than reusing a static
|
|
|
|
// function without a closure, and much slower than reusing a static
|
|
|
|
// function"
|
|
|
|
//
|
|
|
|
// http://hacksoflife.blogspot.ca/2015/01/the-four-horsemen-of-performance.html
|
|
|
|
// "the dreaded 'uniformly slow code' case where every function takes 1%
|
|
|
|
// of CPU and you have to make one hundred separate performance optimizations
|
|
|
|
// "the dreaded 'uniformly slow code' case where every function takes 1%
|
|
|
|
// of CPU and you have to make one hundred separate performance optimizations
|
|
|
|
// to improve performance at all"
|
|
|
|
//
|
|
|
|
// http://jsperf.com/closure-no-closure/2
|
|
|
@ -844,9 +844,9 @@ CallbackWrapper.prototype.proxy = function(response) { |
|
|
|
} |
|
|
|
|
|
|
|
// Mark for reuse
|
|
|
|
this.messageManager = |
|
|
|
this.channelName = |
|
|
|
this.requestId = |
|
|
|
this.messageManager = |
|
|
|
this.channelName = |
|
|
|
this.requestId = |
|
|
|
this.listenerId = null; |
|
|
|
CallbackWrapper.junkyard.push(this); |
|
|
|
}; |
|
|
@ -1556,19 +1556,6 @@ vAPI.contextMenu.create = function(details, callback) { |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
vAPI.contextMenu.remove = function() { |
|
|
|
for ( var win of vAPI.tabs.getWindows() ) { |
|
|
|
this.unregister(win.document); |
|
|
|
} |
|
|
|
|
|
|
|
this.menuItemId = null; |
|
|
|
this.menuLabel = null; |
|
|
|
this.contexts = null; |
|
|
|
this.onCommand = null; |
|
|
|
}; |
|
|
|
|
|
|
|
/******************************************************************************/ |
|
|
|
|
|
|
|
vAPI.lastError = function() { |
|
|
|
return null; |
|
|
|
}; |
|
|
|