{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /OpenAction 20 0 R
>>
endobj
{{object 2 0}} <<
  /Type /Pages
  /Count 1
  /Kids [10 0 R]
>>
endobj
{{object 10 0}} <<
  /Type /Page
  /Parent 2 0 R
  /MediaBox [0 0 612 792]
  /Annots [22 0 R]
  /Tabs /R
>>
endobj
{{object 20 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 21 0 R
>>
endobj
{{object 21 0}} <<
  {{streamlen}}
>>
stream
app.alert("Test that non-existent annot fetch gives error");
try {
  var nonesuch = this.getAnnot(0, "nonesuch");
  app.alert("nonesuch: " + typeof nonesuch);
} catch (e) {
  app.alert("SUCCESS: " + e);
}
app.alert("Test initial cases");
try {
  var annot = this.getAnnot(0, "Annot-1");
  app.alert("annot: " + typeof annot);
  app.alert("hidden: " + annot.hidden);
  app.alert("name: " + annot.name);
  app.alert("type: " + annot.type);

  annot.hidden = true;
  app.alert("hidden now: " + annot.hidden);
  annot.hidden = false;
  app.alert("hidden now: " + annot.hidden);

  annot.name = "nonesuch";
  app.alert("name now: " + annot.name);
} catch (e) {
  app.alert("ERROR: " + e);
}
app.alert("Test assigment to read-only property gives error");
try {
  annot.type = 42;
} catch (e) {
  app.alert("SUCCESS: " + e);
}
app.alert("Test lookup after name change gives error");
try {
  annot = this.getAnnot(0, "Annot-1");
  app.alert("annot after name change: " + typeof annot);
} catch (e) {
  app.alert("SUCCESS: " + e);
}
app.alert("Test lookup under changed name");
try {
  nonesuch = this.getAnnot(0, "nonesuch");
  app.alert("nonesuch after name change: " + typeof nonesuch);
} catch (e) {
  app.alert("ERROR: " + e);
}
endstream
endobj
{{object 22 0}} <<
  /Type /Annot
  /Subtype /Highlight
  /Rect [475 681 512 690]
  /NM (Annot-1)
  /F 2
  /QuadPoints [475 688 512 688 475 679 512 679]
  /C [0.0001108646 0.001760244 0.9982184]
  /Contents ()
>>
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
