diff --git a/src/core/xfa/xfa_object.js b/src/core/xfa/xfa_object.js index 07e1700b4..c99e537d5 100644 --- a/src/core/xfa/xfa_object.js +++ b/src/core/xfa/xfa_object.js @@ -491,14 +491,16 @@ class XFAObject { } ancestors.add(proto); + // The prototype can have a "use" attribute itself. const protoProto = proto[_getPrototype](ids, ancestors); - if (!protoProto) { - ancestors.delete(proto); - return proto; + if (protoProto) { + proto[_applyPrototype](protoProto, ids, ancestors); } - proto[_applyPrototype](protoProto, ids, ancestors); + // The prototype can have a child which itself has a "use" property. + proto[$resolvePrototypes](ids, ancestors); + ancestors.delete(proto); return proto;