bool StructuredCloneData::Copy(const StructuredCloneData& aData) { if (!aData.Data()) { return true; } if (aData.SharedData()) { mSharedData = aData.SharedData(); } else { mSharedData = SharedJSAllocatedData::CreateFromExternalData(aData.Data(), aData.DataLength()); NS_ENSURE_TRUE(mSharedData, false); } PortIdentifiers().AppendElements(aData.PortIdentifiers()); MOZ_ASSERT(BlobImpls().IsEmpty()); BlobImpls().AppendElements(aData.BlobImpls()); MOZ_ASSERT(GetSurfaces().IsEmpty()); return true; }