X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=571482%2Fjsxml.ii.7;fp=571482%2Fjsxml.ii.7;h=b793eabc3145dbec13a265ccd5bd056b35c4c240;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/571482/jsxml.ii.7 b/571482/jsxml.ii.7 new file mode 100644 index 0000000..b793eab --- /dev/null +++ b/571482/jsxml.ii.7 @@ -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); +}