[JS/TS] Negating a -0.0 literal emits --0 and fails with SyntaxError
Maintainer thường phản hồi trong vòng 1 ngày
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
- 77/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, typescript
- Lĩnh vực
- compilers
Hướng nghiên cứu
Bắt đầu bằng cách tìm bước kiểm tra đặt ngoặc cho dấu trừ một ngôi được mô tả trong issue, hiện đang kiểm tra xem giá trị có nhỏ hơn 0.0 hay không, rồi theo dõi cách nó xử lý literal -0.0. Dùng trường hợp tái hiện để xác nhận JavaScript hoặc TypeScript được tạo ra không còn chứa --0 không hợp lệ, sau đó kiểm tra đầu ra hợp lệ và cho kết quả 0.000000.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Negating a -0.0 float literal (directly or after inlining) emits --0 in JavaScript and TypeScript output, which fails at parse time as a prefix decrement on a literal because the unary-minus parenthesization check only tests value < 0.0 (which is false for -0.0).
Repro code
let x = -(-0.0)
printfn "%f" x
Expected and actual results
Expected result:
Compiles to valid JavaScript/TypeScript (e.g. const x = -(-0); or 0), and outputs 0.000000 like .NET F#.
Actual result:
Fable compiles the binding to const x = --0;, which Node.js rejects at parse time with:
SyntaxError: Invalid left-hand side expression in prefix operation
Related information
- Fable version: 5.27.0
- Operating system: macOS / Linux
Credit: https://ucsbplse.github.io/
- Ngôn ngữ chính
- F#
- Star
- 3.2k
- Fork
- 335
- Merge trung bình
- 19 giờ 39 phút
- Pull request đã merge (30 ngày)
- 158
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fable-compiler/Fable
-
agentic-workflows automation repo-assist
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
fable-compiler/Fable#4531 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
agentic-workflows automation repo-assist
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
fable-compiler/Fable#4522 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
fable-compiler/Fable#5286 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
for loop bound still differs from .NET for reassigned mutable arraysCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 36/100
fable-compiler/Fable#5285 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
fable-compiler/Fable#5284 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của fable-compiler/Fable
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
rubys/roundhouse#1950 ·
-
Upstream report: MSVC rejects a designated initializer in a dependent template argument (C2131)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
rhalbersma/tabula#72 ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
tree-sitter/tree-sitter-cpp#381 ·
-
[P2] Interpreter: Array.prototype.findLastIndex starts at the wrong index for long array-likesĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
new issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
llvm/llvm-project#240065 ·
Maintainer thường phản hồi trong vòng 1 ngày