1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
{{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)
>>
% 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
|