Best JavaScript code snippet using wpt
TransformStreamInternals.js
Source:TransformStreamInternals.js
1/*2 * Copyright (C) 2020 Apple Inc. All rights reserved.3 *4 * Redistribution and use in source and binary forms, with or without5 * modification, are permitted provided that the following conditions6 * are met:7 * 1. Redistributions of source code must retain the above copyright8 * notice, this list of conditions and the following disclaimer.9 * 2. Redistributions in binary form must reproduce the above copyright10 * notice, this list of conditions and the following disclaimer in the11 * documentation and/or other materials provided with the distribution.12 *13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF23 * THE POSSIBILITY OF SUCH DAMAGE.24 */25// @internal26function isTransformStream(stream)27{28 "use strict";29 return @isObject(stream) && !!@getByIdDirectPrivate(stream, "readable");30}31function isTransformStreamDefaultController(controller)32{33 "use strict";34 return @isObject(controller) && !!@getByIdDirectPrivate(controller, "transformAlgorithm");35}36function createTransformStream(startAlgorithm, transformAlgorithm, flushAlgorithm, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm)37{38 if (writableHighWaterMark === @undefined)39 writableHighWaterMark = 1;40 if (writableSizeAlgorithm === @undefined)41 writableSizeAlgorithm = () => 1;42 if (readableHighWaterMark === @undefined)43 readableHighWaterMark = 0;44 if (readableSizeAlgorithm === @undefined)45 readableSizeAlgorithm = () => 1;46 @assert(writableHighWaterMark >= 0);47 @assert(readableHighWaterMark >= 0);48 const transform = {};49 @putByIdDirectPrivate(transform, "TransformStream", true);50 const stream = new @TransformStream(transform);51 const startPromiseCapability = @newPromiseCapability(@Promise);52 @initializeTransformStream(stream, startPromiseCapability.@promise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);53 const controller = new @TransformStreamDefaultController();54 @setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);55 startAlgorithm().@then(() => {56 startPromiseCapability.@resolve.@call();57 }, (error) => {58 startPromiseCapability.@reject.@call(@undefined, error);59 });60 return stream;61}62function initializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm)63{64 "use strict";65 const startAlgorithm = () => { return startPromise; };66 const writeAlgorithm = (chunk) => { return @transformStreamDefaultSinkWriteAlgorithm(stream, chunk); }67 const abortAlgorithm = (reason) => { return @transformStreamDefaultSinkAbortAlgorithm(stream, reason); }68 const closeAlgorithm = () => { return @transformStreamDefaultSinkCloseAlgorithm(stream); }69 const writable = @createWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);70 const pullAlgorithm = () => { return @transformStreamDefaultSourcePullAlgorithm(stream); };71 const cancelAlgorithm = (reason) => {72 @transformStreamErrorWritableAndUnblockWrite(stream, reason);73 return @Promise.@resolve();74 };75 const underlyingSource = { };76 @putByIdDirectPrivate(underlyingSource, "start", startAlgorithm);77 @putByIdDirectPrivate(underlyingSource, "pull", pullAlgorithm);78 @putByIdDirectPrivate(underlyingSource, "cancel", cancelAlgorithm);79 const options = { };80 @putByIdDirectPrivate(options, "size", readableSizeAlgorithm);81 @putByIdDirectPrivate(options, "highWaterMark", readableHighWaterMark);82 const readable = new @ReadableStream(underlyingSource, options);83 // The writable to expose to JS through writable getter.84 @putByIdDirectPrivate(stream, "writable", writable);85 // The writable to use for the actual transform algorithms.86 @putByIdDirectPrivate(stream, "internalWritable", @getInternalWritableStream(writable));87 @putByIdDirectPrivate(stream, "readable", readable);88 @putByIdDirectPrivate(stream, "backpressure", @undefined);89 @putByIdDirectPrivate(stream, "backpressureChangePromise", @undefined);90 @transformStreamSetBackpressure(stream, true);91 @putByIdDirectPrivate(stream, "controller", @undefined);92}93function transformStreamError(stream, e)94{95 "use strict";96 const readable = @getByIdDirectPrivate(stream, "readable");97 const readableController = @getByIdDirectPrivate(readable, "readableStreamController");98 @readableStreamDefaultControllerError(readableController, e);99 @transformStreamErrorWritableAndUnblockWrite(stream, e);100}101function transformStreamErrorWritableAndUnblockWrite(stream, e)102{103 "use strict";104 @transformStreamDefaultControllerClearAlgorithms(@getByIdDirectPrivate(stream, "controller"));105 const writable = @getByIdDirectPrivate(stream, "internalWritable");106 @writableStreamDefaultControllerErrorIfNeeded(@getByIdDirectPrivate(writable, "controller"), e);107 if (@getByIdDirectPrivate(stream, "backpressure"))108 @transformStreamSetBackpressure(stream, false);109}110function transformStreamSetBackpressure(stream, backpressure)111{112 "use strict";113 @assert(@getByIdDirectPrivate(stream, "backpressure") !== backpressure);114 const backpressureChangePromise = @getByIdDirectPrivate(stream, "backpressureChangePromise");115 if (backpressureChangePromise !== @undefined)116 backpressureChangePromise.@resolve.@call();117 @putByIdDirectPrivate(stream, "backpressureChangePromise", @newPromiseCapability(@Promise));118 @putByIdDirectPrivate(stream, "backpressure", backpressure);119}120function setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm)121{122 "use strict";123 @assert(@isTransformStream(stream));124 @assert(@getByIdDirectPrivate(stream, "controller") === @undefined);125 @putByIdDirectPrivate(controller, "stream", stream);126 @putByIdDirectPrivate(stream, "controller", controller);127 @putByIdDirectPrivate(controller, "transformAlgorithm", transformAlgorithm);128 @putByIdDirectPrivate(controller, "flushAlgorithm", flushAlgorithm);129}130function setUpTransformStreamDefaultControllerFromTransformer(stream, transformer, transformerDict)131{132 "use strict";133 const controller = new @TransformStreamDefaultController();134 let transformAlgorithm = (chunk) => {135 try {136 @transformStreamDefaultControllerEnqueue(controller, chunk);137 } catch (e) {138 return @Promise.@reject(e);139 }140 return @Promise.@resolve();141 };142 let flushAlgorithm = () => { return @Promise.@resolve(); };143 if ("transform" in transformerDict)144 transformAlgorithm = (chunk) => {145 return @promiseInvokeOrNoopMethod(transformer, transformerDict["transform"], [chunk, controller]);146 };147 if ("flush" in transformerDict) {148 flushAlgorithm = () => {149 return @promiseInvokeOrNoopMethod(transformer, transformerDict["flush"], [controller]);150 };151 }152 @setUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);153}154function transformStreamDefaultControllerClearAlgorithms(controller)155{156 "use strict";157 // We set transformAlgorithm to true to allow GC but keep the isTransformStreamDefaultController check.158 @putByIdDirectPrivate(controller, "transformAlgorithm", true);159 @putByIdDirectPrivate(controller, "flushAlgorithm", @undefined);160}161function transformStreamDefaultControllerEnqueue(controller, chunk)162{163 "use strict";164 const stream = @getByIdDirectPrivate(controller, "stream");165 const readable = @getByIdDirectPrivate(stream, "readable");166 const readableController = @getByIdDirectPrivate(readable, "readableStreamController");167 @assert(readableController !== @undefined);168 if (!@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))169 @throwTypeError("TransformStream.readable cannot close or enqueue");170 try {171 @readableStreamDefaultControllerEnqueue(readableController, chunk);172 } catch (e) {173 @transformStreamErrorWritableAndUnblockWrite(stream, e);174 throw @getByIdDirectPrivate(readable, "storedError");175 }176 const backpressure = !@readableStreamDefaultControllerShouldCallPull(readableController);177 if (backpressure !== @getByIdDirectPrivate(stream, "backpressure")) {178 @assert(backpressure);179 @transformStreamSetBackpressure(stream, true);180 }181}182function transformStreamDefaultControllerError(controller, e)183{184 "use strict";185 @transformStreamError(@getByIdDirectPrivate(controller, "stream"), e);186}187function transformStreamDefaultControllerPerformTransform(controller, chunk)188{189 "use strict";190 const promiseCapability = @newPromiseCapability(@Promise);191 const transformPromise = @getByIdDirectPrivate(controller, "transformAlgorithm").@call(@undefined, chunk);192 transformPromise.@then(() => {193 promiseCapability.@resolve();194 }, (r) => {195 @transformStreamError(@getByIdDirectPrivate(controller, "stream"), r);196 promiseCapability.@reject.@call(@undefined, r);197 });198 return promiseCapability.@promise;199}200function transformStreamDefaultControllerTerminate(controller)201{202 "use strict";203 const stream = @getByIdDirectPrivate(controller, "stream");204 const readable = @getByIdDirectPrivate(stream, "readable");205 const readableController = @getByIdDirectPrivate(readable, "readableStreamController");206 // FIXME: Update readableStreamDefaultControllerClose to make this check.207 if (@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))208 @readableStreamDefaultControllerClose(readableController);209 const error = @makeTypeError("the stream has been terminated");210 @transformStreamErrorWritableAndUnblockWrite(stream, error);211}212function transformStreamDefaultSinkWriteAlgorithm(stream, chunk)213{214 "use strict";215 const writable = @getByIdDirectPrivate(stream, "internalWritable");216 @assert(@getByIdDirectPrivate(writable, "state") === "writable");217 const controller = @getByIdDirectPrivate(stream, "controller");218 if (@getByIdDirectPrivate(stream, "backpressure")) {219 const promiseCapability = @newPromiseCapability(@Promise);220 const backpressureChangePromise = @getByIdDirectPrivate(stream, "backpressureChangePromise");221 @assert(backpressureChangePromise !== @undefined);222 backpressureChangePromise.@promise.@then(() => {223 const state = @getByIdDirectPrivate(writable, "state");224 if (state === "erroring") {225 promiseCapability.@reject.@call(@undefined, @getByIdDirectPrivate(writable, "storedError"));226 return;227 }228 @assert(state === "writable");229 @transformStreamDefaultControllerPerformTransform(controller, chunk).@then(() => {230 promiseCapability.@resolve();231 }, (e) => {232 promiseCapability.@reject.@call(@undefined, e);233 });234 }, (e) => {235 promiseCapability.@reject.@call(@undefined, e);236 });237 return promiseCapability.@promise;238 }239 return @transformStreamDefaultControllerPerformTransform(controller, chunk);240}241function transformStreamDefaultSinkAbortAlgorithm(stream, reason)242{243 "use strict";244 @transformStreamError(stream, reason);245 return @Promise.@resolve();246}247function transformStreamDefaultSinkCloseAlgorithm(stream)248{249 "use strict";250 const readable = @getByIdDirectPrivate(stream, "readable");251 const controller = @getByIdDirectPrivate(stream, "controller");252 const readableController = @getByIdDirectPrivate(readable, "readableStreamController");253 const flushAlgorithm = @getByIdDirectPrivate(controller, "flushAlgorithm");254 @assert(flushAlgorithm !== @undefined);255 const flushPromise = @getByIdDirectPrivate(controller, "flushAlgorithm").@call();256 @transformStreamDefaultControllerClearAlgorithms(controller);257 const promiseCapability = @newPromiseCapability(@Promise);258 flushPromise.@then(() => {259 if (@getByIdDirectPrivate(readable, "state") === @streamErrored) {260 promiseCapability.@reject.@call(@undefined, @getByIdDirectPrivate(readable, "storedError"));261 return;262 }263 // FIXME: Update readableStreamDefaultControllerClose to make this check.264 if (@readableStreamDefaultControllerCanCloseOrEnqueue(readableController))265 @readableStreamDefaultControllerClose(readableController);266 promiseCapability.@resolve();267 }, (r) => {268 @transformStreamError(@getByIdDirectPrivate(controller, "stream"), r);269 promiseCapability.@reject.@call(@undefined, @getByIdDirectPrivate(readable, "storedError"));270 });271 return promiseCapability.@promise;272}273function transformStreamDefaultSourcePullAlgorithm(stream)274{275 "use strict";276 @assert(@getByIdDirectPrivate(stream, "backpressure"));277 @assert(@getByIdDirectPrivate(stream, "backpressureChangePromise") !== @undefined);278 @transformStreamSetBackpressure(stream, false);279 return @getByIdDirectPrivate(stream, "backpressureChangePromise").@promise;...
transform_stream_controller.ts
Source:transform_stream_controller.ts
...163) {164 const stream = controller.controlledTransformStream;165 const readableController = stream.readable.readableStreamController;166 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {167 ReadableStreamDefaultControllerClose(readableController);168 }169 const error = new TypeError("stream ended");170 TransformStreamErrorWritableAndUnblockWrite(stream, error);171}172export function TransformStreamDefaultSinkWriteAlgorithm(173 stream: TransformStream,174 chunk175) {176 Assert(stream.writable.state === "writable");177 const controller = stream.transformStreamController;178 if (stream.backpressure) {179 const p = stream.backpressureChangePromise;180 Assert(p !== void 0);181 return p.then(() => {182 const writable = stream.writable;183 const { state } = writable;184 if (state === "erroring") {185 throw writable.storedError;186 }187 Assert(state === "writable");188 return TransformStreamDefaultControllerPerformTransform(189 controller,190 chunk191 );192 });193 }194 return TransformStreamDefaultControllerPerformTransform(controller, chunk);195}196export async function TransformStreamDefaultSinkAbortAlgorithm(197 stream: TransformStream,198 reason199) {200 TransformStreamError(stream, reason);201}202export function TransformStreamDefaultSinkCloseAlgorithm(203 stream: TransformStream204) {205 const { readable } = stream;206 const controller = stream.transformStreamController;207 const flushPromise = controller.flushAlgorithm();208 TransformStreamDefaultControllerClearAlgorithms(controller);209 return flushPromise210 .then(() => {211 if (readable.state === "errored") {212 throw readable.storedError;213 }214 const readableController = readable.readableStreamController;215 if (216 ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)217 ) {218 ReadableStreamDefaultControllerClose(readableController);219 }220 })221 .catch(r => {222 TransformStreamError(stream, r);223 throw readable.storedError;224 });225}226export function TransformStreamDefaultSourcePullAlgorithm(227 stream: TransformStream228) {229 Assert(stream.backpressure);230 Assert(stream.backpressureChangePromise !== void 0);231 TransformStreamSetBackpressure(stream, false);232 return stream.backpressureChangePromise;...
tee.ts
Source:tee.ts
...60 },61 _closeSteps: () => {62 reading = false;63 if (!canceled1) {64 ReadableStreamDefaultControllerClose(branch1._readableStreamController as ReadableStreamDefaultController<R>);65 }66 if (!canceled2) {67 ReadableStreamDefaultControllerClose(branch2._readableStreamController as ReadableStreamDefaultController<R>);68 }69 },70 _errorSteps: () => {71 reading = false;72 }73 };74 ReadableStreamDefaultReaderRead(reader, readRequest);75 return promiseResolvedWith(undefined);76 }77 function cancel1Algorithm(reason: any): Promise<void> {78 canceled1 = true;79 reason1 = reason;80 if (canceled2) {81 const compositeReason = CreateArrayFromList([reason1, reason2]);...
Using AI Code Generation
1var rs = new ReadableStream({2 start(controller) {3 controller.close();4 }5});6rs.getReader().read().then(({ value, done }) => {7});8var rs = new ReadableStream({9 start(controller) {10 controller.enqueue('a');11 controller.enqueue('b');12 controller.enqueue('c');13 }14});15var reader = rs.getReader();16var read = () => {17 reader.read().then(({ value, done }) => {18 if (done) return;19 console.log(value);20 read();21 });22};23read();24var rs = new ReadableStream({25 start(controller) {26 controller.error('kaboom');27 }28});29rs.getReader().read().catch(e => console.error(e));30var rs = new ReadableStream({31 pull(controller) {32 var view = controller.byobRequest.view;33 view[0] = 0x61;34 view[1] = 0x62;35 view[2] = 0x63;36 controller.byobRequest.respond(3);37 }38});39var reader = rs.getReader({ mode: 'byob' });40reader.read(new Uint8Array(3)).then(({ value, done }) => {41 console.log(value);42 console.log(done);43});44var rs = new ReadableStream({45 pull(controller) {46 var view = controller.byobRequest.view;47 view[0] = 0x61;48 view[1] = 0x62;49 view[2] = 0x63;50 controller.byobRequest.respond(3);51 }52});53var reader = rs.getReader({ mode:
Using AI Code Generation
1var rs = new ReadableStream({2 start(controller) {3 controller.enqueue("a");4 controller.enqueue("b");5 controller.enqueue("c");6 controller.close();7 }8});9var reader = rs.getReader();10reader.read().then(function(result) {11 assert_equals(result.value, "a", 'result.value should be "a"');12 assert_false(result.done, 'result.done should be false');13 return reader.read();14}).then(function(result) {15 assert_equals(result.value, "b", 'result.value should be "b"');16 assert_false(result.done, 'result.done should be false');17 return reader.read();18}).then(function(result) {19 assert_equals(result.value, "c", 'result.value should be "c"');20 assert_false(result.done, 'result.done should be false');21 return reader.read();22}).then(function(result) {23 assert_equals(result.value, undefined, 'result.value should be undefined');24 assert_true(result.done, 'result.done should be true');25 return reader.read();26}).then(function(result) {27 assert_equals(result.value, undefined, 'result.value should be undefined');28 assert_true(result.done, 'result.done should be true');29 return reader.read();30}).then(function(result) {31 assert_equals(result.value, undefined, 'result.value should be undefined');32 assert_true(result.done, 'result.done should be true');33 return reader.read();34}).then(function(result) {35 assert_equals(result.value, undefined, 'result.value should be undefined');36 assert_true(result.done, 'result.done should be true');37 return reader.read();38}).then(function(result) {39 assert_equals(result.value, undefined, 'result.value should be undefined');40 assert_true(result.done, 'result.done should be true');41 return reader.read();42}).then(function(result) {43 assert_equals(result.value, undefined, 'result.value should be undefined');44 assert_true(result.done, 'result.done should be true');45 return reader.read();46}).then(function(result) {47 assert_equals(result.value, undefined, 'result.value should be undefined');48 assert_true(result.done, 'result.done should be true');49 return reader.read();50}).then(function(result) {
Using AI Code Generation
1const { ReadableStream, CountQueuingStrategy } = require('stream/web');2const { ReadableStreamDefaultControllerClose } = require('stream/web');3const { ReadableStreamDefaultControllerError } = require('stream/web');4const rs = new ReadableStream({5 start(controller) {6 controller.enqueue('a');7 controller.enqueue('b');8 controller.enqueue('c');9 ReadableStreamDefaultControllerClose(controller);10 },11 pull(controller) {12 console.log('pull()');13 },14 cancel(reason) {15 console.log('cancel()', reason);16 }17});18const reader = rs.getReader();19const read = () => {20 reader.read().then(({ value, done }) => {21 if (done) {22 console.log('[done]');23 return;24 }25 console.log(value);26 read();27 });28};29read();30const { WritableStream, CountQueuingStrategy } = require('stream/web');31const { WritableStreamDefaultControllerClose } = require('stream/web');32const { WritableStreamDefaultControllerError } = require('stream/web');33const ws = new WritableStream({34 start(controller) {35 },36 write(chunk, controller) {37 console.log(chunk);38 },39 close(controller) {40 console.log('[done]');41 },42 abort(reason) {43 console.log('abort()', reason);44 }45});46const writer = ws.getWriter();47writer.write('a');48writer.write('b');49writer.write('c');50writer.close();
Using AI Code Generation
1readableStreamDefaultControllerClose(controller)2{3 const stream = controller._controlledReadableStream;4 if (stream._state !== 'readable') {5 return;6 }7 const reader = stream._reader;8 if (reader === undefined) {9 ReadableStreamClose(stream);10 } else {11 ReadableStreamReaderGenericRelease(reader);12 ReadableStreamClose(stream);13 }14}15readableStreamDefaultControllerEnqueue(controller, chunk)16{17 const stream = controller._controlledReadableStream;18 if (stream._state !== 'readable') {19 return;20 }21 const reader = stream._reader;22 if (reader === undefined) {23 ReadableStreamAddReadRequest(stream, new DefaultReadRequest());24 } else {25 if (reader._readRequests.length) {26 ReadableStreamFulfillReadRequest(stream, chunk, reader._readRequests.shift());27 } else {28 try {29 const result = reader._readIntoRequests[0]._reader._readIntoAlgorithm(chunk);30 if (result === ReadableStreamReadIntoResult.DONE) {31 ReadableStreamFulfillReadIntoRequest(stream, chunk, reader._readIntoRequests.shift());32 ReadableStreamReaderGenericRelease(reader);33 }34 } catch (e) {35 ReadableStreamDefaultControllerErrorIfNeeded(controller, e);36 }37 }38 }39}40readableStreamDefaultControllerError(controller, e)41{42 const stream = controller._controlledReadableStream;43 if (stream._state !== 'readable') {44 return;45 }46 const reader = stream._reader;47 if (reader === undefined) {48 ReadableStreamError(stream, e);49 } else {50 ReadableStreamReaderGenericRelease(reader);51 ReadableStreamError(stream, e);52 }53}54readableStreamDefaultControllerGetDesiredSize(controller)55{56 const state = controller._controlledReadableStream._state;57 if (state === 'errored') {58 return null;59 }60 if (state === 'closed') {61 return 0;62 }
Using AI Code Generation
1var rs = new ReadableStream({2 start(controller) {3 controller.close();4 }5});6rs.getReader().read().then(result => {7});8var rs = new ReadableStream({9 start(controller) {10 controller.enqueue('a');11 controller.enqueue('b');12 controller.enqueue('c');13 }14});15rs.getReader().read().then(result => {16 return rs.getReader().read();17}).then(result => {18 return rs.getReader().read();19}).then(result => {20 return rs.getReader().read();21}).then(result => {22});23var rs = new ReadableStream({24 start(controller) {25 controller.error('kaboom');26 }27});28rs.getReader().read().catch(e => {29});30var rs = new ReadableStream({31 start(controller) {32 controller.enqueue('a');33 controller.enqueue('b');34 }35});36var rs = new ReadableStream({37 start(controller) {38 controller.enqueue('a');39 console.log(controller.desiredSize);
Using AI Code Generation
1var rs = new ReadableStream({2 start(controller) {3 controller.close();4 }5});6rs.getReader().read().then(({ value, done }) => {7});8test(() => {9 const rs = new ReadableStream({10 start(c) {11 c.close();12 }13 });14 const reader = rs.getReader();15 return reader.read().then(({ value, done }) => {16 assert_equals(value, undefined, 'value');17 assert_true(done, 'done');18 });19}, 'ReadableStream with byte source: read() after close()');20test(() => {21 const rs = new ReadableStream({22 start(c) {23 c.close();24 }25 });26 const reader = rs.getReader();27 return reader.read().then(({ value, done }) => {28 assert_equals(value, undefined, 'value');29 assert_true(done, 'done');30 });31}, 'ReadableStream with byte source: read() after close()');32test(() => {33 const rs = new ReadableStream({34 start(c) {35 c.close();36 }37 });38 const reader = rs.getReader();39 return reader.read().then(({ value, done }) => {40 assert_equals(value, undefined, 'value');41 assert_true(done, 'done');42 });43}, 'ReadableStream with byte source: read() after close()');
Using AI Code Generation
1test(function() {2 var rs = new ReadableStream({3 start: function(c) {4 c.close();5 }6 });7 assert_equals(rs.state, 'closed');8}, 'ReadableStreamDefaultControllerClose should close the stream');9test(function() {10 var rs = new ReadableStream({11 start: function(c) {12 c.enqueue('a');13 }14 });15 assert_equals(rs.state, 'readable');16}, 'ReadableStreamDefaultControllerEnqueue should enqueue a chunk');17test(function() {18 var rs = new ReadableStream({19 start: function(c) {20 c.error('error');21 }22 });23 assert_equals(rs.state, 'errored');24}, 'ReadableStreamDefaultControllerError should error the stream');25test(function() {26 var rs = new ReadableStream({27 start: function(c) {28 assert_equals(c.desiredSize, 1);29 }30 });31 assert_equals(rs.state, 'readable');32}, 'ReadableStreamDefaultControllerGetDesiredSize should return the desired size');
Using AI Code Generation
1 ReadableStreamDefaultControllerClose ( controller )2const { ReadableStream, isReadableStream } = require('stream/web');3const rs = new ReadableStream({4 start(controller) {5 controller.close();6 }7});8assert(isReadableStream(rs));9assert(rs.locked);10 ReadableStreamDefaultControllerEnqueue ( controller, chunk )11const { ReadableStream, isReadableStream } = require('stream/web');12const rs = new ReadableStream({13 start(controller) {14 controller.enqueue('a');15 }16});17assert(isReadableStream(rs));18assert(rs.locked);19 ReadableStreamDefaultControllerError ( controller, e )20const { ReadableStream
Using AI Code Generation
1var rs = new ReadableStream({2 start: function (controller) {3 controller.close();4 }5});6var reader = rs.getReader();7var rs = new ReadableStream({8 start: function (controller) {9 controller.enqueue("a");10 controller.enqueue("b");11 controller.enqueue("c");12 }13});14var reader = rs.getReader();15var rs = new ReadableStream({16 start: function (controller) {17 controller.error(new Error("boom"));18 }19});20var reader = rs.getReader();21reader.read().catch(function (e) {22});23var rs = new ReadableStream({24 start: function (controller) {25 controller.enqueue("a");26 controller.enqueue("b");27 }28});
Using AI Code Generation
1const assert = async_test("The stream should be closed successfully");2const start = async_test("Start method should be called");3const pull = async_test("Pull method should be called");4const cancel = async_test("Cancel method should be called");5let controller;6let startCalled = false;7let pullCalled = false;8let cancelCalled = false;9const rs = new ReadableStream({10 start(c) {11 controller = c;12 start.step(() => {13 assert_equals(controller.desiredSize, 1, 'desiredSize');14 });15 start.step(() => {16 assert_equals(controller.byobRequest, undefined, 'byobRequest');17 });18 start.step(() => {19 assert_equals(controller.desiredSize, 1, 'desiredSize');20 });21 start.step(() => {22 assert_equals(controller.byobRequest, undefined, 'byobRequest');23 });24 start.step(() => {25 assert_equals(controller.desiredSize, 1, 'desiredSize');26 });27 start.step(() => {28 assert_equals(controller.byobRequest, undefined, 'byobRequest');29 });30 start.step(() => {31 assert_equals(controller.desiredSize, 1, 'desiredSize');32 });33 start.step(() => {34 assert_equals(controller.byobRequest, undefined, 'byobRequest');35 });36 start.step(() => {37 assert_equals(controller.desiredSize, 1, 'desiredSize');38 });39 start.step(() => {40 assert_equals(controller.byobRequest, undefined, 'byobRequest');41 });42 start.step(() => {43 assert_equals(controller.desiredSize, 1, 'desiredSize');44 });45 start.step(() => {46 assert_equals(controller.byobRequest, undefined, 'byobRequest');47 });48 start.step(() => {49 assert_equals(controller.desiredSize, 1, 'desiredSize');50 });51 start.step(() => {52 assert_equals(controller.byobRequest, undefined, 'byobRequest');53 });54 start.step(() => {55 assert_equals(controller.desiredSize, 1, 'desiredSize');56 });57 start.step(() => {58 assert_equals(controller.byobRequest, undefined, 'byobRequest');59 });60 start.step(() => {61 assert_equals(controller.desiredSize,
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!