| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 1ec8516 commit 20ecc82
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -157,8 +157,7 @@ MaybeLocal<Value> Message::Deserialize(Environment* env, | |||
| 157 | 157 | // Attach all transferred SharedArrayBuffers to their new Isolate. | |
| 158 | 158 | for (uint32_t i = 0; i < shared_array_buffers_.size(); ++i) { | |
| 159 | 159 | Local<SharedArrayBuffer> sab = | |
| 160 | - SharedArrayBuffer::New(env->isolate(), | ||
| 161 | - std::move(shared_array_buffers_[i])); | ||
| 160 | + SharedArrayBuffer::New(env->isolate(), shared_array_buffers_[i]); | ||
| 162 | 161 | shared_array_buffers.push_back(sab); | |
| 163 | 162 | } | |
| 164 | 163 | ||
@@ -1309,7 +1308,7 @@ Maybe<bool> SiblingGroup::Dispatch( | |||
| 1309 | 1308 | ||
| 1310 | 1309 | // Transferables cannot be used when there is more | |
| 1311 | 1310 | // than a single destination. | |
| 1312 | - if (size() > 2 && message->transferables().size()) { | ||
| 1311 | + if (size() > 2 && message->has_transferables()) { | ||
| 1313 | 1312 | if (error != nullptr) | |
| 1314 | 1313 | *error = "Transferables cannot be used with multiple destinations."; | |
| 1315 | 1314 | return Nothing<bool>(); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -94,6 +94,9 @@ class Message : public MemoryRetainer { | |||
| 94 | 94 | const std::vector<std::unique_ptr<TransferData>>& transferables() const { | |
| 95 | 95 | return transferables_; | |
| 96 | 96 | } | |
| 97 | + bool has_transferables() const { | ||
| 98 | + return !transferables_.empty() || !array_buffers_.empty(); | ||
| 99 | + } | ||
| 97 | 100 | ||
| 98 | 101 | void MemoryInfo(MemoryTracker* tracker) const override; | |
| 99 | 102 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -111,12 +111,19 @@ assert.throws(() => new BroadcastChannel(), { | |||
| 111 | 111 | { | |
| 112 | 112 | const bc1 = new BroadcastChannel('channel3'); | |
| 113 | 113 | const bc2 = new BroadcastChannel('channel3'); | |
| 114 | - bc2.postMessage(new SharedArrayBuffer(10)); | ||
| 115 | - bc1.addEventListener('message', common.mustCall(({ data }) => { | ||
| 116 | - assert(data instanceof SharedArrayBuffer); | ||
| 117 | - bc1.close(); | ||
| 118 | - bc2.close(); | ||
| 119 | - })); | ||
| 114 | + const bc3 = new BroadcastChannel('channel3'); | ||
| 115 | + bc3.postMessage(new SharedArrayBuffer(10)); | ||
| 116 | + let received = 0; | ||
| 117 | + for (const bc of [bc1, bc2]) { | ||
| 118 | + bc.addEventListener('message', common.mustCall(({ data }) => { | ||
| 119 | + assert(data instanceof SharedArrayBuffer); | ||
| 120 | + if (++received === 2) { | ||
| 121 | + bc1.close(); | ||
| 122 | + bc2.close(); | ||
| 123 | + bc3.close(); | ||
| 124 | + } | ||
| 125 | + })); | ||
| 126 | + } | ||
| 120 | 127 | } | |
| 121 | 128 | ||
| 122 | 129 | { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments