structuredClone accepts boxed Symbols as empty objects

Đang mở Phù hợp với người mới
#58,212 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
72/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, react-native
Lĩnh vực
mobile-dev

Hướng nghiên cứu

Bắt đầu từ polyfill structuredClone của React Native và tái hiện vấn đề với Object(Symbol()). So sánh hành vi của nó với structuredClone native và đường dẫn hiện có dành cho Symbols nguyên thủy. Được xem là hoàn tất khi boxed Symbols ném DataCloneError mà không ép kiểu wrapper thành chuỗi, trong khi hành vi clone hiện có vẫn không thay đổi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Needs: Author Feedback Needs: Repro
Description

The React Native structuredClone polyfill correctly rejects primitive Symbols but treats boxed Symbols as arbitrary objects. structuredClone(Object(Symbol())) therefore returns {} instead of throwing, even though boxed Symbols are also not structured-cloneable.

Expected behavior

Boxed Symbols should throw DataCloneError, matching native structuredClone. The error path should not string-coerce the wrapper because Hermes throws a separate TypeError for that coercion.

React Native Version

0.87.1 and current main

Affected Platforms

JavaScript runtime - All

Ngôn ngữ chính
C++
Star
127k
Fork
25.3k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
4

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của react/react-native

Tất cả issue của react/react-native

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.