diff options
author | kwm <kwm@FreeBSD.org> | 2017-06-10 04:08:54 +0800 |
---|---|---|
committer | kwm <kwm@FreeBSD.org> | 2017-06-10 04:08:54 +0800 |
commit | 1be4b50135c3ece06d5b2e4b30ec77962a046a11 (patch) | |
tree | 3a4b3579b1634b1465916b49758466ae464b3866 /lang | |
parent | 226b08d7ad0656a2b3b102220fdfc548247255b9 (diff) | |
download | freebsd-ports-gnome-1be4b50135c3ece06d5b2e4b30ec77962a046a11.tar.gz freebsd-ports-gnome-1be4b50135c3ece06d5b2e4b30ec77962a046a11.tar.zst freebsd-ports-gnome-1be4b50135c3ece06d5b2e4b30ec77962a046a11.zip |
Add spidermonkey 38 aka mozjs 3.8.
Spidermonkey is mozilla's JavaScript engine. This version is based
on the last release of firefox esr; 38.8.0. This is done because
the stand alone release aren't done often enough. I copied this idea
from the fedora spidermonkey38 spec file.
Probably due to the fact that spidermonkey in the firefox tarball isn't
intended to be installed standalone we need to manualy replace the header
symlinks in the stage dir with the actual header files.
Thanks to miki and streja for build testing on armv6 and aarch64.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/Makefile | 1 | ||||
-rw-r--r-- | lang/spidermonkey38/Makefile | 124 | ||||
-rw-r--r-- | lang/spidermonkey38/distinfo | 3 | ||||
-rw-r--r-- | lang/spidermonkey38/files/patch-bug1143022 | 127 | ||||
-rw-r--r-- | lang/spidermonkey38/files/patch-bug702179 | 18 | ||||
-rw-r--r-- | lang/spidermonkey38/files/patch-configure | 14 | ||||
-rw-r--r-- | lang/spidermonkey38/files/patch-js_public_Conversions.h | 15 | ||||
-rw-r--r-- | lang/spidermonkey38/pkg-descr | 3 | ||||
-rw-r--r-- | lang/spidermonkey38/pkg-plist | 121 |
9 files changed, 426 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile index 2e7468943fc9..cd40c6cc777f 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -333,6 +333,7 @@ SUBDIR += spidermonkey170 SUBDIR += spidermonkey185 SUBDIR += spidermonkey24 + SUBDIR += spidermonkey38 SUBDIR += spl SUBDIR += squeak SUBDIR += squirrel diff --git a/lang/spidermonkey38/Makefile b/lang/spidermonkey38/Makefile new file mode 100644 index 000000000000..8693b829018f --- /dev/null +++ b/lang/spidermonkey38/Makefile @@ -0,0 +1,124 @@ +# Created by: Kubilay Kocak <koobs@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= spidermonkey38 +PORTVERSION= 38.8.0 +CATEGORIES= lang +MASTER_SITES= MOZILLA/firefox/releases/${PORTVERSION}esr/source +DISTNAME= firefox-${PORTVERSION}esr.source + +MAINTAINER= kwm@FreeBSD.org +COMMENT= Standalone JavaScript based from Mozilla 38-esr + +LIB_DEPENDS= libnspr4.so:devel/nspr \ + libffi.so:devel/libffi \ + libicudata.so:devel/icu + +GNU_CONFIGURE= yes +USES= compiler:c++11-lib gmake pathfix perl5 pkgconfig \ + python:2.7,build readline tar:bzip2 +USE_PERL5= build +USE_LDCONFIG= yes + +WRKSRC= ${WRKDIR}/mozilla-esr38/js/src + +CONFIGURE_ARGS= --with-pthreads \ + --with-intl-api \ + --with-system-zlib \ + --enable-system-ffi \ + --with-system-icu \ + --with-system-nspr + +OPTIONS_DEFINE= DEBUG GCZEAL JEMALLOC METHODJIT OPTIMIZE READLINE \ + THREADSAFE TRACEJIT UTF8 DTRACE +OPTIONS_DEFAULT=METHODJIT OPTIMIZE READLINE THREADSAFE TRACEJIT +OPTIONS_SUB= yes + +DEBUG_CONFIGURE_ENABLE= debug debug-symbols +DEBUG_CONFIGURE_DISABLE=debug + +DTRACE_CONFIGURE_ENABLE=dtrace profiling +DTRACE_LIBS= -lelf + +GCZEAL_DESC= Enable Zealous garbage collecting +GCZEAL_CONFIGURE_ENABLE=gczeal + +JEMALLOC_DESC= Use jemalloc as memory allocator +JEMALLOC_CONFIGURE_ENABLE= jemalloc + +METHODJIT_DESC= Enable method JIT support +METHODJIT_CONFIGURE_ENABLE= methodjit + +OPTIMIZE_DESC= Enable compiler optimizations +OPTIMIZE_CONFIGURE_ENABLE= optimize + +READLINE_DESC= Link js shell to system readline library +READLINE_CONFIGURE_ENABLE= readline + +THREADSAFE_DESC=Enable multiple thread support +THREADSAFE_CONFIGURE_ENABLE= threadsafe + +TRACEJIT_DESC= Enable tracing JIT support +TRACEJIT_CONFIGURE_ENABLE= tracejit + +UTF8_DESC= Treat strings as UTF8 instead of ISO-8859-1 +UTF8_CFLAGS= -DJS_C_STRINGS_ARE_UTF8 + +.include <bsd.port.pre.mk> + +.if ${ARCH} == amd64 +CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} +.endif + +post-patch: +# Skip some tests because bundled icu differs from system + @${RM} ${WRKSRC}/tests/test262/intl402/ch10/10.2/10.2.3_b.js \ + ${WRKSRC}/tests/Intl/DateTimeFormat/format.js \ + ${WRKSRC}/tests/ecma_6/String/normalize-generateddata-part1-not-listed.js + +regression-test: build + @${ECHO_MSG} -n "===> Running jstests.py: " + @cd ${WRKSRC} && ${SETENV} TZ=PST8PDT ${PYTHON_CMD} tests/jstests.py \ + -d -s --no-progress ./js/src/shell/js +.if ${PORT_OPTIONS:MMETHODJIT} || ${PORT_OPTIONS:MTRACEJIT} + @${ECHO_MSG} -n "===> Running jit_test.py: " + @cd ${WRKSRC} && ${SETENV} TZ=PST8PDT ${PYTHON_CMD} jit-test/jit_test.py \ + -d -s --no-progress --jitflags=,m,j,mj,mjp,am,amj,amjp,amd ./js/src/shell/js +.endif + +.include "Makefile.filelist" + +post-install: + ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs + ${LN} -fs libmozjs-38.so ${STAGEDIR}${PREFIX}/lib/libmozjs-38.so.1 +# the build installs symlinks, replace them with real files. +# fedora has a nice for loop, but I can't get it to work in make, ideas? + ${RM} -rf ${STAGEDIR}${PREFIX}/include/mozjs-38/* + ${INSTALL_DATA} ${WRKSRC}/js/src/js-config.h \ + ${STAGEDIR}${PREFIX}/include/mozjs-38/ +.for file in ${BASEFILES} + ${INSTALL_DATA} ${WRKSRC}/${file} \ + ${STAGEDIR}${PREFIX}/include/mozjs-38/ +.endfor + ${MKDIR} ${STAGEDIR}${PREFIX}/include/mozjs-38/js +.for file in ${JSFILES} + ${INSTALL_DATA} ${WRKSRC}/../public/${file} \ + ${STAGEDIR}${PREFIX}/include/mozjs-38/js/ +.endfor + ${MKDIR} ${STAGEDIR}${PREFIX}/include/mozjs-38/mozilla +.for file in ${MOZILLAFILES} + ${INSTALL_DATA} ${WRKSRC}/../../mfbt/${file} \ + ${STAGEDIR}${PREFIX}/include/mozjs-38/mozilla/ +.endfor +# Install files, not symlinks to build directory +#.for link in `find ${STAGEDIR}${PREFIX} -type l`; do +# header=`readlink ${link}`; \ +# rm -f ${link}; \ +# cp -p ${header} ${link} +#.endfor +.if ! ${PORT_OPTIONS:MDTRACE} + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/js38 + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-38.* +.endif + +.include <bsd.port.post.mk> diff --git a/lang/spidermonkey38/distinfo b/lang/spidermonkey38/distinfo new file mode 100644 index 000000000000..2293795d7f30 --- /dev/null +++ b/lang/spidermonkey38/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1496648333 +SHA256 (firefox-38.8.0esr.source.tar.bz2) = 9475adcee29d590383c4885bc5f958093791d1db4302d694a5d2766698f59982 +SIZE (firefox-38.8.0esr.source.tar.bz2) = 181198635 diff --git a/lang/spidermonkey38/files/patch-bug1143022 b/lang/spidermonkey38/files/patch-bug1143022 new file mode 100644 index 000000000000..7a4ae2bc3459 --- /dev/null +++ b/lang/spidermonkey38/files/patch-bug1143022 @@ -0,0 +1,127 @@ +From a7a5b5ce485512e659fd4f8a1edb2cda3021517f Mon Sep 17 00:00:00 2001 +From: Zheng Xu <zheng.xu@linaro.org> +Date: Thu, 01 Sep 2016 16:58:30 +0800 +Subject: [PATCH] Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits are clear. r=ehoogeveen + +There might be 48-bit VA on arm64 depending on kernel configuration. +Manually mmap heap memory to align with the assumption made by JS engine. + +Change-Id: I2853e284b92aecf609e00bb82718e5df535bbba2 +--- gc/Memory.cpp.orig 2016-04-20 21:17:31 UTC ++++ gc/Memory.cpp +@@ -379,7 +379,7 @@ static inline void* + MapMemoryAt(void* desired, size_t length, int prot = PROT_READ | PROT_WRITE, + int flags = MAP_PRIVATE | MAP_ANON, int fd = -1, off_t offset = 0) + { +-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) ++#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) + MOZ_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); + #endif + void* region = mmap(desired, length, prot, flags, fd, offset); +@@ -429,6 +429,41 @@ MapMemory(size_t length, int prot = PROT_READ | PROT_W + return nullptr; + } + return region; ++#elif defined(__aarch64__) ++ /* ++ * There might be similar virtual address issue on arm64 which depends on ++ * hardware and kernel configurations. But the work around is slightly ++ * different due to the different mmap behavior. ++ * ++ * TODO: Merge with the above code block if this implementation works for ++ * ia64 and sparc64. ++ */ ++ const uintptr_t start = UINT64_C(0x0000070000000000); ++ const uintptr_t end = UINT64_C(0x0000800000000000); ++ const uintptr_t step = ChunkSize; ++ /* ++ * Optimization options if there are too many retries in practice: ++ * 1. Examine /proc/self/maps to find an available address. This file is ++ * not always available, however. In addition, even if we examine ++ * /proc/self/maps, we may still need to retry several times due to ++ * racing with other threads. ++ * 2. Use a global/static variable with lock to track the addresses we have ++ * allocated or tried. ++ */ ++ uintptr_t hint; ++ void* region = MAP_FAILED; ++ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { ++ region = mmap((void*)hint, length, prot, flags, fd, offset); ++ if (region != MAP_FAILED) { ++ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { ++ if (munmap(region, length)) { ++ MOZ_ASSERT(errno == ENOMEM); ++ } ++ region = MAP_FAILED; ++ } ++ } ++ } ++ return region == MAP_FAILED ? nullptr : region; + #else + void* region = MozTaggedAnonymousMmap(nullptr, length, prot, flags, fd, offset, "js-gc-heap"); + if (region == MAP_FAILED) + +--- jsapi-tests/testGCAllocator.cpp.orig 2016-04-20 21:17:34 UTC ++++ jsapi-tests/testGCAllocator.cpp +@@ -257,7 +257,7 @@ unmapPages(void* p, size_t size) + void* + mapMemoryAt(void* desired, size_t length) + { +-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) ++#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) || defined(__aarch64__) + MOZ_RELEASE_ASSERT(0xffff800000000000ULL & (uintptr_t(desired) + length - 1) == 0); + #endif + void* region = mmap(desired, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); +@@ -274,21 +274,45 @@ mapMemoryAt(void* desired, size_t length) + void* + mapMemory(size_t length) + { +- void* hint = nullptr; ++ int prot = PROT_READ | PROT_WRITE; ++ int flags = MAP_PRIVATE | MAP_ANON; ++ int fd = -1; ++ off_t offset = 0; ++ // The test code must be aligned with the implementation in gc/Memory.cpp. + #if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) +- hint = (void*)0x0000070000000000ULL; +-#endif +- void* region = mmap(hint, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); ++ void* region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset); + if (region == MAP_FAILED) + return nullptr; +-#if defined(__ia64__) || (defined(__sparc64__) && defined(__NetBSD__)) +- if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000ULL) { ++ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { + if (munmap(region, length)) + MOZ_RELEASE_ASSERT(errno == ENOMEM); + return nullptr; + } +-#endif + return region; ++#elif defined(__aarch64__) ++ const uintptr_t start = UINT64_C(0x0000070000000000); ++ const uintptr_t end = UINT64_C(0x0000800000000000); ++ const uintptr_t step = js::gc::ChunkSize; ++ uintptr_t hint; ++ void* region = MAP_FAILED; ++ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) { ++ region = mmap((void*)hint, length, prot, flags, fd, offset); ++ if (region != MAP_FAILED) { ++ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) { ++ if (munmap(region, length)) { ++ MOZ_RELEASE_ASSERT(errno == ENOMEM); ++ } ++ region = MAP_FAILED; ++ } ++ } ++ } ++ return region == MAP_FAILED ? nullptr : region; ++#else ++ void* region = mmap(nullptr, length, prot, flags, fd, offset); ++ if (region == MAP_FAILED) ++ return nullptr; ++ return region; ++#endif + } + + void diff --git a/lang/spidermonkey38/files/patch-bug702179 b/lang/spidermonkey38/files/patch-bug702179 new file mode 100644 index 000000000000..b7d721f5858f --- /dev/null +++ b/lang/spidermonkey38/files/patch-bug702179 @@ -0,0 +1,18 @@ +--- Makefile.in.orig 2017-06-05 19:05:02 UTC ++++ Makefile.in +@@ -208,10 +208,13 @@ endif + SCRIPTS = $(JS_CONFIG_NAME) + SDK_BINARY = $(JS_CONFIG_NAME) + +-$(LIBRARY_NAME).pc: js.pc ++$(JS_CONFIG_NAME): js-config + cp $^ $@ + +-install:: $(LIBRARY_NAME).pc ++$(JS_LIBRARY_NAME).pc: js.pc ++ cp $^ $@ ++ ++install:: $(JS_LIBRARY_NAME).pc + $(SYSINSTALL) $^ $(DESTDIR)$(prefix)/libdata/pkgconfig + + install:: js-config.h diff --git a/lang/spidermonkey38/files/patch-configure b/lang/spidermonkey38/files/patch-configure new file mode 100644 index 000000000000..65ab2a988f05 --- /dev/null +++ b/lang/spidermonkey38/files/patch-configure @@ -0,0 +1,14 @@ +--- configure.orig 2016-04-20 21:18:10 UTC ++++ configure +@@ -1696,9 +1696,8 @@ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[ + MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"` + IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'` + +-JS_SHELL_NAME=js +-JS_CONFIG_NAME=js-config +- ++JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION ++JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config + + if test -n "$IS_ALPHA"; then + diff --git a/lang/spidermonkey38/files/patch-js_public_Conversions.h b/lang/spidermonkey38/files/patch-js_public_Conversions.h new file mode 100644 index 000000000000..6c15d4d5487f --- /dev/null +++ b/lang/spidermonkey38/files/patch-js_public_Conversions.h @@ -0,0 +1,15 @@ +https://hg.mozilla.org/mozilla-central/rev/bd25b06261c8 + +--- ../../js/public/Conversions.h.orig 2017-06-05 21:05:02.575788000 +0200 ++++ ../../js/public/Conversions.h 2017-06-05 21:06:42.668207000 +0200 +@@ -349,7 +349,9 @@ ToIntWidth(double d) + inline int32_t + ToInt32(double d) + { +-#if defined (__arm__) && defined (__GNUC__) ++// clang crashes compiling this when targeting arm: ++// https://llvm.org/bugs/show_bug.cgi?id=22974 ++#if defined (__arm__) && defined (__GNUC__) && !defined(__clang__) + int32_t i; + uint32_t tmp0; + uint32_t tmp1; diff --git a/lang/spidermonkey38/pkg-descr b/lang/spidermonkey38/pkg-descr new file mode 100644 index 000000000000..2db0b2ca559f --- /dev/null +++ b/lang/spidermonkey38/pkg-descr @@ -0,0 +1,3 @@ +Spidermonkey is the JavaScript interpreter from the Mozilla project. + +WWW: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey diff --git a/lang/spidermonkey38/pkg-plist b/lang/spidermonkey38/pkg-plist new file mode 100644 index 000000000000..bfafdf58f946 --- /dev/null +++ b/lang/spidermonkey38/pkg-plist @@ -0,0 +1,121 @@ +bin/js38 +bin/js38-config +include/mozjs-38/js-config.h +include/mozjs-38/js.msg +include/mozjs-38/js/CallArgs.h +include/mozjs-38/js/CallNonGenericMethod.h +include/mozjs-38/js/CharacterEncoding.h +include/mozjs-38/js/Class.h +include/mozjs-38/js/Conversions.h +include/mozjs-38/js/Date.h +include/mozjs-38/js/Debug.h +include/mozjs-38/js/GCAPI.h +include/mozjs-38/js/HashTable.h +include/mozjs-38/js/HeapAPI.h +include/mozjs-38/js/Id.h +include/mozjs-38/js/LegacyIntTypes.h +include/mozjs-38/js/MemoryMetrics.h +include/mozjs-38/js/Principals.h +include/mozjs-38/js/ProfilingFrameIterator.h +include/mozjs-38/js/ProfilingStack.h +include/mozjs-38/js/Proxy.h +include/mozjs-38/js/RequiredDefines.h +include/mozjs-38/js/RootingAPI.h +include/mozjs-38/js/SliceBudget.h +include/mozjs-38/js/StructuredClone.h +include/mozjs-38/js/TracingAPI.h +include/mozjs-38/js/TrackedOptimizationInfo.h +include/mozjs-38/js/TypeDecls.h +include/mozjs-38/js/UbiNode.h +include/mozjs-38/js/UbiNodeTraverse.h +include/mozjs-38/js/Utility.h +include/mozjs-38/js/Value.h +include/mozjs-38/js/Vector.h +include/mozjs-38/js/WeakMapPtr.h +include/mozjs-38/jsalloc.h +include/mozjs-38/jsapi.h +include/mozjs-38/jsbytecode.h +include/mozjs-38/jsclist.h +include/mozjs-38/jscpucfg.h +include/mozjs-38/jsfriendapi.h +include/mozjs-38/jsperf.h +include/mozjs-38/jsprf.h +include/mozjs-38/jsprototypes.h +include/mozjs-38/jspubtd.h +include/mozjs-38/jstypes.h +include/mozjs-38/jsversion.h +include/mozjs-38/jswrapper.h +include/mozjs-38/mozilla/Alignment.h +include/mozjs-38/mozilla/AllocPolicy.h +include/mozjs-38/mozilla/AlreadyAddRefed.h +include/mozjs-38/mozilla/Array.h +include/mozjs-38/mozilla/ArrayUtils.h +include/mozjs-38/mozilla/Assertions.h +include/mozjs-38/mozilla/Atomics.h +include/mozjs-38/mozilla/Attributes.h +include/mozjs-38/mozilla/BinarySearch.h +include/mozjs-38/mozilla/BloomFilter.h +include/mozjs-38/mozilla/Casting.h +include/mozjs-38/mozilla/ChaosMode.h +include/mozjs-38/mozilla/Char16.h +include/mozjs-38/mozilla/CheckedInt.h +include/mozjs-38/mozilla/Compiler.h +include/mozjs-38/mozilla/Compression.h +include/mozjs-38/mozilla/Constants.h +include/mozjs-38/mozilla/DebugOnly.h +include/mozjs-38/mozilla/Decimal.h +include/mozjs-38/mozilla/Endian.h +include/mozjs-38/mozilla/EnumSet.h +include/mozjs-38/mozilla/EnumeratedArray.h +include/mozjs-38/mozilla/FloatingPoint.h +include/mozjs-38/mozilla/GuardObjects.h +include/mozjs-38/mozilla/HashFunctions.h +include/mozjs-38/mozilla/IntegerPrintfMacros.h +include/mozjs-38/mozilla/IntegerRange.h +include/mozjs-38/mozilla/IntegerTypeTraits.h +include/mozjs-38/mozilla/IteratorTraits.h +include/mozjs-38/mozilla/JSONWriter.h +include/mozjs-38/mozilla/Likely.h +include/mozjs-38/mozilla/LinkedList.h +include/mozjs-38/mozilla/MacroArgs.h +include/mozjs-38/mozilla/MacroForEach.h +include/mozjs-38/mozilla/MathAlgorithms.h +include/mozjs-38/mozilla/Maybe.h +include/mozjs-38/mozilla/MaybeOneOf.h +include/mozjs-38/mozilla/MemoryChecking.h +include/mozjs-38/mozilla/MemoryReporting.h +include/mozjs-38/mozilla/Move.h +include/mozjs-38/mozilla/NullPtr.h +include/mozjs-38/mozilla/NumericLimits.h +include/mozjs-38/mozilla/Opaque.h +include/mozjs-38/mozilla/Pair.h +include/mozjs-38/mozilla/PodOperations.h +include/mozjs-38/mozilla/Poison.h +include/mozjs-38/mozilla/Range.h +include/mozjs-38/mozilla/RangedPtr.h +include/mozjs-38/mozilla/ReentrancyGuard.h +include/mozjs-38/mozilla/RefCountType.h +include/mozjs-38/mozilla/RefPtr.h +include/mozjs-38/mozilla/ReverseIterator.h +include/mozjs-38/mozilla/RollingMean.h +include/mozjs-38/mozilla/SHA1.h +include/mozjs-38/mozilla/Scoped.h +include/mozjs-38/mozilla/SegmentedVector.h +include/mozjs-38/mozilla/SizePrintfMacros.h +include/mozjs-38/mozilla/SplayTree.h +include/mozjs-38/mozilla/TaggedAnonymousMemory.h +include/mozjs-38/mozilla/TemplateLib.h +include/mozjs-38/mozilla/ThreadLocal.h +include/mozjs-38/mozilla/ToString.h +include/mozjs-38/mozilla/TypeTraits.h +include/mozjs-38/mozilla/TypedEnumBits.h +include/mozjs-38/mozilla/Types.h +include/mozjs-38/mozilla/UniquePtr.h +include/mozjs-38/mozilla/Vector.h +include/mozjs-38/mozilla/WeakPtr.h +include/mozjs-38/mozilla/double-conversion.h +include/mozjs-38/mozilla/unused.h +include/mozjs-38/mozilla/utils.h +lib/libmozjs-38.so +lib/libmozjs-38.so.1 +libdata/pkgconfig/mozjs-38.pc |