1/* ------------------------------------------------------------
2 * Primitive Types
3 * ------------------------------------------------------------ */
4
5/* boolean */
6
7%fragment(SWIG_From_frag(bool),"header") {
8SWIGINTERNINLINE
9v8::Handle<v8::Value>
10SWIG_From_dec(bool)(bool value)
11{
12  return SWIGV8_BOOLEAN_NEW(value);
13}
14}
15
16%fragment(SWIG_AsVal_frag(bool),"header",
17          fragment=SWIG_AsVal_frag(long)) {
18SWIGINTERN
19int SWIG_AsVal_dec(bool)(v8::Handle<v8::Value> obj, bool *val)
20{
21  if(!obj->IsBoolean()) {
22    return SWIG_ERROR;
23  }
24
25  if (val) *val = SWIGV8_BOOLEAN_VALUE(obj);
26  return SWIG_OK;
27}
28}
29
30/* int */
31
32%fragment(SWIG_From_frag(int),"header") {
33SWIGINTERNINLINE
34v8::Handle<v8::Value> SWIG_From_dec(int)(int value)
35{
36  return SWIGV8_INT32_NEW(value);
37}
38}
39
40%fragment(SWIG_AsVal_frag(int),"header") {
41SWIGINTERN
42int SWIG_AsVal_dec(int)(v8::Handle<v8::Value> valRef, int* val)
43{
44  if (!valRef->IsNumber()) {
45    return SWIG_TypeError;
46  }
47  if(val) *val = SWIGV8_INTEGER_VALUE(valRef);
48
49  return SWIG_OK;
50}
51}
52
53/* long */
54
55%fragment(SWIG_From_frag(long),"header") {
56SWIGINTERNINLINE
57v8::Handle<v8::Value> SWIG_From_dec(long)(long value)
58{
59  return SWIGV8_NUMBER_NEW(value);
60}
61}
62
63%fragment(SWIG_AsVal_frag(long),"header",
64          fragment="SWIG_CanCastAsInteger") {
65SWIGINTERN
66int SWIG_AsVal_dec(long)(v8::Handle<v8::Value> obj, long* val)
67{
68  if (!obj->IsNumber()) {
69    return SWIG_TypeError;
70  }
71  if(val) *val = (long) SWIGV8_INTEGER_VALUE(obj);
72
73  return SWIG_OK;
74}
75}
76
77/* unsigned long */
78
79%fragment(SWIG_From_frag(unsigned long),"header",
80          fragment=SWIG_From_frag(long)) {
81SWIGINTERNINLINE
82v8::Handle<v8::Value> SWIG_From_dec(unsigned long)(unsigned long value)
83{
84  return (value > LONG_MAX) ?
85    SWIGV8_INTEGER_NEW_UNS(value) : SWIGV8_INTEGER_NEW(%numeric_cast(value,long));
86}
87}
88
89%fragment(SWIG_AsVal_frag(unsigned long),"header",
90          fragment="SWIG_CanCastAsInteger") {
91SWIGINTERN
92int SWIG_AsVal_dec(unsigned long)(v8::Handle<v8::Value> obj, unsigned long *val)
93{
94  if(!obj->IsNumber()) {
95    return SWIG_TypeError;
96  }
97
98  long longVal = (long) SWIGV8_NUMBER_VALUE(obj);
99
100  if(longVal < 0) {
101      return SWIG_OverflowError;
102  }
103
104  if(val) *val = longVal;
105
106  return SWIG_OK;
107}
108}
109
110/* long long */
111// Note: these are copied from 'long' and probably need fixing
112
113%fragment(SWIG_From_frag(long long),"header",
114    fragment=SWIG_From_frag(long),
115    fragment="SWIG_LongLongAvailable") {
116%#ifdef SWIG_LONG_LONG_AVAILABLE
117SWIGINTERNINLINE
118v8::Handle<v8::Value> SWIG_From_dec(long long)(long long value)
119{
120  return SWIGV8_NUMBER_NEW(value);
121}
122%#endif
123}
124
125%fragment(SWIG_AsVal_frag(long long),"header",
126    fragment=SWIG_AsVal_frag(long),
127    fragment="SWIG_CanCastAsInteger",
128    fragment="SWIG_LongLongAvailable") {
129%#ifdef SWIG_LONG_LONG_AVAILABLE
130SWIGINTERN
131int SWIG_AsVal_dec(long long)(v8::Handle<v8::Value> obj, long long* val)
132{
133  if (!obj->IsNumber()) {
134    return SWIG_TypeError;
135  }
136  if(val) *val = (long long) SWIGV8_INTEGER_VALUE(obj);
137
138  return SWIG_OK;
139}
140%#endif
141}
142
143/* unsigned long long */
144// Note: these are copied from 'unsigned long' and probably need fixing
145
146%fragment(SWIG_From_frag(unsigned long long),"header",
147    fragment=SWIG_From_frag(long long),
148    fragment="SWIG_LongLongAvailable") {
149%#ifdef SWIG_LONG_LONG_AVAILABLE
150SWIGINTERNINLINE
151v8::Handle<v8::Value> SWIG_From_dec(unsigned long long)(unsigned long long value)
152{
153  return (value > LONG_MAX) ?
154    SWIGV8_INTEGER_NEW_UNS(value) : SWIGV8_INTEGER_NEW(%numeric_cast(value,long));
155}
156%#endif
157}
158
159%fragment(SWIG_AsVal_frag(unsigned long long),"header",
160    fragment=SWIG_AsVal_frag(unsigned long),
161    fragment="SWIG_CanCastAsInteger",
162    fragment="SWIG_LongLongAvailable") {
163%#ifdef SWIG_LONG_LONG_AVAILABLE
164SWIGINTERN
165int SWIG_AsVal_dec(unsigned long long)(v8::Handle<v8::Value> obj, unsigned long long *val)
166{
167  if(!obj->IsNumber()) {
168    return SWIG_TypeError;
169  }
170
171  long long longVal = (long long) SWIGV8_NUMBER_VALUE(obj);
172
173  if(longVal < 0) {
174      return SWIG_OverflowError;
175  }
176
177  if(val) *val = longVal;
178
179  return SWIG_OK;
180}
181%#endif
182}
183
184/* double */
185
186%fragment(SWIG_From_frag(double),"header") {
187SWIGINTERN
188v8::Handle<v8::Value> SWIG_From_dec(double) (double val)
189{
190  return SWIGV8_NUMBER_NEW(val);
191}
192}
193
194%fragment(SWIG_AsVal_frag(double),"header") {
195SWIGINTERN
196int SWIG_AsVal_dec(double)(v8::Handle<v8::Value> obj, double *val)
197{
198  if(!obj->IsNumber()) {
199    return SWIG_TypeError;
200  }
201  if(val) *val = SWIGV8_NUMBER_VALUE(obj);
202
203  return SWIG_OK;
204}
205}
206
207