nsresult nsXBLProtoImplMethod::Write(nsIScriptContext* aContext, nsIObjectOutputStream* aStream) { nsresult rv = aStream->Write8(XBLBinding_Serialize_Method); NS_ENSURE_SUCCESS(rv, rv); rv = aStream->WriteWStringZ(mName); NS_ENSURE_SUCCESS(rv, rv); return XBL_SerializeFunction(aContext, aStream, mJSMethodObject); }
nsresult nsXBLProtoImplAnonymousMethod::Write(nsIScriptContext* aContext, nsIObjectOutputStream* aStream, XBLBindingSerializeDetails aType) { if (mJSMethodObject) { nsresult rv = aStream->Write8(aType); NS_ENSURE_SUCCESS(rv, rv); rv = XBL_SerializeFunction(aContext, aStream, mJSMethodObject); NS_ENSURE_SUCCESS(rv, rv); } return NS_OK; }
nsresult nsXBLProtoImplProperty::Write(nsIScriptContext* aContext, nsIObjectOutputStream* aStream) { XBLBindingSerializeDetails type; if (mJSAttributes & JSPROP_GETTER) { type = mJSAttributes & JSPROP_SETTER ? XBLBinding_Serialize_GetterSetterProperty : XBLBinding_Serialize_GetterProperty; } else { type = XBLBinding_Serialize_SetterProperty; } if (mJSAttributes & JSPROP_READONLY) { type |= XBLBinding_Serialize_ReadOnly; } nsresult rv = aStream->Write8(type); NS_ENSURE_SUCCESS(rv, rv); rv = aStream->WriteWStringZ(mName); NS_ENSURE_SUCCESS(rv, rv); if (mJSAttributes & JSPROP_GETTER) { rv = XBL_SerializeFunction(aContext, aStream, mJSGetterObject); NS_ENSURE_SUCCESS(rv, rv); } if (mJSAttributes & JSPROP_SETTER) { rv = XBL_SerializeFunction(aContext, aStream, mJSSetterObject); NS_ENSURE_SUCCESS(rv, rv); } return NS_OK; }