bytecodealliance / bytecodealliance/ComponentizeJS
ReferenceError when resource has no functions
- 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