mirror of
				https://github.com/lightpanda-io/browser.git
				synced 2025-10-30 15:41:48 +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
	 Muki Kiboigo
					Muki Kiboigo