mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
updated Blob constructor to use optional, fixes https://github.com/servo/servo/issues/10779
This commit is contained in:
parent
98ae238adf
commit
711c23ae39
3 changed files with 21 additions and 27 deletions
|
@ -117,29 +117,28 @@ impl Blob {
|
|||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#constructorBlob
|
||||
pub fn Constructor(global: GlobalRef) -> Fallible<Root<Blob>> {
|
||||
Ok(Blob::new(global, Vec::new(), ""))
|
||||
}
|
||||
|
||||
// https://w3c.github.io/FileAPI/#constructorBlob
|
||||
pub fn Constructor_(global: GlobalRef,
|
||||
blobParts: Vec<BlobOrString>,
|
||||
blobPropertyBag: &BlobBinding::BlobPropertyBag)
|
||||
-> Fallible<Root<Blob>> {
|
||||
pub fn Constructor(global: GlobalRef,
|
||||
blobParts: Option<Vec<BlobOrString>>,
|
||||
blobPropertyBag: &BlobBinding::BlobPropertyBag)
|
||||
-> Fallible<Root<Blob>> {
|
||||
|
||||
// TODO: accept other blobParts types - ArrayBuffer or ArrayBufferView
|
||||
let bytes: Vec<u8> = blobParts.iter()
|
||||
.flat_map(|bPart| {
|
||||
match bPart {
|
||||
&BlobOrString::String(ref s) => {
|
||||
UTF_8.encode(s, EncoderTrap::Replace).unwrap()
|
||||
},
|
||||
&BlobOrString::Blob(ref b) => {
|
||||
b.get_data().get_bytes().to_vec()
|
||||
},
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
let bytes: Vec<u8> = match blobParts {
|
||||
None => Vec::new(),
|
||||
Some(blobs) => {
|
||||
blobs.iter().flat_map(|bPart| {
|
||||
match bPart {
|
||||
&BlobOrString::String(ref s) => {
|
||||
UTF_8.encode(s, EncoderTrap::Replace).unwrap()
|
||||
},
|
||||
&BlobOrString::Blob(ref b) => {
|
||||
b.get_data().get_bytes().to_vec()
|
||||
},
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
};
|
||||
let typeString = if is_ascii_printable(&blobPropertyBag.type_) {
|
||||
&*blobPropertyBag.type_
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue