fix istanbul interop - closes #660
This commit is contained in:
parent
4413da8d6e
commit
4163d1372a
@ -72,16 +72,27 @@ var shouldIgnore = function (filename) {
|
|||||||
return (ignoreRegex && ignoreRegex.test(filename)) || (onlyRegex && !onlyRegex.test(filename));
|
return (ignoreRegex && ignoreRegex.test(filename)) || (onlyRegex && !onlyRegex.test(filename));
|
||||||
};
|
};
|
||||||
|
|
||||||
var istanbulLoader = function (m, filename, old) {
|
var istanbulMonkey = {};
|
||||||
|
|
||||||
|
if (process.env.running_under_istanbul) { // jshint ignore:line
|
||||||
// we need to monkey patch fs.readFileSync so we can hook into
|
// we need to monkey patch fs.readFileSync so we can hook into
|
||||||
// what istanbul gets, it's extremely dirty but it's the only way
|
// what istanbul gets, it's extremely dirty but it's the only way
|
||||||
var _readFileSync = fs.readFileSync;
|
var _readFileSync = fs.readFileSync;
|
||||||
|
|
||||||
fs.readFileSync = function () {
|
fs.readFileSync = function (filename) {
|
||||||
fs.readFileSync = _readFileSync;
|
if (istanbulMonkey[filename]) {
|
||||||
return compile(filename);
|
delete istanbulMonkey[filename];
|
||||||
|
var code = compile(filename);
|
||||||
|
istanbulMonkey[filename] = true;
|
||||||
|
return code;
|
||||||
|
} else {
|
||||||
|
return _readFileSync.apply(this, arguments);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var istanbulLoader = function (m, filename, old) {
|
||||||
|
istanbulMonkey[filename] = true;
|
||||||
old(m, filename);
|
old(m, filename);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user