Closed
Description
Version
v17.0.1
Platform
Darwin MrBBots-MBP 19.6.0 Darwin Kernel Version 19.6.0: Thu May 6 00:48:39 PDT 2021; root:xnu-6153.141.33~1/RELEASE_X86_64 x86_64
Subsystem
stream
What steps will reproduce the bug?
Running node byob.mjs
with:
// byob.mjs
import { ReadableStream } from "stream/web";
const stream = new ReadableStream({
type: "bytes",
start(controller) {
controller.enqueue(new Uint8Array([1, 2, 3]));
controller.close();
},
});
const buffer = new ArrayBuffer(1024);
const reader = stream.getReader({ mode: "byob" });
const result = await reader.read(new DataView(buffer));
console.log(result);
...throws the following:
node:internal/webstreams/readablestream:1492
return new ctor(transferredBuffer, byteOffset, bytesFilled / elementSize);
^
TypeError: ctor is not a constructor
at readableByteStreamControllerConvertPullIntoDescriptor (node:internal/webstreams/readablestream:1492:10)
at readableByteStreamControllerPullInto (node:internal/webstreams/readablestream:2145:9)
at readableStreamBYOBReaderRead (node:internal/webstreams/readablestream:1717:3)
at ReadableStreamBYOBReader.read (node:internal/webstreams/readablestream:881:5)
at file:///.../byob.mjs:15:29
at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
at async loadESM (node:internal/process/esm_loader:88:5)
at async handleMainPromise (node:internal/modules/run_main:65:12)
Replacing new DataView
with new Uint8Array
returns the expected output:
{ value: Uint8Array(3) [ 1, 2, 3 ], done: false }
How often does it reproduce? Is there a required condition?
No required condition, throws every time
What is the expected behavior?
Running the code in the latest Chrome (without the import
) produces the following expected output:
{ value: DataView(3), done: false }
What do you see instead?
See the stack trace above
Additional information
No response