@@ -37,6 +37,56 @@ using v8::Value;
37
37
38
38
namespace {
39
39
40
+ // TODO(@flakey5, @jasnell): Update the JavaScript side of blob...
41
+ //
42
+ // Within the JavaScript Blob object, the arrayBuffer() method will change significantly.
43
+ // the pattern will be something like:
44
+ //
45
+ // const { createDeferredPromise } = require('internal/util');
46
+ // const { concat, ...} = internalBinding('blob');
47
+ //
48
+ // function arrayBuffer() {
49
+ // const { promise, resolve } = createDeferredPromise();
50
+ // const reader = this.#buffer.getReader();
51
+ // const buffers = [];
52
+ // const readNext = () => {
53
+ // const result = reader.pull((status, buffer) => {
54
+ // if (status == -1) {
55
+ // // EOS, concat and resolve.
56
+ // // buffer should be undefined here.
57
+ // resolve(concat(buffers));
58
+ // return;
59
+ // }
60
+ // buffers.push(buffer);
61
+ // readNext();
62
+ // });
63
+ // };
64
+ // readNext(); // Starts the read loop
65
+ // return promise;
66
+ // }
67
+ //
68
+ // For the stream() method, the pattern will be something like:
69
+ //
70
+ // function stream() {
71
+ // const reader = this.#buffer.getReader();
72
+ // return new ReadableStream({
73
+ // #reader = reader;
74
+ // pull(c) {
75
+ // const { promise, resolve } = createDeferredPromise();
76
+ // reader.pull((status, buffer) => {
77
+ // if (status === -1) { // EOS
78
+ // c.close();
79
+ // resolve();
80
+ // return;
81
+ // }
82
+ // c.enqueue(new Uint8Array(buffer));
83
+ // resolve();
84
+ // });
85
+ // return promise;
86
+ // }
87
+ // });
88
+ // }
89
+
40
90
// Concatenate multiple ArrayBufferView/ArrayBuffers into a single ArrayBuffer.
41
91
// This method treats all ArrayBufferView types the same.
42
92
void Concat (const FunctionCallbackInfo<Value>& args) {
0 commit comments