mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
script: make Error::to_jsval safe (#35411)
Signed-off-by: Stephen Muss <stephenmuss@gmail.com>
This commit is contained in:
parent
8486e585f5
commit
cb588bab6a
8 changed files with 41 additions and 64 deletions
|
@ -245,20 +245,17 @@ impl ReadableStreamDefaultReader {
|
|||
}
|
||||
|
||||
/// <https://streams.spec.whatwg.org/#abstract-opdef-readablestreamdefaultreaderrelease>
|
||||
#[allow(unsafe_code)]
|
||||
pub(crate) fn release(&self) -> Fallible<()> {
|
||||
// Perform ! ReadableStreamReaderGenericRelease(reader).
|
||||
self.generic_release()?;
|
||||
// Let e be a new TypeError exception.
|
||||
let cx = GlobalScope::get_cx();
|
||||
rooted!(in(*cx) let mut error = UndefinedValue());
|
||||
unsafe {
|
||||
Error::Type("Reader is released".to_owned()).to_jsval(
|
||||
*cx,
|
||||
&self.global(),
|
||||
error.handle_mut(),
|
||||
)
|
||||
};
|
||||
Error::Type("Reader is released".to_owned()).to_jsval(
|
||||
cx,
|
||||
&self.global(),
|
||||
error.handle_mut(),
|
||||
);
|
||||
|
||||
// Perform ! ReadableStreamDefaultReaderErrorReadRequests(reader, e).
|
||||
self.error_read_requests(error.handle());
|
||||
|
@ -363,19 +360,16 @@ impl ReadableStreamDefaultReaderMethods<crate::DomTypeHolder> for ReadableStream
|
|||
}
|
||||
|
||||
/// <https://streams.spec.whatwg.org/#default-reader-read>
|
||||
#[allow(unsafe_code)]
|
||||
fn Read(&self, can_gc: CanGc) -> Rc<Promise> {
|
||||
// If this.[[stream]] is undefined, return a promise rejected with a TypeError exception.
|
||||
if self.stream.get().is_none() {
|
||||
let cx = GlobalScope::get_cx();
|
||||
rooted!(in(*cx) let mut error = UndefinedValue());
|
||||
unsafe {
|
||||
Error::Type("stream is undefined".to_owned()).to_jsval(
|
||||
*cx,
|
||||
&self.global(),
|
||||
error.handle_mut(),
|
||||
)
|
||||
};
|
||||
Error::Type("stream is undefined".to_owned()).to_jsval(
|
||||
cx,
|
||||
&self.global(),
|
||||
error.handle_mut(),
|
||||
);
|
||||
return Promise::new_rejected(&self.global(), cx, error.handle()).unwrap();
|
||||
}
|
||||
// Let promise be a new promise.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue