Skip to content

Implement sass --embedded in pure JS mode#2413

Draft
ntkme wants to merge 23 commits intosass:mainfrom
ntkme:embedded-compiler
Draft

Implement sass --embedded in pure JS mode#2413
ntkme wants to merge 23 commits intosass:mainfrom
ntkme:embedded-compiler

Conversation

@ntkme
Copy link
Contributor

@ntkme ntkme commented Oct 26, 2024

Closes #2325.

Implementation

The actual isolate dispatcher and compilation dispatcher are nearly unchanged. However, I had to replace isolate with worker communication, and mock tons of small things that do not work on node.

Testing

  • All Dart embedded tests are passing. - GitHub CI has been updated to run these in this PR.
  • All JS API tests are passing. - GitHub CI has been updated to run these in this PR.
  • All Ruby API tests are passing.

Current Status

Functionally it's ready to merge. Cosmetically it's waiting on dart-sass (depends on node_interop) to migrate off the legacy js interop to avoid the confusion of mixing legacy and new js interop.

Because FreeBSD support has been requested a lot for ruby's sass-embedded gem, this patch has been bundled within sass-embedded gem.

@ntkme ntkme force-pushed the embedded-compiler branch from 8d7d4de to 7084da7 Compare October 26, 2024 02:31
@ntkme ntkme marked this pull request as ready for review October 26, 2024 02:50
@ntkme ntkme marked this pull request as draft October 26, 2024 03:40
@ntkme ntkme force-pushed the embedded-compiler branch 2 times, most recently from e66df5b to d53fcc5 Compare October 26, 2024 17:27
@ntkme ntkme force-pushed the embedded-compiler branch 9 times, most recently from d7e6206 to b3794eb Compare October 28, 2024 06:35
@ntkme ntkme marked this pull request as ready for review October 28, 2024 06:49
@ntkme ntkme force-pushed the embedded-compiler branch 3 times, most recently from 9112b44 to 54fabf3 Compare October 28, 2024 07:42
@ntkme ntkme force-pushed the embedded-compiler branch 8 times, most recently from 257b4fd to ac718ee Compare October 28, 2024 21:03
@verm
Copy link

verm commented Oct 14, 2025

Would just like to add on top of using this to get Discourse on FreeBSD I just got Vikunja working. Both work flawlessly thank you for this change it's been a huge help.

@ntkme
Copy link
Contributor Author

ntkme commented Oct 14, 2025

@nex3 Any updates on the js_interop migration? I saw that you opened quite a lot issues in dart-sdk in this area - is there any blocker?

@nex3
Copy link
Contributor

nex3 commented Oct 15, 2025

The only real blocker is merging a bunch of my JS type definitions which are currently living in a private package into Dart team owned sources. I'm in discussion with @srujzs about the best way to do that, and I may pitch in to help land it. If you'd like to help as well, we could probably loop you in.

@chalin
Copy link

chalin commented Nov 22, 2025

Hi @nex. Do you have an ETA for this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement sass --embedded in pure JS mode

5 participants