Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Compatibility: web-cssom-view 0.1.0 drops scrollIntoView options through purs-specific FFI

Đang mở
#613 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, node.js, rust
Lĩnh vực
compilers, devtools

Hướng nghiên cứu

Start with src/Web/CSSOMView/Element.js, especially the scrollIntoViewOptions handling at lines 17–27, then inspect src/Main.purs and src/Main.js. Run the stated spago build and iris build reproductions in separate output trees and compare the generated calls; done means the compiler-versus-package ownership and compatibility policy are resolved.

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

Mô tả

This tracks a package FFI compatibility mismatch, not an established Iris compiler bug. purescript-web/[email protected] reads purs-generated .value0 and enum .constructor.name in src/Web/CSSOMView/Element.js. Iris 0.1.1 uses a different valid representation for Maybe, so a Just options argument silently takes the no-argument branch. The broader upstream concern is purescript-web/purescript-web-cssom-view#7; this tracker currently has no issue for the concrete cross-compiler symptom. The upstream repository is read-only to this account, so I could not add the reproducer there.

Standalone repro with registry package set 81.1.0, web-cssom-view 0.1.0, purs 0.15.15 / Iris 0.1.1, Node 22.16.0:

spago.yaml:

package:
  name: cssom-view-repro
  dependencies:
    - prelude
    - effect
    - console
    - maybe
    - web-dom
    - web-cssom-view
workspace:
  packageSet:
    registry: 81.1.0

src/Main.purs:

module Main where

import Prelude
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Console (log)
import Web.CSSOMView as View
import Web.CSSOMView.Element as Scroll
import Web.DOM.Element (Element)

foreign import element :: Element
foreign import calls :: Effect (Array String)

main :: Effect Unit
main = do
  Scroll.scrollIntoView Nothing element
  Scroll.scrollIntoView (Just { block: View.End, inline: View.Nearest, behavior: View.Smooth }) element
  log <<< show =<< calls

src/Main.js (synthetic host; this checks FFI delivery, not browser geometry):

const seen = [];
export const element = {
  scrollIntoView(...args) { seen.push(JSON.stringify(args)); }
};
export const calls = () => seen.slice();

Build once with spago build and once with iris build into separate output trees, then invoke each generated Main.main() in Node. Purs yields the first no-argument call [], then an argument containing block: "end" and inline: "nearest". Iris yields [] for both calls. The behavior field is currently omitted even by the purs path; this report isolates loss of the entire options argument.

The package FFI checks scrollIntoViewOptions.value0 (lines 17–27), which exists in purs output but not Iris’s { tag: "Just", _1: options }. A package-side conversion to JS primitives or FFI accessors, as suggested upstream, would remove reliance on compiler-specific constructor layout. Please treat this as a compatibility-policy/package fix discussion, not a request to change Iris’s constructor representation solely for this package. This report includes no private test-repository links or materials.

Ngôn ngữ chính
Rust
Star
117
Fork
11
Merge trung bình
4 giờ 22 phút
Pull request đã merge (30 ngày)
126

Chuẩn bị môi trường

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 purefunctor/purescript-iris

Tất cả issue của purefunctor/purescript-iris

Issue tương tự

Thêm issue về Rust

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.