x64 builds of the very old SpiderMonkey version D2BS uses.
There are 3 x64 builds in this repo, seperated into subdirectories:
- Release: Use for your project's Release build
- DebugOptimized: Use for project's Debug build
- Debug: Slower than DebugOptimized so use it only if you run into debugging issues with DebugOptimized
- Choose from the Release, DebugOptimized, or Debug builds in this repo
- (Optional) Add or copy the
includedirectory to to the include path, or you can rely on the header files already present in D2BS (they are the same versions as this repo's Debug and DebugOptimized builds) - Add the
mozjs.libdynamic library - Set the
JS_USE_JSID_STRUCT_TYPESpreprocessor macro for DebugOptimized or Debug builds to avoid linker errors LoadLibraryor otherwise loadmozjs.dllinto the process before using any SpiderMonkey features
Q: Why are there only dynamic libraries and not static libraries?
A: To build this old version of SpiderMonkey, VS2012 had to be used. Therefore to use these static libraries, VS2012 must be used (or set as the platform toolset). It's unlikely anybody wants to develop on VS2012, so they are excluded from the repo.
Q: Why is there an include folder per build instead of one in common?
A: The files in each build's include folder are identical except for js-config.h, which sets JS_GC_ZEAL for DebugOptimized and Debug builds. Note that the SpiderMonkey headers included in D2BS are the debug headers, as its js-config.h sets JS_GC_ZEAL even in release mode.
Q: What is the exact version of SpiderMonkey in this repo?
A: It is the version D2BS uses. The Mercurial revision in mozilla-central is 61f7ebb9f3d903556516bd6cbe8b84ae14c0fa33. You can compare this version of jsapi.h in mozilla-central vs the version of jsapi.h in D2BS and see they are the same.