mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-28 22:53:28 +00:00
TypeError when Stream is locked
This commit is contained in:
@@ -75,7 +75,15 @@ pub fn constructor(underlying: ?UnderlyingSource, strategy: ?QueueingStrategy, p
|
||||
return stream;
|
||||
}
|
||||
|
||||
pub fn _cancel(self: *const ReadableStream, page: *Page) Env.Promise {
|
||||
pub fn get_locked(self: *const ReadableStream) bool {
|
||||
return self.locked;
|
||||
}
|
||||
|
||||
pub fn _cancel(self: *const ReadableStream, page: *Page) !Env.Promise {
|
||||
if (self.locked) {
|
||||
return error.TypeError;
|
||||
}
|
||||
|
||||
const resolver = Env.PromiseResolver{
|
||||
.js_context = page.main_context,
|
||||
.resolver = self.cancel_resolver.castToPromiseResolver(),
|
||||
@@ -84,21 +92,28 @@ pub fn _cancel(self: *const ReadableStream, page: *Page) Env.Promise {
|
||||
return resolver.promise();
|
||||
}
|
||||
|
||||
pub fn get_locked(self: *const ReadableStream) bool {
|
||||
return self.locked;
|
||||
}
|
||||
|
||||
const GetReaderOptions = struct {
|
||||
// Mode must equal 'byob' or be undefined. RangeError otherwise.
|
||||
mode: ?[]const u8 = null,
|
||||
};
|
||||
|
||||
pub fn _getReader(self: *ReadableStream, _options: ?GetReaderOptions, page: *Page) ReadableStreamDefaultReader {
|
||||
pub fn _getReader(self: *ReadableStream, _options: ?GetReaderOptions, page: *Page) !ReadableStreamDefaultReader {
|
||||
if (self.locked) {
|
||||
return error.TypeError;
|
||||
}
|
||||
|
||||
const options = _options orelse GetReaderOptions{};
|
||||
_ = options;
|
||||
|
||||
return ReadableStreamDefaultReader.constructor(self, page);
|
||||
}
|
||||
|
||||
// TODO: pipeThrough (requires TransformStream)
|
||||
|
||||
// TODO: pipeTo (requires WritableStream)
|
||||
|
||||
// TODO: tee
|
||||
|
||||
const testing = @import("../../testing.zig");
|
||||
test "streams: ReadableStream" {
|
||||
var runner = try testing.jsRunner(testing.tracking_allocator, .{ .url = "https://lightpanda.io" });
|
||||
|
||||
@@ -54,5 +54,4 @@ pub fn _enqueue(self: *ReadableStreamDefaultController, chunk: []const u8, page:
|
||||
|
||||
pub fn _error(self: *ReadableStreamDefaultController, err: Env.JsObject) void {
|
||||
self.stream.state = .{ .errored = err };
|
||||
// set to error.
|
||||
}
|
||||
|
||||
@@ -47,8 +47,8 @@ pub fn get_closed(self: *const ReadableStreamDefaultReader) Env.Promise {
|
||||
return self.closed_resolver.promise();
|
||||
}
|
||||
|
||||
pub fn _cancel(self: *ReadableStreamDefaultReader, page: *Page) Env.Promise {
|
||||
return self.stream._cancel(page);
|
||||
pub fn _cancel(self: *ReadableStreamDefaultReader, page: *Page) !Env.Promise {
|
||||
return try self.stream._cancel(page);
|
||||
}
|
||||
|
||||
pub const ReadableStreamReadResult = struct {
|
||||
|
||||
Reference in New Issue
Block a user