bytecodealliance / bytecodealliance/ComponentizeJS

ReferenceError when resource has no functions

Đang mở
#221 2 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Rust
Star
391
Fork
53
Merge trung bình
3 ngày 5 giờ
Pull request đã merge (30 ngày)
1

Mô tả

Having an empty resource:
```wit
interface execution {

resource join-set-id {
// id: func() -> string;
}

new-join-set: func() -> join-set-id;
}
```
Calling `new-join-set` from a JavaScript guest fails with an error: `ReferenceError: import_execution_1_0_0$JoinSetId is not defined`.
This is because the generated `initializer.js`does not contain `class import_execution_1_0_0$JoinSetId {...}`, but tries to use it in the generated `new-join-set` function: `var rsc2 = new.target === import_execution_1_0_0$JoinSetId ? this : Object.create(import_execution_1_0_0$JoinSetId.prototype);`

The workaround is to add a function, which triggers the `class` generation.
Tested with componentize-js version 0.18.2 .

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

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Tái hiện ví dụ WIT về resource rỗng bằng componentize-js 0.18.2 và kiểm tra initializer.js được tạo. Truy vết hàm new-join-set được tạo và xác minh rằng resource rỗng tạo ra lớp JoinSetId của nó và không còn gây ra ReferenceError khi được gọi từ một guest JavaScript.

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

Đánh giá

Công nghệ
javascript, wasm
Lĩnh vực
tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

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.