Add a parameter to the isName function that enables checking not just that something is a Name, but also that the actual name properties matches

This is similar to the existing `isCmd` and `isDict` functions, which already support similar kind of checks.
With the updated `isName` function, we'll be able to simplify many callsites from: `isName(someVariable) && someVariable.name === 'someName'` to: `isName(someVariable, 'someName')`.
This commit is contained in:
Jonas Jenwald 2016-08-04 14:57:31 +02:00
parent 94089960c0
commit af636aae96
2 changed files with 10 additions and 10 deletions

View File

@ -267,8 +267,8 @@ var RefSetCache = (function RefSetCacheClosure() {
return RefSetCache; return RefSetCache;
})(); })();
function isName(v) { function isName(v, name) {
return v instanceof Name; return v instanceof Name && (name === undefined || v.name === name);
} }
function isCmd(v, cmd) { function isCmd(v, cmd) {
@ -276,14 +276,8 @@ function isCmd(v, cmd) {
} }
function isDict(v, type) { function isDict(v, type) {
if (!(v instanceof Dict)) { return v instanceof Dict &&
return false; (type === undefined || isName(v.get('Type'), type));
}
if (!type) {
return true;
}
var dictType = v.get('Type');
return isName(dictType) && dictType.name === type;
} }
function isRef(v) { function isRef(v) {

View File

@ -244,6 +244,12 @@ describe('primitives', function() {
var name = Name.get('Font'); var name = Name.get('Font');
expect(isName(name)).toEqual(true); expect(isName(name)).toEqual(true);
}); });
it('handles names with name check', function () {
var name = Name.get('Font');
expect(isName(name, 'Font')).toEqual(true);
expect(isName(name, 'Subtype')).toEqual(false);
});
}); });
describe('isCmd', function () { describe('isCmd', function () {