| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d0c9137 commit cfb1fa9
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -415,10 +415,15 @@ class SerializerDelegate : public ValueSerializer::Delegate { | |||
| 415 | 415 | if (!host_objects_[i]->NestedTransferables().To(&nested_transferables)) | |
| 416 | 416 | return Nothing<bool>(); | |
| 417 | 417 | for (auto& nested_transferable : nested_transferables) { | |
| 418 | - if (std::ranges::find(host_objects_, nested_transferable) == | ||
| 418 | + if (std::ranges::find(host_objects_, nested_transferable) != | ||
| 419 | 419 | host_objects_.end()) { | |
| 420 | - AddHostObject(nested_transferable); | ||
| 420 | + ThrowDataCloneException( | ||
| 421 | + context_, | ||
| 422 | + FIXED_ONE_BYTE_STRING(env_->isolate(), | ||
| 423 | + "The transfer list is invalid.")); | ||
| 424 | + return Nothing<bool>(); | ||
| 421 | 425 | } | |
| 426 | + AddHostObject(nested_transferable); | ||
| 422 | 427 | } | |
| 423 | 428 | } | |
| 424 | 429 | return Just(true); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,19 @@ | |||
| 1 | + 'use strict'; | ||
| 2 | + | ||
| 3 | + require('../common'); | ||
| 4 | + const assert = require('node:assert'); | ||
| 5 | + | ||
| 6 | + const combinations = [ | ||
| 7 | + ((t) => [t, t.readable])(new TransformStream()), | ||
| 8 | + ((t) => [t.readable, t])(new TransformStream()), | ||
| 9 | + ((t) => [t, t.writable])(new TransformStream()), | ||
| 10 | + ((t) => [t.writable, t])(new TransformStream()), | ||
| 11 | + ]; | ||
| 12 | + | ||
| 13 | + for (const combination of combinations) { | ||
| 14 | + assert.throws(() => structuredClone(combination, { transfer: combination }), { | ||
| 15 | + constructor: DOMException, | ||
| 16 | + name: 'DataCloneError', | ||
| 17 | + code: 25, | ||
| 18 | + }); | ||
| 19 | + } | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -41,14 +41,6 @@ | |||
| 41 | 41 | "transferable/transfer-with-messageport.window.js": { | |
| 42 | 42 | "skip": "Browser-specific test" | |
| 43 | 43 | }, | |
| 44 | - "transferable/transform-stream-members.any.js": { | ||
| 45 | - "fail": { | ||
| 46 | - "expected": [ | ||
| 47 | - "Transferring [object TransformStream],[object ReadableStream] should fail", | ||
| 48 | - "Transferring [object TransformStream],[object WritableStream] should fail" | ||
| 49 | - ] | ||
| 50 | - } | ||
| 51 | - }, | ||
| 52 | 44 | "transform-streams/invalid-realm.tentative.window.js": { | |
| 53 | 45 | "skip": "Browser-specific test" | |
| 54 | 46 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments