Use Map for audioGetFromSources's cache parameter

This commit is contained in:
toasted-nutbread 2020-02-13 20:26:48 -05:00
parent 0e6b75438a
commit 75fbb1565c
2 changed files with 7 additions and 4 deletions

View File

@ -114,8 +114,11 @@ function audioGetFromUrl(url, willDownload) {
async function audioGetFromSources(expression, sources, optionsContext, willDownload, cache=null) {
const key = `${expression.expression}:${expression.reading}`;
if (cache !== null && hasOwn(cache, expression)) {
return cache[key];
if (cache !== null) {
const cacheValue = cache.get(expression);
if (typeof cacheValue !== 'undefined') {
return cacheValue;
}
}
for (let i = 0, ii = sources.length; i < ii; ++i) {
@ -133,7 +136,7 @@ async function audioGetFromSources(expression, sources, optionsContext, willDown
}
const result = {audio, url, source};
if (cache !== null) {
cache[key] = result;
cache.set(key, result);
}
return result;
} catch (e) {

View File

@ -32,7 +32,7 @@ class Display {
this.index = 0;
this.audioPlaying = null;
this.audioFallback = null;
this.audioCache = {};
this.audioCache = new Map();
this.styleNode = null;
this.eventListeners = [];