|
|
|
Lines 107-113
namespace PointerType {
|
Link Here
|
|---|
|
| 107 |
jsval* vp); |
107 |
jsval* vp); |
| 108 |
static JSBool ContentsGetter(JSContext* cx, JSObject* obj, jsid idval, |
108 |
static JSBool ContentsGetter(JSContext* cx, JSObject* obj, jsid idval, |
| 109 |
jsval* vp); |
109 |
jsval* vp); |
| 110 |
static JSBool ContentsSetter(JSContext* cx, JSObject* obj, jsid idval, |
110 |
static JSBool ContentsSetter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, |
| 111 |
jsval* vp); |
111 |
jsval* vp); |
| 112 |
static JSBool IsNull(JSContext* cx, uintN argc, jsval* vp); |
112 |
static JSBool IsNull(JSContext* cx, uintN argc, jsval* vp); |
| 113 |
} |
113 |
} |
|
Lines 121-127
namespace ArrayType {
|
Link Here
|
|---|
|
| 121 |
static JSBool LengthGetter(JSContext* cx, JSObject* obj, jsid idval, |
121 |
static JSBool LengthGetter(JSContext* cx, JSObject* obj, jsid idval, |
| 122 |
jsval* vp); |
122 |
jsval* vp); |
| 123 |
static JSBool Getter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp); |
123 |
static JSBool Getter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp); |
| 124 |
static JSBool Setter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp); |
124 |
static JSBool Setter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, jsval* vp); |
| 125 |
static JSBool AddressOfElement(JSContext* cx, uintN argc, jsval* vp); |
125 |
static JSBool AddressOfElement(JSContext* cx, uintN argc, jsval* vp); |
| 126 |
} |
126 |
} |
| 127 |
|
127 |
|
|
Lines 133-140
namespace StructType {
|
Link Here
|
|---|
|
| 133 |
jsval* vp); |
133 |
jsval* vp); |
| 134 |
static JSBool FieldGetter(JSContext* cx, JSObject* obj, jsid idval, |
134 |
static JSBool FieldGetter(JSContext* cx, JSObject* obj, jsid idval, |
| 135 |
jsval* vp); |
135 |
jsval* vp); |
| 136 |
static JSBool FieldSetter(JSContext* cx, JSObject* obj, jsid idval, |
136 |
static JSBool FieldSetter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, |
| 137 |
jsval* vp); |
137 |
jsval* vp); |
| 138 |
static JSBool AddressOfField(JSContext* cx, uintN argc, jsval* vp); |
138 |
static JSBool AddressOfField(JSContext* cx, uintN argc, jsval* vp); |
| 139 |
static JSBool Define(JSContext* cx, uintN argc, jsval* vp); |
139 |
static JSBool Define(JSContext* cx, uintN argc, jsval* vp); |
| 140 |
} |
140 |
} |
|
|
| 168 |
static void Finalize(JSContext* cx, JSObject* obj); |
168 |
static void Finalize(JSContext* cx, JSObject* obj); |
| 169 |
|
169 |
|
| 170 |
static JSBool ValueGetter(JSContext* cx, JSObject* obj, jsid idval, |
170 |
static JSBool ValueGetter(JSContext* cx, JSObject* obj, jsid idval, |
| 171 |
jsval* vp); |
171 |
jsval* vp); |
| 172 |
static JSBool ValueSetter(JSContext* cx, JSObject* obj, jsid idval, |
172 |
static JSBool ValueSetter(JSContext* cx, JSObject* obj, jsid idval, |
| 173 |
jsval* vp); |
173 |
JSBool strict, jsval* vp); |
| 174 |
static JSBool Address(JSContext* cx, uintN argc, jsval* vp); |
174 |
static JSBool Address(JSContext* cx, uintN argc, jsval* vp); |
| 175 |
static JSBool ReadString(JSContext* cx, uintN argc, jsval* vp); |
175 |
static JSBool ReadString(JSContext* cx, uintN argc, jsval* vp); |
| 176 |
static JSBool ToSource(JSContext* cx, uintN argc, jsval* vp); |
176 |
static JSBool ToSource(JSContext* cx, uintN argc, jsval* vp); |
|
|
| 225 |
static JSClass sCTypesGlobalClass = { |
225 |
static JSClass sCTypesGlobalClass = { |
| 226 |
"ctypes", |
226 |
"ctypes", |
| 227 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPESGLOBAL_SLOTS), |
227 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPESGLOBAL_SLOTS), |
| 228 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
228 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 229 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
229 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
| 230 |
JSCLASS_NO_OPTIONAL_MEMBERS |
230 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 231 |
}; |
231 |
}; |
|
Lines 233-239
static JSClass sCTypesGlobalClass = {
|
Link Here
|
|---|
|
| 233 |
static JSClass sCABIClass = { |
233 |
static JSClass sCABIClass = { |
| 234 |
"CABI", |
234 |
"CABI", |
| 235 |
JSCLASS_HAS_RESERVED_SLOTS(CABI_SLOTS), |
235 |
JSCLASS_HAS_RESERVED_SLOTS(CABI_SLOTS), |
| 236 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
236 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 237 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
237 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
| 238 |
JSCLASS_NO_OPTIONAL_MEMBERS |
238 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 239 |
}; |
239 |
}; |
|
Lines 244-250
static JSClass sCABIClass = {
|
Link Here
|
|---|
|
| 244 |
static JSClass sCTypeProtoClass = { |
244 |
static JSClass sCTypeProtoClass = { |
| 245 |
"CType", |
245 |
"CType", |
| 246 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPEPROTO_SLOTS), |
246 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPEPROTO_SLOTS), |
| 247 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
247 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 248 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CType::FinalizeProtoClass, |
248 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CType::FinalizeProtoClass, |
| 249 |
NULL, NULL, ConstructAbstract, ConstructAbstract, NULL, NULL, NULL, NULL |
249 |
NULL, NULL, ConstructAbstract, ConstructAbstract, NULL, NULL, NULL, NULL |
| 250 |
}; |
250 |
}; |
|
Lines 254-260
static JSClass sCTypeProtoClass = {
|
Link Here
|
|---|
|
| 254 |
static JSClass sCDataProtoClass = { |
254 |
static JSClass sCDataProtoClass = { |
| 255 |
"CData", |
255 |
"CData", |
| 256 |
0, |
256 |
0, |
| 257 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
257 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 258 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
258 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
| 259 |
JSCLASS_NO_OPTIONAL_MEMBERS |
259 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 260 |
}; |
260 |
}; |
|
Lines 262-268
static JSClass sCDataProtoClass = {
|
Link Here
|
|---|
|
| 262 |
static JSClass sCTypeClass = { |
262 |
static JSClass sCTypeClass = { |
| 263 |
"CType", |
263 |
"CType", |
| 264 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPE_SLOTS) | JSCLASS_MARK_IS_TRACE, |
264 |
JSCLASS_HAS_RESERVED_SLOTS(CTYPE_SLOTS) | JSCLASS_MARK_IS_TRACE, |
| 265 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
265 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 266 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CType::Finalize, |
266 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CType::Finalize, |
| 267 |
NULL, NULL, CType::ConstructData, CType::ConstructData, NULL, |
267 |
NULL, NULL, CType::ConstructData, CType::ConstructData, NULL, |
| 268 |
CType::HasInstance, JS_CLASS_TRACE(CType::Trace), NULL |
268 |
CType::HasInstance, JS_CLASS_TRACE(CType::Trace), NULL |
|
Lines 279-285
static JSClass sCDataClass = {
|
Link Here
|
|---|
|
| 279 |
static JSClass sCClosureClass = { |
279 |
static JSClass sCClosureClass = { |
| 280 |
"CClosure", |
280 |
"CClosure", |
| 281 |
JSCLASS_HAS_RESERVED_SLOTS(CCLOSURE_SLOTS) | JSCLASS_MARK_IS_TRACE, |
281 |
JSCLASS_HAS_RESERVED_SLOTS(CCLOSURE_SLOTS) | JSCLASS_MARK_IS_TRACE, |
| 282 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
282 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 283 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CClosure::Finalize, |
283 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, CClosure::Finalize, |
| 284 |
NULL, NULL, NULL, NULL, NULL, NULL, JS_CLASS_TRACE(CClosure::Trace), NULL |
284 |
NULL, NULL, NULL, NULL, NULL, NULL, JS_CLASS_TRACE(CClosure::Trace), NULL |
| 285 |
}; |
285 |
}; |
|
Lines 396-402
static JSPropertySpec sFunctionProps[] =
|
Link Here
|
|---|
|
| 396 |
static JSClass sInt64ProtoClass = { |
396 |
static JSClass sInt64ProtoClass = { |
| 397 |
"Int64", |
397 |
"Int64", |
| 398 |
0, |
398 |
0, |
| 399 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
399 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 400 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
400 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
| 401 |
JSCLASS_NO_OPTIONAL_MEMBERS |
401 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 402 |
}; |
402 |
}; |
|
Lines 404-410
static JSClass sInt64ProtoClass = {
|
Link Here
|
|---|
|
| 404 |
static JSClass sUInt64ProtoClass = { |
404 |
static JSClass sUInt64ProtoClass = { |
| 405 |
"UInt64", |
405 |
"UInt64", |
| 406 |
0, |
406 |
0, |
| 407 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
407 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 408 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
408 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, |
| 409 |
JSCLASS_NO_OPTIONAL_MEMBERS |
409 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 410 |
}; |
410 |
}; |
|
Lines 412-418
static JSClass sUInt64ProtoClass = {
|
Link Here
|
|---|
|
| 412 |
static JSClass sInt64Class = { |
412 |
static JSClass sInt64Class = { |
| 413 |
"Int64", |
413 |
"Int64", |
| 414 |
JSCLASS_HAS_RESERVED_SLOTS(INT64_SLOTS), |
414 |
JSCLASS_HAS_RESERVED_SLOTS(INT64_SLOTS), |
| 415 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
415 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 416 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, Int64Base::Finalize, |
416 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, Int64Base::Finalize, |
| 417 |
JSCLASS_NO_OPTIONAL_MEMBERS |
417 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 418 |
}; |
418 |
}; |
|
Lines 420-426
static JSClass sInt64Class = {
|
Link Here
|
|---|
|
| 420 |
static JSClass sUInt64Class = { |
420 |
static JSClass sUInt64Class = { |
| 421 |
"UInt64", |
421 |
"UInt64", |
| 422 |
JSCLASS_HAS_RESERVED_SLOTS(INT64_SLOTS), |
422 |
JSCLASS_HAS_RESERVED_SLOTS(INT64_SLOTS), |
| 423 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, |
423 |
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, |
| 424 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, Int64Base::Finalize, |
424 |
JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, Int64Base::Finalize, |
| 425 |
JSCLASS_NO_OPTIONAL_MEMBERS |
425 |
JSCLASS_NO_OPTIONAL_MEMBERS |
| 426 |
}; |
426 |
}; |
|
Lines 944-950
JS_InitCTypesClass(JSContext* cx, JSObje
|
Link Here
|
|---|
|
| 944 |
return false; |
944 |
return false; |
| 945 |
|
945 |
|
| 946 |
if (!JS_DefineProperty(cx, global, "ctypes", OBJECT_TO_JSVAL(ctypes), |
946 |
if (!JS_DefineProperty(cx, global, "ctypes", OBJECT_TO_JSVAL(ctypes), |
| 947 |
JS_PropertyStub, JS_PropertyStub, JSPROP_READONLY | JSPROP_PERMANENT)) { |
947 |
JS_PropertyStub, JS_StrictPropertyStub, JSPROP_READONLY | JSPROP_PERMANENT)) { |
| 948 |
return false; |
948 |
return false; |
| 949 |
} |
949 |
} |
| 950 |
|
950 |
|
|
|
| 3401 |
PointerType::ContentsSetter(JSContext* cx, |
3401 |
PointerType::ContentsSetter(JSContext* cx, |
| 3402 |
JSObject* obj, |
3402 |
JSObject* obj, |
| 3403 |
jsid idval, |
3403 |
jsid idval, |
|
|
3404 |
JSBool strict, |
| 3404 |
jsval* vp) |
3405 |
jsval* vp) |
| 3405 |
{ |
3406 |
{ |
| 3406 |
if (!CData::IsCData(cx, obj)) { |
3407 |
if (!CData::IsCData(cx, obj)) { |
|
Lines 3789-3795
ArrayType::Getter(JSContext* cx, JSObjec
|
Link Here
|
|---|
|
| 3789 |
} |
3790 |
} |
| 3790 |
|
3791 |
|
| 3791 |
JSBool |
3792 |
JSBool |
| 3792 |
ArrayType::Setter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp) |
3793 |
ArrayType::Setter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, jsval* vp) |
| 3793 |
{ |
3794 |
{ |
| 3794 |
// This should never happen, but we'll check to be safe. |
3795 |
// This should never happen, but we'll check to be safe. |
| 3795 |
if (!CData::IsCData(cx, obj)) { |
3796 |
if (!CData::IsCData(cx, obj)) { |
|
Lines 4431-4437
StructType::FieldGetter(JSContext* cx, J
|
Link Here
|
|---|
|
| 4431 |
} |
4432 |
} |
| 4432 |
|
4433 |
|
| 4433 |
JSBool |
4434 |
JSBool |
| 4434 |
StructType::FieldSetter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp) |
4435 |
StructType::FieldSetter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, jsval* vp) |
| 4435 |
{ |
4436 |
{ |
| 4436 |
if (!CData::IsCData(cx, obj)) { |
4437 |
if (!CData::IsCData(cx, obj)) { |
| 4437 |
JS_ReportError(cx, "not a CData"); |
4438 |
JS_ReportError(cx, "not a CData"); |
|
Lines 5592-5598
CData::ValueGetter(JSContext* cx, JSObje
|
Link Here
|
|---|
|
| 5592 |
} |
5593 |
} |
| 5593 |
|
5594 |
|
| 5594 |
JSBool |
5595 |
JSBool |
| 5595 |
CData::ValueSetter(JSContext* cx, JSObject* obj, jsid idval, jsval* vp) |
5596 |
CData::ValueSetter(JSContext* cx, JSObject* obj, jsid idval, JSBool strict, jsval* vp) |
| 5596 |
{ |
5597 |
{ |
| 5597 |
if (!IsCData(cx, obj)) { |
5598 |
if (!IsCData(cx, obj)) { |
| 5598 |
JS_ReportError(cx, "not a CData"); |
5599 |
JS_ReportError(cx, "not a CData"); |