-
-
Notifications
You must be signed in to change notification settings - Fork 33.9k
Closed
Labels
web-standardsIssues and PRs related to Web APIsIssues and PRs related to Web APIs
Description
Version
22.9.0
Platform
N/A
Subsystem
No response
What steps will reproduce the bug?
// transfer should not be null
structuredClone(undefined, { transfer: null });
How often does it reproduce? Is there a required condition?
always
What is the expected behavior? Why is that the expected behavior?
It should throw TypeError like other runtimes.
What do you see instead?
it passed
Additional information
I didn't find any requirements on type checking, but seems like other runtimes unanimously perform the webidl sequence conversion for transfer. IMO, we should do the same.
There are two ways to do this.
One is quick win by updating the check here
Line 1032 in a301596
| if (transfer_list_v->IsNullOrUndefined()) { |
The other one is to perform WebIDL conversion at JS layer before hitting the native StructuredClone. I understand the current implementation has been completely moved to cc, so I am not sure if that approach would be more preferable, but it does benefit us from reducing the C++ to JS overhead inside this function
Line 1045 in a301596
| if (!ReadIterable(env, context, *transfer_list_out, transfer_list_v) |
Metadata
Metadata
Assignees
Labels
web-standardsIssues and PRs related to Web APIsIssues and PRs related to Web APIs