An embeddable Javascript interpreter in C. http://mujs.com/
  • C 96.6%
  • Makefile 1.1%
  • JavaScript 1%
  • Shell 0.7%
  • Python 0.6%
Find a file
2026-05-06 18:26:39 +02:00
docs Fix a number of typos. 2020-05-27 12:32:32 +02:00
tools Bug 708625: Use more common "stack" property for error stack trace. 2025-06-23 14:15:36 +02:00
.gitattributes Create README files. 2013-12-23 19:45:43 +01:00
.gitignore Add user.make for persistent custom settings. 2021-03-26 16:41:43 +01:00
astnames.h Issue #171: Compile sparse array initializers correctly. 2023-01-09 14:44:02 +01:00
AUTHORS Update README. 2014-03-20 12:37:26 +01:00
COPYING Update COPYING copyright year. 2020-01-02 14:37:05 +01:00
genucd.py Update character tables to include SpecialCasing.txt. 2025-02-10 12:12:13 +01:00
jsarray.c Add cycle detection to Array.prototype.join 2026-03-31 14:56:49 +02:00
jsboolean.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsbuiltin.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jscompile.c Issue #164: Use correct scope for function declaration bindings. 2024-01-22 14:22:01 +01:00
jsdate.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsdtoa.c ... and leave a bit of margin. 2021-04-21 15:07:16 +02:00
jserror.c Define Error.prototype.message property. 2025-12-01 12:49:29 +01:00
jsfunction.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsgc.c Simplify Array.prototype.sort by sorting in place without libc. 2024-11-26 21:26:12 +01:00
jsi.h Add cycle detection to Array.prototype.join 2026-03-31 14:56:49 +02:00
jsintern.c Bug 704238: Limit max string lengths. 2021-09-07 18:02:28 +02:00
jslex.c Bug 709285: Use newcap instead of old cap in js_realloc call in textpush. 2026-03-30 11:18:25 +02:00
jsmath.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsnumber.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsobject.c Bug 709254: Use temporary array to dodge malicious object mutations 2026-03-18 10:29:21 +01:00
json.c Delay string interning from lexer. 2025-12-01 12:48:37 +01:00
jsparse.c Delay string interning from lexer. 2025-12-01 12:48:37 +01:00
jsproperty.c Change js_Value to union to avoid some compiler optimization warnings. 2023-01-05 15:32:41 +01:00
jsregexp.c Fix BOL handling of multiline regexp when match includes newline. 2026-05-06 17:40:37 +02:00
jsrepr.c Merge the small private header files into jsi.h 2023-01-04 17:29:22 +01:00
jsrun.c Add cycle detection to Array.prototype.join 2026-03-31 14:56:49 +02:00
jsstate.c Fix bug when cleaning up after allocation error. 2023-08-10 17:04:53 +02:00
jsstring.c Fix BOL handling of multiline regexp when match includes newline. 2026-05-06 17:40:37 +02:00
jsvalue.c Bug 709128: Avoid undefined behavior for -INT_MIN in js_itoa. 2026-02-11 12:16:25 +01:00
main.c Improve Error.stack and restore Error.stackTrace. 2025-11-07 22:14:55 +01:00
Makefile Add "undefined" UB sanitize build target. 2026-02-11 11:54:06 +01:00
mujs.h Add rudimentary runtime limit checks. 2025-10-29 16:37:18 +01:00
one.c Split debug printing of bytecode etc into "pp" tool. 2023-01-05 15:32:41 +01:00
opnames.h Issue #171: Compile sparse array initializers correctly. 2023-01-09 14:44:02 +01:00
pp.c Issue #171: Compile sparse array initializers correctly. 2023-01-09 14:44:02 +01:00
README Remove stale IRC link. 2025-01-27 00:10:11 +01:00
regexp.c Bump default regexp recursion limit. 2026-05-06 18:26:39 +02:00
regexp.h regex: Dynamically allocate character class buffer. 2024-01-19 14:43:08 +01:00
SpecialCasing.txt Add UnicodeData.txt and SpecialCasing.txt tables. 2025-12-03 11:28:58 +01:00
UnicodeData.txt Add UnicodeData.txt and SpecialCasing.txt tables. 2025-12-03 11:28:58 +01:00
utf.c Update character tables to include SpecialCasing.txt. 2025-02-10 12:12:13 +01:00
utf.h Update character tables to include SpecialCasing.txt. 2025-02-10 12:12:13 +01:00
utfdata.h Update character tables to include SpecialCasing.txt. 2025-02-10 12:12:13 +01:00

MuJS: an embeddable Javascript interpreter in C.

ABOUT

MuJS is a lightweight Javascript interpreter designed for embedding in
other software to extend them with scripting capabilities.

LICENSE

MuJS is Copyright 2013-2017 Artifex Software, Inc.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

The software is provided "as is" and the author disclaims all warranties with
regard to this software including all implied warranties of merchantability
and fitness. In no event shall the author be liable for any special, direct,
indirect, or consequential damages or any damages whatsoever resulting from
loss of use, data or profits, whether in an action of contract, negligence
or other tortious action, arising out of or in connection with the use or
performance of this software.

COMPILING

If you are building from source you can either use the provided Unix Makefile:

	make release

Or compile the source with your preferred compiler:

	cc -O2 -c one.c -o libmujs.o

INSTALLING

To install the MuJS command line interpreter, static library and header file:

	make prefix=/usr/local install

DOWNLOAD

The latest development source is available directly from the git repository:

	git clone http://git.ghostscript.com/mujs.git

REPORTING BUGS AND PROBLEMS

Report bugs on the ghostscript bugzilla, with MuJS as the selected component.

	http://bugs.ghostscript.com/