~ubuntu-branches/ubuntu/precise/kompozer/precise

« back to all changes in this revision

Viewing changes to mozilla/js/src/xpconnect/tests/js/old/xpctest_variant.js

  • Committer: Bazaar Package Importer
  • Author(s): Anthony Yarusso
  • Date: 2007-08-27 01:11:03 UTC
  • Revision ID: james.westby@ubuntu.com-20070827011103-2jgf4s6532gqu2ka
Tags: upstream-0.7.10
ImportĀ upstreamĀ versionĀ 0.7.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
const TestVariant = Components.Constructor("@mozilla.org/js/xpc/test/TestVariant;1", 
 
3
                                           "nsITestVariant");
 
4
 
 
5
var tv = new TestVariant;
 
6
 
 
7
const DataTypeArray = [
 
8
    Components.interfaces.nsIDataType.VTYPE_INT8                ,
 
9
    Components.interfaces.nsIDataType.VTYPE_INT16               ,
 
10
    Components.interfaces.nsIDataType.VTYPE_INT32               ,
 
11
    Components.interfaces.nsIDataType.VTYPE_INT64               ,
 
12
    Components.interfaces.nsIDataType.VTYPE_UINT8               ,
 
13
    Components.interfaces.nsIDataType.VTYPE_UINT16              ,
 
14
    Components.interfaces.nsIDataType.VTYPE_UINT32              ,
 
15
    Components.interfaces.nsIDataType.VTYPE_UINT64              ,
 
16
    Components.interfaces.nsIDataType.VTYPE_FLOAT               ,
 
17
    Components.interfaces.nsIDataType.VTYPE_DOUBLE              ,
 
18
    Components.interfaces.nsIDataType.VTYPE_BOOL                ,
 
19
    Components.interfaces.nsIDataType.VTYPE_CHAR                ,
 
20
    Components.interfaces.nsIDataType.VTYPE_WCHAR               ,
 
21
    Components.interfaces.nsIDataType.VTYPE_VOID                ,
 
22
    Components.interfaces.nsIDataType.VTYPE_ID                  ,
 
23
    Components.interfaces.nsIDataType.VTYPE_DOMSTRING           ,
 
24
    Components.interfaces.nsIDataType.VTYPE_CHAR_STR            ,
 
25
    Components.interfaces.nsIDataType.VTYPE_WCHAR_STR           ,
 
26
    Components.interfaces.nsIDataType.VTYPE_INTERFACE           ,
 
27
    Components.interfaces.nsIDataType.VTYPE_INTERFACE_IS        ,
 
28
    Components.interfaces.nsIDataType.VTYPE_ARRAY               ,
 
29
    Components.interfaces.nsIDataType.VTYPE_STRING_SIZE_IS      ,
 
30
    Components.interfaces.nsIDataType.VTYPE_WSTRING_SIZE_IS     ,
 
31
    Components.interfaces.nsIDataType.VTYPE_UTF8STRING          ,
 
32
    Components.interfaces.nsIDataType.VTYPE_CSTRING             ,
 
33
    Components.interfaces.nsIDataType.VTYPE_ASTRING             ,    
 
34
    Components.interfaces.nsIDataType.VTYPE_EMPTY_ARRAY         ,               
 
35
    Components.interfaces.nsIDataType.VTYPE_EMPTY               
 
36
];
 
37
 
 
38
const ShortNames = [
 
39
 {name: "I1", number: Components.interfaces.nsIDataType.VTYPE_INT8           },
 
40
 {name: "I2", number: Components.interfaces.nsIDataType.VTYPE_INT16          },
 
41
 {name: "I4", number: Components.interfaces.nsIDataType.VTYPE_INT32          },
 
42
 {name: "I8", number: Components.interfaces.nsIDataType.VTYPE_INT64          },
 
43
 {name: "U1", number: Components.interfaces.nsIDataType.VTYPE_UINT8          },
 
44
 {name: "U2", number: Components.interfaces.nsIDataType.VTYPE_UINT16         },
 
45
 {name: "U4", number: Components.interfaces.nsIDataType.VTYPE_UINT32         },
 
46
 {name: "U8", number: Components.interfaces.nsIDataType.VTYPE_UINT64         },
 
47
 {name: "FL", number: Components.interfaces.nsIDataType.VTYPE_FLOAT          },
 
48
 {name: "DB", number: Components.interfaces.nsIDataType.VTYPE_DOUBLE         },
 
49
 {name: "BO", number: Components.interfaces.nsIDataType.VTYPE_BOOL           },
 
50
 {name: "CH", number: Components.interfaces.nsIDataType.VTYPE_CHAR           },
 
51
 {name: "WC", number: Components.interfaces.nsIDataType.VTYPE_WCHAR          },
 
52
 {name: "VD", number: Components.interfaces.nsIDataType.VTYPE_VOID           },
 
53
 {name: "ID", number: Components.interfaces.nsIDataType.VTYPE_ID             },
 
54
 {name: "DS", number: Components.interfaces.nsIDataType.VTYPE_DOMSTRING      },
 
55
 {name: "ST", number: Components.interfaces.nsIDataType.VTYPE_CHAR_STR       },
 
56
 {name: "WS", number: Components.interfaces.nsIDataType.VTYPE_WCHAR_STR      },
 
57
 {name: "NS", number: Components.interfaces.nsIDataType.VTYPE_INTERFACE      },
 
58
 {name: "IF", number: Components.interfaces.nsIDataType.VTYPE_INTERFACE_IS   },
 
59
 {name: "AR", number: Components.interfaces.nsIDataType.VTYPE_ARRAY          },
 
60
 {name: "Ss", number: Components.interfaces.nsIDataType.VTYPE_STRING_SIZE_IS },
 
61
 {name: "Ws", number: Components.interfaces.nsIDataType.VTYPE_WSTRING_SIZE_IS},
 
62
 {name: "US", number: Components.interfaces.nsIDataType.VTYPE_UTF8STRING     },
 
63
 {name: "CS", number: Components.interfaces.nsIDataType.VTYPE_CSTRING        },
 
64
 {name: "AS", number: Components.interfaces.nsIDataType.VTYPE_ASTRING        },
 
65
 {name: "EA", number: Components.interfaces.nsIDataType.VTYPE_EMPTY_ARRAY    },
 
66
 {name: "EM", number: Components.interfaces.nsIDataType.VTYPE_EMPTY          }
 
67
];
 
68
 
 
69
 
 
70
function getDataTypeName(number) {
 
71
    var iface = Components.interfaces.nsIDataType
 
72
    for(var n in iface)
 
73
        if(iface[n] == number)
 
74
            return n;
 
75
    return "unknown type!";
 
76
}
 
77
 
 
78
function getDataTypeShortName(number) {
 
79
    for(var i = 0; i < ShortNames.length; i++)
 
80
        if(ShortNames[i].number == number)
 
81
            return ShortNames[i].name;
 
82
    return "???";
 
83
}
 
84
 
 
85
function eqOp(o1, o2) {return o1 == o2;}
 
86
function eqObj(o1, o2) {return o1.equals(o2);}
 
87
function eqNumber(o1, o2) {return parseFloat(o1) == parseFloat(o2);}
 
88
 
 
89
const eq = {string: "equal result"};
 
90
const _e = {string: "exception"};
 
91
const NE = {string: "un-equal result"};
 
92
const _0 = {string: "zero result"};
 
93
const _1 = {string: "one result"};
 
94
const _T = {string: "true result"};
 
95
const _F = {string: "false result"};
 
96
 
 
97
function TestSingleConvert(value, comment, eq_fun, table) {
 
98
    print("<h3>convert test for: "+value+" "+comment+"</h3>");
 
99
 
 
100
    print('<TABLE BORDER="1" COLS='+table.length+'>');
 
101
    print('<TR>');
 
102
    for(var i = 0; i < table.length; i++) {
 
103
        print('<TH>'+getDataTypeShortName(DataTypeArray[i])+'</TH>');
 
104
    }
 
105
    print('</TR>');
 
106
    
 
107
    print('<TR>');
 
108
    for(var i = 0; i < table.length; i++) {
 
109
        var exception = undefined;
 
110
        var value2 = undefined;
 
111
        try {
 
112
            value2 = tv.copyVariantAsType(value, DataTypeArray[i]);
 
113
            var same = eq_fun(value, value2);
 
114
            success = (same && table[i] == eq) || 
 
115
                      (!same && table[i] == NE) ||
 
116
                      (table[i] == _0 && 0 == value2) ||
 
117
                      (table[i] == _T && true == value2) ||
 
118
                      (table[i] == _F && false == value2);
 
119
        } catch(e) {
 
120
            exception = e;
 
121
            success = table[i] == _e;
 
122
        }                
 
123
        if(success)   
 
124
            print('<TD><font color="green">OK</font></TD>');
 
125
        else if(exception) {
 
126
            var alertText = "Exception thrown. Expected: "+table[i].string;
 
127
            print('<TD><font color="red"><A HREF="" '+
 
128
                  'onclick="alert(\''+alertText+'\'); return false;"'+
 
129
                  '>X</A></font></TD>');
 
130
        }
 
131
        else {
 
132
            var alertText = "Result = "+value2+". Expected: "+table[i].string;
 
133
            print('<TD><font color="red"><A HREF="" '+
 
134
                  'onclick="alert(\''+alertText+'\'); return false;"'+
 
135
                  '>X</A></font></TD>');
 
136
        }            
 
137
    }    
 
138
 
 
139
    print('</TR>');
 
140
    print('</TABLE>');
 
141
}
 
142
 
 
143
function TestDoubleConvert(value, comment, eq_fun, table) {
 
144
    print("<h3>convert test for: "+value+" "+comment+"</h3>");
 
145
 
 
146
    print('<TABLE BORDER="1" COLS='+table.length+2+'>');
 
147
    print('<TR>');
 
148
    print('<TH></TH>');
 
149
    for(var i = 0; i < table.length; i++) {
 
150
        print('<TH>'+getDataTypeShortName(DataTypeArray[i])+'</TH>');
 
151
    }
 
152
    print('<TH></TH>');
 
153
    print('</TR>');
 
154
    
 
155
    for(var i = 0; i < table.length; i++) {
 
156
        print('<TR>');
 
157
        print('<TD>'+getDataTypeShortName(DataTypeArray[i])+'</TD>');
 
158
        for(var k = 0; k < table.length; k++) {
 
159
            var exception = undefined;
 
160
            var value2 = undefined;
 
161
            var expected = table[i][k];
 
162
            try {
 
163
                value2 = tv.copyVariantAsTypeTwice(value, 
 
164
                                                   DataTypeArray[k],
 
165
                                                   DataTypeArray[i]);
 
166
                var same = eq_fun(value, value2);
 
167
                success = (same && expected == eq) || 
 
168
                          (!same && expected == NE) ||
 
169
                          (expected == _0 && 0 == value2) ||
 
170
                          (expected == _T && true == value2) ||
 
171
                          (expected == _F && false == value2);
 
172
            } catch(e) {
 
173
                exception = e;
 
174
                success = expected == _e;
 
175
            }                
 
176
            if(success)   
 
177
                print('<TD><font color="green">OK</font></TD>');
 
178
            else if(exception) {
 
179
                var alertText = "Exception thrown. Expected: "+expected.string;
 
180
                print('<TD><font color="red"><A HREF="" '+
 
181
                      'onclick="alert(\''+alertText+'\'); return false;"'+
 
182
                      '>X</A></font></TD>');
 
183
            }
 
184
            else {
 
185
                var alertText = "Result = was wrong. Expected: "+expected.string;
 
186
                print('<TD><font color="red"><A HREF="" '+
 
187
                      'onclick="alert(\''+alertText+'\'); return false;"'+
 
188
                      '>X</A></font></TD>');
 
189
            }            
 
190
        }
 
191
        print('<TD>'+getDataTypeShortName(DataTypeArray[i])+'</TD>');
 
192
        print('</TR>');
 
193
    }
 
194
 
 
195
    print('</TABLE>');
 
196
}
 
197
 
 
198
 
 
199
// 
 
200
 
 
201
const SingleConvertResultsTableFor_String_Foo = [
 
202
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM    */
 
203
  _e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
 
204
];
 
205
 
 
206
const SingleConvertResultsTableFor_String_5 = [
 
207
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM    */
 
208
  eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
 
209
];
 
210
 
 
211
const SingleConvertResultsTableFor_Number_20 = [
 
212
/*I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM    */
 
213
  eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e
 
214
];
 
215
 
 
216
const DoubleConvertResultsTableFor_String_Foo = [
 
217
/*     I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM      */
 
218
/*I1*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I1*/
 
219
/*I2*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I2*/
 
220
/*I4*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I4*/
 
221
/*I8*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*I8*/
 
222
/*U1*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U1*/
 
223
/*U2*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U2*/
 
224
/*U4*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U4*/
 
225
/*U8*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*U8*/
 
226
/*FL*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*FL*/
 
227
/*DB*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*DB*/
 
228
/*BO*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*BO*/
 
229
/*CH*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*CH*/
 
230
/*WC*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*WC*/
 
231
/*VD*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*VD*/
 
232
/*ID*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*ID*/
 
233
/*DS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DS*/
 
234
/*ST*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*ST*/
 
235
/*WS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*WS*/
 
236
/*NS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*NS*/
 
237
/*IF*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*IF*/
 
238
/*AR*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*AR*/
 
239
/*Ss*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ss*/
 
240
/*Ws*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ws*/
 
241
/*US*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*US*/
 
242
/*CS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*CS*/
 
243
/*AS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*AS*/
 
244
/*EA*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*EA*/
 
245
/*EM*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e] /*EM*/
 
246
];
 
247
 
 
248
const DoubleConvertResultsTableFor_String_Five = [
 
249
/*     I1,I2,I4,I8,U1,U2,U4,U8,FL,DB,BO,CH,WC,VD,ID,DS,ST,WS,NS,IF,AR,Ss,Ws,US,CS,AS,EA,EM      */
 
250
/*I1*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I1*/
 
251
/*I2*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I2*/
 
252
/*I4*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I4*/
 
253
/*I8*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*I8*/
 
254
/*U1*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U1*/
 
255
/*U2*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U2*/
 
256
/*U4*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U4*/
 
257
/*U8*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*U8*/
 
258
/*FL*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*FL*/
 
259
/*DB*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,_T,eq,eq,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DB*/
 
260
/*BO*/[_T,_T,_T,_T,_T,_T,_T,_T,_T,_T,_T,NE,NE,_e,_e,_T,_T,_T,_e,_e,_e,_T,_T,_T,_T,_T,_e,_e],/*BO*/
 
261
/*CH*/[NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,_e,_e,NE,NE,NE,_e,_e,_e,NE,NE,NE,NE,NE,_e,_e],/*CH*/
 
262
/*WC*/[NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,NE,_e,_e,NE,NE,NE,_e,_e,_e,NE,NE,NE,NE,NE,_e,_e],/*WC*/
 
263
/*VD*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*VD*/
 
264
/*ID*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*ID*/
 
265
/*DS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*DS*/
 
266
/*ST*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*ST*/
 
267
/*WS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*WS*/
 
268
/*NS*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*NS*/
 
269
/*IF*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*IF*/
 
270
/*AR*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*AR*/
 
271
/*Ss*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ss*/
 
272
/*Ws*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*Ws*/
 
273
/*US*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*US*/
 
274
/*CS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*CS*/
 
275
/*AS*/[eq,eq,eq,eq,eq,eq,eq,eq,eq,eq,NE,NE,NE,_e,_e,eq,eq,eq,_e,_e,_e,eq,eq,eq,eq,eq,_e,_e],/*AS*/
 
276
/*EA*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e],/*EA*/
 
277
/*EM*/[_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e,_e] /*EM*/
 
278
];
 
279
 
 
280
var values = [
 
281
    "foo",
 
282
    0, 
 
283
    5, 
 
284
    1.01, 
 
285
    Components, 
 
286
    {}, 
 
287
    Components.interfaces.nsISupports,
 
288
    null,
 
289
    true,
 
290
    undefined
 
291
];
 
292
 
 
293
var i;
 
294
 
 
295
/***************************************************************************/
 
296
 
 
297
if(0){
 
298
 
 
299
print();
 
300
 
 
301
for(i = 0; i < values.length; i++)
 
302
    print(getDataTypeName(tv.returnVariantType(values[i])));
 
303
 
 
304
print();
 
305
print();
 
306
 
 
307
for(i = 0; i < values.length; i++)
 
308
    print(tv.passThruVariant(values[i]));
 
309
 
 
310
print();
 
311
print();
 
312
 
 
313
for(i = 0; i < values.length; i++)
 
314
    print(tv.copyVariant(values[i]));
 
315
 
 
316
}
 
317
 
 
318
function RunSingleConvertTests() {
 
319
    TestSingleConvert("foo", "a string", eqOp, SingleConvertResultsTableFor_String_Foo);
 
320
    TestSingleConvert("5", "a string", eqNumber, SingleConvertResultsTableFor_String_5);
 
321
    TestSingleConvert(20, "a number", eqNumber, SingleConvertResultsTableFor_Number_20);
 
322
    print("<P>");
 
323
}
 
324
 
 
325
function RunDoubleConvertTests() {
 
326
    TestDoubleConvert("foo", "a string", eqOp, DoubleConvertResultsTableFor_String_Foo);
 
327
    TestDoubleConvert("5", "a string", eqNumber, DoubleConvertResultsTableFor_String_Five);
 
328
    print("<P>");
 
329
}
 
330
 
 
331
// main...
 
332
 
 
333
print("<html><body>")
 
334
 
 
335
RunSingleConvertTests();
 
336
RunDoubleConvertTests();
 
337
 
 
338
print("</body></html>")
 
339