[Pkg-javascript-devel] Bug#1068693: node-mathjax-full: "MathJax(?): class constructors must be invoked with 'new'"
Dmitry Shachnev
mitya57 at debian.org
Sun Dec 15 18:06:15 GMT 2024
Hi all!
On Tue, Apr 09, 2024 at 08:46:46AM +0100, Julian Gilbey wrote:
> Package: node-mathjax-full
> Version: 3.2.2+~cs4.2.1-2
> Severity: normal
>
> I invoked MathJax using the line:
>
> <script type="text/javascript" src="file:///usr/share/nodejs/mathjax-full/es5/tex-mml-chtml.js"></script>
>
> in the header of a file, but MathJax would not load; the console gave
> the error message:
>
> MathJax(?): class constructors must be invoked with 'new'
>
> referring to tex-mml-chtml.js:1:18018
It looks like the problem comes from this JS code (produced by TypeScript
compiler):
var info_js_1 = require("mj-context-menu/js/info.js");
var html_classes_js_1 = require("mj-context-menu/js/html_classes.js");
var SelectableInfo = (function (_super) {
__extends(SelectableInfo, _super);
function SelectableInfo() {
return _super !== null && _super.apply(this, arguments) || this;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
...
return SelectableInfo;
}(info_js_1.Info));
This code can be seen in js/ui/menu/SelectableInfo.js in the build tree or in
/usr/share/nodejs/mathjax-full/js/ui/menu/SelectableInfo.js.
Here, _super is the (constructor of) parent class, Info.
Maybe the problem is that node-mj-context-menu is compiled for ES 6, so it
uses the native ES 6 classes.
/usr/share/nodejs/mj-context-menu/js/info.js has this definition:
export class Info extends AbstractPostable {
constructor(title, content, signature) {
super();
...
}
}
But we are building MathJax for ES 5, so the TypeScript compiler is trying to
generate functions instead of classes.
https://caniuse.com/es6 says ES 6 is available for >98% of users, so perhaps
we can just build for ES 6?
Although, I am not sure about my hypothesis, so I need an advice from someone
with more JS experience.
--
Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20241215/9c4e4aaa/attachment.sig>
More information about the Pkg-javascript-devel
mailing list