mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
src: fix creating an ArrayBuffer from a Blob created with openAsBlob
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com> PR-URL: https://github.com/nodejs/node/pull/47691 Fixes: https://github.com/nodejs/node/issues/47683 Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
d2d5789daa
commit
af9b48a2f1
@ -817,7 +817,7 @@ class FdEntry final : public EntryImpl {
|
||||
uint64_t new_start = start_ + start;
|
||||
uint64_t new_end = end_;
|
||||
if (end.has_value()) {
|
||||
new_end = std::min(end.value() + start, new_end);
|
||||
new_end = std::min(end.value(), end_);
|
||||
}
|
||||
|
||||
CHECK(new_start >= start_);
|
||||
@ -881,7 +881,7 @@ class FdEntry final : public EntryImpl {
|
||||
file,
|
||||
Local<Object>(),
|
||||
entry->start_,
|
||||
entry->end_)),
|
||||
entry->end_ - entry->start_)),
|
||||
entry);
|
||||
}
|
||||
|
||||
|
@ -68,6 +68,23 @@ writeFileSync(testfile3, '');
|
||||
await unlink(testfile);
|
||||
})().then(common.mustCall());
|
||||
|
||||
(async () => {
|
||||
// Refs: https://github.com/nodejs/node/issues/47683
|
||||
const blob = await openAsBlob(testfile);
|
||||
const res = blob.slice(10, 20);
|
||||
const ab = await res.arrayBuffer();
|
||||
strictEqual(res.size, ab.byteLength);
|
||||
|
||||
let length = 0;
|
||||
const stream = await res.stream();
|
||||
for await (const chunk of stream)
|
||||
length += chunk.length;
|
||||
strictEqual(res.size, length);
|
||||
|
||||
const res1 = blob.slice(995, 1005);
|
||||
strictEqual(await res1.text(), data.slice(995, 1005));
|
||||
})().then(common.mustCall());
|
||||
|
||||
(async () => {
|
||||
const blob = await openAsBlob(testfile2);
|
||||
const stream = blob.stream();
|
||||
|
Loading…
Reference in New Issue
Block a user