{{header}}
{{object 1 0}} <<
  /Type /Catalog
  /Pages 2 0 R
  /AcroForm 4 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
  /Resources <<
    /Font <</F1 15 0 R>>
  >>
  /Contents [21 0 R]
  /MediaBox [0 0 612 792]
>>
% Forms
{{object 4 0}} <<
  /Fields [5 0 R]
>>
% Field
{{object 5 0}} <<
 /FT /Tx
 /T (MyField)
 /Type /Annot
 /Subtype /Widget
 /Rect [100 200 150 250]
>>
% OpenAction action
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 11 0 R
>>
endobj
% JS program to exexute
{{object 11 0}} <<
>>
stream
function testField(x) {
  var field = this.getField("MyField");
  field.value = x;
  var y = field.value;
  app.alert("Answer for \"" + x + "\" is: " + typeof(y) + " " + y);
}
testField("");
testField("goats");
testField("b4");
testField("b4.5");
testField("4x");
testField("4.5x");
testField(4);
testField("4");
testField(" 4");
testField("4 ");
testField("                          4                                      ");
testField("4 3 2 1");
testField("-4");
testField("23.00000001");
testField("23.00000000000000001");
testField(40000000000000000000000000);
testField("40000000000000000000000000");
testField("25,5");
testField("1e+5");
testField("1e5");
testField("1e-5");
testField("-1e-5");
testField("1.2e5");
testField(Infinity);
testField("Infinity");
testField("INFINITY");
testField("INF");
testField(NaN);
testField("NaN");
testField("NAN");
testField("0x100");
testField("0x100.1");
testField("0x100,1");
testField("0x100x1");
testField("123x6");
testField("123xy6");
testField("123.y6");
testField("1,000,000");
testField("1.2.3");
testField("1-3");
testField("1+3");
testField("1.-3");
testField("1.+3");
testField([1, 2, 3, 4]);
testField("[1, 2, 3, 4]");
testField({a: 1, b: 2});
testField("{a: 1, b: 2}");
testField(function(x) { return x+1; });
testField("function(x) { return x+1; }");
endstream
endobj
{{xref}}
trailer <<
  /Root 1 0 R
>>
{{startxref}}
%%EOF
