You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
743 B
30 lines
743 B
module.exports = function properlyBoxed(method) { |
|
// Check node 0.6.21 bug where third parameter is not boxed |
|
var properlyBoxesNonStrict = true; |
|
var properlyBoxesStrict = true; |
|
var threwException = false; |
|
if (typeof method === 'function') { |
|
try { |
|
// eslint-disable-next-line max-params |
|
method.call('f', function (_, __, O) { |
|
if (typeof O !== 'object') { |
|
properlyBoxesNonStrict = false; |
|
} |
|
}); |
|
|
|
method.call( |
|
[null], |
|
function () { |
|
'use strict'; |
|
|
|
properlyBoxesStrict = typeof this === 'string'; // eslint-disable-line no-invalid-this |
|
}, |
|
'x' |
|
); |
|
} catch (e) { |
|
threwException = true; |
|
} |
|
return !threwException && properlyBoxesNonStrict && properlyBoxesStrict; |
|
} |
|
return false; |
|
};
|
|
|