| 123456789101112131415161718192021222324252627282930 | 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;};
 |