Fix the inconsistent return types for Dict.{get, getAsync}
Having these methods fallback to returning `null` in only *one* particular case seems outright wrong, since a "falsy" value will thus be handled incorrectly. The only reason that this hasn't caused issues in practice is that there's only one call-site passing in three keys, and in that case we're trying to read a font file where falling back to `null` isn't a problem.
This commit is contained in:
parent
9596d702a9
commit
7f18c57c12
@ -92,7 +92,7 @@ var Dict = (function DictClosure() {
|
|||||||
key2 in this._map || typeof key3 === 'undefined') {
|
key2 in this._map || typeof key3 === 'undefined') {
|
||||||
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
||||||
}
|
}
|
||||||
value = this._map[key3] || null;
|
value = this._map[key3];
|
||||||
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ var Dict = (function DictClosure() {
|
|||||||
}
|
}
|
||||||
return Promise.resolve(value);
|
return Promise.resolve(value);
|
||||||
}
|
}
|
||||||
value = this._map[key3] || null;
|
value = this._map[key3];
|
||||||
if (xref) {
|
if (xref) {
|
||||||
return xref.fetchIfRefAsync(value, suppressEncryption);
|
return xref.fetchIfRefAsync(value, suppressEncryption);
|
||||||
}
|
}
|
||||||
|
@ -67,9 +67,7 @@ describe('primitives', function() {
|
|||||||
expect(dict.get()).toBeUndefined();
|
expect(dict.get()).toBeUndefined();
|
||||||
expect(dict.get('Prev')).toBeUndefined();
|
expect(dict.get('Prev')).toBeUndefined();
|
||||||
expect(dict.get('Decode', 'D')).toBeUndefined();
|
expect(dict.get('Decode', 'D')).toBeUndefined();
|
||||||
|
expect(dict.get('FontFile', 'FontFile2', 'FontFile3')).toBeUndefined();
|
||||||
// Note that the getter with three arguments breaks the pattern here.
|
|
||||||
expect(dict.get('FontFile', 'FontFile2', 'FontFile3')).toBeNull();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var emptyDict, dictWithSizeKey, dictWithManyKeys;
|
var emptyDict, dictWithSizeKey, dictWithManyKeys;
|
||||||
@ -145,7 +143,7 @@ describe('primitives', function() {
|
|||||||
|
|
||||||
Promise.all(keyPromises).then(function (values) {
|
Promise.all(keyPromises).then(function (values) {
|
||||||
expect(values[0]).toBeUndefined();
|
expect(values[0]).toBeUndefined();
|
||||||
expect(values[1]).toBeNull();
|
expect(values[1]).toBeUndefined();
|
||||||
done();
|
done();
|
||||||
}).catch(function (reason) {
|
}).catch(function (reason) {
|
||||||
done.fail(reason);
|
done.fail(reason);
|
||||||
|
Loading…
Reference in New Issue
Block a user