|
|
@ -374,17 +374,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
|
|
|
@ -451,7 +451,7 @@ vAPI.net.registerListeners = function() { |
|
|
|
var pos = tail.lastIndexOf('.'); |
|
|
|
|
|
|
|
// https://github.com/gorhill/uBlock/issues/862
|
|
|
|
// If no transposition possible, transpose to `object` as per
|
|
|
|
// If no transposition possible, transpose to `object` as per
|
|
|
|
// Chromium bug 410382 (see below)
|
|
|
|
if ( pos === -1 ) { |
|
|
|
details.type = 'object'; |
|
|
|