Share the GL JS platform on webMain for Kotlin/JS and Kotlin/Wasm - #1081
Draft
sargunv wants to merge 8 commits into
Draft
Share the GL JS platform on webMain for Kotlin/JS and Kotlin/Wasm#1081sargunv wants to merge 8 commits into
sargunv wants to merge 8 commits into
Conversation
|
Cursor Agent can help with this pull request. Just |
sargunv
had a problem deploying
to
cloudflare-pages
August 25, 2026 00:00 — with
GitHub Actions
Error
sargunv
temporarily deployed
to
cloudflare-pages
August 25, 2026 02:50 — with
GitHub Actions
Inactive
sargunv
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
from
August 27, 2026 00:04
71a7fd7 to
03a5e19
Compare
sargunv
changed the base branch from
main
to
codex/integrate-compose-webgl-render-target
August 27, 2026 00:04
sargunv
had a problem deploying
to
cloudflare-pages
August 27, 2026 04:14 — with
GitHub Actions
Failure
sargunv
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
2 times, most recently
from
August 27, 2026 21:04
e67588c to
88942b8
Compare
sargunv
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
4 times, most recently
from
August 28, 2026 00:47
9443f1a to
63598dd
Compare
cursor
Bot
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
from
August 29, 2026 04:03
63598dd to
67acd97
Compare
cursor
Bot
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
from
August 29, 2026 04:45
42a20cb to
03bf754
Compare
Move the browser sources out of jsMain and rewrite the MapLibre GL JS externals and runtime shims to the Wasm interop types (JsAny, JsArray, package-level js()), so both web targets compile against the same bindings. Co-authored-by: github.boned427 <github.boned427@passmail.net>
Wasm has no NumberFormatOptions constructor, and a js() helper that called .format was rewritten by Kotlin/JS into a constructor. unsafeJso is not writable here, so the options object is built with a js literal instead. Co-authored-by: github.boned427 <github.boned427@passmail.net>
The browser libraries compile and publish for Kotlin/Wasm. CI compiles the Wasm targets after the Kotlin/JS browser tests. Co-authored-by: github.boned427 <github.boned427@passmail.net>
Promise.await() keeps JsNumber on Wasm, and JsArray has no Kotlin map extension, so convert the zoom result and copy query features through toList(). Co-authored-by: github.boned427 <github.boned427@passmail.net>
The docs site and Cloudflare Pages package now copy wasmJsBrowserDistribution instead of the Kotlin/JS executable. Co-authored-by: github.boned427 <github.boned427@passmail.net>
wasmJsBrowserDistribution failed against the stale lock after the GL JS bump. Co-authored-by: github.boned427 <github.boned427@passmail.net>
sargunv
force-pushed
the
cursor/webmain-gljs-wasm-db57
branch
from
September 7, 2026 08:52
03bf754 to
18a5b81
Compare
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Moves the MapLibre GL JS platform to
webMain, publishes the browser libraries for Kotlin/Wasm, and provides a Wasm demo. Stacked on #1114 for Compose'sWebGLRenderTargetintegration.The shared bindings preserve main's resource loading, interaction, logging, and style APIs. JavaScript boundary types support both backends. Protocol failures retain the HTTP status MapLibre expects when a Kotlin/Wasm request rejects.
mise run test:jsnow runs the JS browser suite, compiles the Wasm targets, and runs the library's Wasm browser suite. Focused Wasm tests verify binary protocol payloads and rejected-promise status fields.Validation
mise run test:jsandmise run checkpass locally. The Wasm library suite runs 330 tests. Both the JS and Wasm demos render maps through shrinking and growing Chromium viewports without page errors.The browser compile used a local 6 GB Kotlin daemon heap and reduced build concurrency. CI results must be evaluated on the updated heads; the base PR's checks do not validate this PR's own changes.
Release dependency
Remains a draft stacked on #1114, pinned to Compose
1.12.10-alpha01+dev4710. The release gate remains a non-prerelease Compose version containing the required WebGL APIs and resize fix.AI assistance
OpenAI Codex (GPT-6) rebased, integrated, reviewed, and validated the change under human direction.