]> git.wh0rd.org - ICEs.git/blobdiff - 571482/jsxml.ii.7
more
[ICEs.git] / 571482 / jsxml.ii.7
diff --git a/571482/jsxml.ii.7 b/571482/jsxml.ii.7
new file mode 100644 (file)
index 0000000..b793eab
--- /dev/null
@@ -0,0 +1,111 @@
+       typedef union jsval_layout {
+               unsigned long int asBits;
+       } jsval_layout;
+       static jsval_layout STRING_TO_JSVAL_IMPL(void * str) {
+       } 
+typedef __attribute__ ((aligned(8))) unsigned long int jsval;
+       typedef struct JSLinearString JSLinearString;
+
+namespace js {}
+using namespace js;
+
+namespace js {
+       class Value {
+             public:void setString() {
+                       data = STRING_TO_JSVAL_IMPL(0);
+               } jsval_layout data;
+       } __attribute__ ((aligned(8)));
+       static Value StringValue() {
+               Value v;
+               v.setString();
+               return v;
+       }
+       static const jsval & Jsvalify(const Value & v) {
+               return (const jsval &)v;
+       }
+       static Value *Valueify(jsval * v) {
+               return (Value *) v;
+       }
+       struct Class {
+       };
+       namespace gc {
+               struct Cell {
+               };
+}} struct 
+JSObject:js::gc::
+Cell 
+{
+Class * getClass() const {
+       } inline JSLinearString *getQNameLocalName() const;
+};
+namespace js {
+       static Value IdToValue(long int id) {
+               if (id)
+                       return StringValue();
+       } static jsval IdToJsval(long int id) {
+               return Jsvalify(IdToValue(id));
+       }
+}
+
+inline int js_IdIsIndex(long int id, unsigned int * indexp)
+{
+}
+
+namespace js {
+       class AutoGCRooter;
+} struct JSContext {
+AutoGCRooter * autoGCRooters;
+};
+namespace js {
+       class AutoGCRooter {
+             public:AutoGCRooter(JSContext * cx,
+                            long int tag):down(cx->autoGCRooters), tag(tag),
+                   context(cx) {
+                       cx->autoGCRooters = this;
+             } protected:AutoGCRooter * const down;
+               long int tag;
+               JSContext *const context;
+       };
+       class AutoArrayRooter:private AutoGCRooter {
+             public:AutoArrayRooter(JSContext * cx, long unsigned int len,
+                               Value * vec):AutoGCRooter(cx, len),
+                   array(vec) {
+               } Value *array;
+      private:};
+}
+
+typedef enum JSXMLClass {
+       JSXML_CLASS_ATTRIBUTE
+} JSXMLElemVar;
+struct 
+JSXML:js::
+gc::
+Cell {
+       unsigned int xml_class;
+};
+Class js_AttributeNameClass;
+static JSObject *NewXMLAttributeName(JSLinearString * localName)
+{
+}
+
+static void PutProperty(JSContext * cx, 
+long int id,
+jsval * vp)
+{
+       JSObject *nameobj;
+       jsval roots[3];
+       roots[1] = IdToJsval(id);
+       roots[2] = *vp;
+       AutoArrayRooter tvr(cx, 0, Valueify(roots));
+                                   NewXMLAttributeName(nameobj->
+                                                       getQNameLocalName());
+}
+
+void xml_defineProperty(
+JSContext * cx,
+long int id,
+                         const Value * v)
+{
+       jsval tmp = Jsvalify(*v);
+PutProperty(cx, id, &tmp);
+}