Browse Source

Use Map/Set instead of Object.create(null)

replace-snapshot
Sindre Sorhus 8 years ago
parent
commit
4b6323e85e
  1. 12
      lib/ava-files.js
  2. 8
      lib/process-adapter.js

12
lib/ava-files.js

@ -13,11 +13,11 @@ function handlePaths(files, excludePatterns, globOptions) {
// Convert Promise to Bluebird
files = Promise.resolve(globby(files.concat(excludePatterns), globOptions));
const searchedParents = Object.create(null);
const foundFiles = Object.create(null);
const searchedParents = new Set();
const foundFiles = new Set();
function alreadySearchingParent(dir) {
if (searchedParents[dir]) {
if (searchedParents.has(dir)) {
return true;
}
@ -40,7 +40,7 @@ function handlePaths(files, excludePatterns, globOptions) {
return null;
}
searchedParents[file] = true;
searchedParents.add(file);
let pattern = path.join(file, '**', '*.js');
@ -67,8 +67,8 @@ function handlePaths(files, excludePatterns, globOptions) {
})
.map(file => path.resolve(file))
.filter(file => {
const alreadyFound = foundFiles[file];
foundFiles[file] = true;
const alreadyFound = foundFiles.has(file);
foundFiles.add(file);
return !alreadyFound;
});
}

8
lib/process-adapter.js

@ -62,7 +62,7 @@ if (debug.enabled) {
require('time-require'); // eslint-disable-line import/no-unassigned-import
}
const sourceMapCache = Object.create(null);
const sourceMapCache = new Map();
const cacheDir = opts.cacheDir;
exports.installSourceMapSupport = () => {
@ -70,10 +70,10 @@ exports.installSourceMapSupport = () => {
environment: 'node',
handleUncaughtExceptions: false,
retrieveSourceMap(source) {
if (sourceMapCache[source]) {
if (sourceMapCache.has(source)) {
return {
url: source,
map: fs.readFileSync(sourceMapCache[source], 'utf8')
map: fs.readFileSync(sourceMapCache.get(source), 'utf8')
};
}
}
@ -85,7 +85,7 @@ exports.installPrecompilerHook = () => {
const precompiled = opts.precompiled[filename];
if (precompiled) {
sourceMapCache[filename] = path.join(cacheDir, precompiled + '.js.map');
sourceMapCache.set(filename, path.join(cacheDir, precompiled + '.js.map'));
return fs.readFileSync(path.join(cacheDir, precompiled + '.js'), 'utf8');
}

Loading…
Cancel
Save