Changelog
Please see the releases page on GitLab for the latest changelog.
6.0.0-alpha.6 — 2026-10-09
Custom functions get calculations and keyword arguments on every engine, GraalJS runs on Windows,
and the Node engine leaves the JVM's working directory alone. SassValue gains SassCalculation,
so an exhaustive switch over SassValue needs a new case.
Fixed
- The Node engine no longer moves the JVM's process-wide working directory
(#101).
require()from a module still resolves against the module's own directory;process.cwd()in a module now reports the application's directory. See the working directory.
Changed
- jsass will not ship the dart-sass binary for the embedded engine (#103, closed as won't fix). You bring dart-sass on every engine, as before.
- The tests now run on dart-sass 1.104.0: the WebJar and the native release are pinned to it
(previously 1.86.3), and the npm package is
^1.104.0(previously 1.99.0). The minimum dart-sass for jsass is unchanged.
Added
- The GraalJS engine runs on Windows (#102).
JavetNodeJsassCompiler.builder().followModuleWorkingDirectory(true)restores Javet's native working-directory behaviour, for modules that rely onprocess.cwd()being their own directory.- Custom functions receive and return calculations
(#104):
SassCalculationandCalculationOperation. Onlycalc(one argument),min,maxandclamp(three arguments) can be returned. On the JavaScript engines, returning a calculation that contains an operation needs dart-sass 1.98.0 or newer. $args...arrives asSassArgumentList, aSassListwith the caller's keyword arguments ingetKeywords()(#104). Keyword arguments the function never reads fail the compile with "No parameter named $x.", as in dart-sass.