[Pkg-javascript-devel] Bug#1144876: highlight.js: Rollup change breaks hljs.registerLanguage calls
Blair Noctis
ncts at debian.org
Wed Aug 19 17:13:31 BST 2026
Source: highlight.js
Version: 10.7.3+dfsg-1
Severity: grave
Justification: renders package unusable
Tags: patch
X-Debbugs-Cc: debian-js at lists.debian.org, ncts at debian.org
Dear Maintainer,
Due to a breaking change in behavior from Rollup 2 to 3, IIFE regex replacement
for `hljs.registerLanguage` calls breaks.
Rollup 2, which this version of hljs targeted, generates this:
var dummyName = (function () { /* ... */ }());
which is replaced by hljs to:
hljs.registerLanguage('${language.name}', function () { /* ... */ }());
while Rollup 3 generates this:
var dummyName = (function () { /* ... */ })();
which is replaced by hljs to:
hljs.registerLanguage('${language.name}', function () { /* ... */ })();
You can see that while the previous replacement calls the function *inside*,
current replacement calls the "result" of the `hljs.registerLanguage` call.
The following patch fixes it by calling `hljs.registerLanguage` in a separate
statement.
Note, it's intended to be in the debian/patches series, not a debdiff.
--- a/tools/lib/language.js
+++ b/tools/lib/language.js
@@ -86,14 +86,14 @@
async function compileLanguage (language, options) {
const EXPORT_REGEX = /export default (.*);/;
- const IIFE_HEADER_REGEX = /^(var dummyName = )?\(function \(\)/;
+ //const IIFE_HEADER_REGEX = /^(var dummyName = )?\(function \(\)/;
// TODO: cant we use the source we already have?
const input = { ...build_config.rollup.browser.input, input: language.path };
const output = { ...build_config.rollup.browser.output, name: `dummyName`, file: "out.js" };
var data = await rollupCode(input, output)
- data = data.replace(IIFE_HEADER_REGEX, `hljs.registerLanguage('${language.name}', function ()`)
+ data = `(function() {\n${data}\nhljs.registerLanguage('${language.name}', dummyName);\n})();` //data = data.replace(IIFE_HEADER_REGEX, `hljs.registerLanguage('${language.name}', function ()`)
var original = data;
language.module = data;
--
,Sdrager
Blair Noctis
🇵🇸
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20260819/d0f1f1fa/attachment.sig>
More information about the Pkg-javascript-devel
mailing list