1typedef struct JSObject JSObject; 2typedef struct JSObjectMap *(*JSNewObjectMapOp) (JSObject *obj); 3typedef JSObject *(*JSGetMethodOp) (JSObject *obj); 4struct JSObjectOps { 5 JSNewObjectMapOp newObjectMap; 6}; 7struct JSXMLObjectOps { 8 struct JSObjectOps base; 9 JSGetMethodOp getMethod; 10}; 11struct JSObjectMap { 12 struct JSObjectOps *ops; 13}; 14struct JSObject { 15 struct JSObjectMap *map; 16}; 17 18struct JSXMLObjectOps js_XMLObjectOps; 19 20 21/* We need to create SFT's for the entire structure when this address is taken, 22 not just the part in the component reference itself. */ 23JSObject *JS_GetMethod(JSObject *obj) 24{ 25 if (obj->map->ops == &js_XMLObjectOps.base) { 26 struct JSXMLObjectOps *ops; 27 ops = (struct JSXMLObjectOps *) obj->map->ops; 28 obj = ops->getMethod(obj); 29 } 30 return obj; 31} 32