1 typedef union jsval_layout {
4 static jsval_layout STRING_TO_JSVAL_IMPL(void *str)
7 typedef __attribute__ ((aligned(8))) unsigned long int jsval;
9 public:void setString()
11 data = STRING_TO_JSVAL_IMPL(0);
13 } __attribute__ ((aligned(8)));
15 static Value StringValue() {
20 static const jsval & Jsvalify(const Value & v) {
21 return (const jsval &)v;
23 static Value *Valueify(jsval * v) {
28 void getQNameLocalName();
30 static Value IdToValue(int id) {
34 static jsval IdToJsval(int id) {
35 return Jsvalify(IdToValue(id));
40 AutoGCRooter *autoGCRooters;
45 AutoGCRooter(JSContext * cx
46 ):down(cx->autoGCRooters),
48 cx->autoGCRooters = this;
51 AutoGCRooter * const down;
52 JSContext *const context;
54 class AutoArrayRooter:
55 private AutoGCRooter {
57 AutoArrayRooter(JSContext *cx,
58 Value *vec): AutoGCRooter(cx),
63 static void PutProperty(JSContext *cx, int id, jsval *vp)
67 roots[1] = IdToJsval(id);
69 AutoArrayRooter tvr(cx, Valueify(roots));
70 nameobj->getQNameLocalName();
73 void xml_defineProperty(JSContext *cx, int id, const Value *v)
75 jsval tmp = Jsvalify(*v);
76 PutProperty(cx, id, &tmp);