{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /OpenAction 10 0 R
>>
endobj
{{object 2 0}} <<
  /Type /Pages
  /Count 1
  /Kids [
    3 0 R
  ]
>>
endobj
% Page number 0.
{{object 3 0}} <<
  /Type /Page
  /Parent 2 0 R
  /MediaBox [0 0 612 792]
>>
% OpenAction action
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 11 0 R
>>
endobj
% JS program to exexute
{{object 11 0}} <<
  {{streamlen}}
>>
stream
function testIllegalConstructor(name, allowed) {
  const constructorString = name + ".constructor";
  let constructor;
  try {
    constructor = eval(constructorString);
  } catch (e) {
    app.alert("FAIL: No such " + constructorString);
    return;
  }
  try {
    constructor();
    app.alert("FAIL: " + constructorString + "(): returned");
  } catch (e) {
    app.alert("PASS: " + constructorString + "(): " + e);
  }
  try {
    new constructor;
    app.alert("FAIL: new " + constructorString + ": returned");
  } catch (e) {
    app.alert("PASS: new " + constructorString + ": " + e);
  }
}
testIllegalConstructor("this");
testIllegalConstructor("app");
testIllegalConstructor("event");
testIllegalConstructor("font");
testIllegalConstructor("global");
testIllegalConstructor("util");
testIllegalConstructor("style");
testIllegalConstructor("color");
testIllegalConstructor("border");
testIllegalConstructor("display");
testIllegalConstructor("console");
testIllegalConstructor("position");
testIllegalConstructor("highlight");
testIllegalConstructor("zoomtype");
testIllegalConstructor("scaleHow");
testIllegalConstructor("scaleWhen");
endstream
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
