This upgrades 0 A.D. to work with Spidermonkey 45.0.2
Here is the list of changes, for eased review:
- Various build changes. In particular, removed the NSPR dependency on Unix. Removal of obsolete spidermonkey patches in patch.sh.
- Add js/Initialization.h to source/scriptinterface/ScriptEngine.h
- Use nullptr instead of JS::NullPtr() https://bugzilla.mozilla.org/show_bug.cgi?id=1164602
- Remove JS::RuntimeOptionsRef.varObjFix https://bugzilla.mozilla.org/show_bug.cgi?id=1171177
- Remove uses of AutoIdArray https://bugzilla.mozilla.org/show_bug.cgi?id=1191529
- JS_InternUCStringN has been renamed https://bugzilla.mozilla.org/show_bug.cgi?id=1178581
- JS::Evaluate now takes scope chains explicitly Use the oppoertunity to improve the ErrorReporter https://bugzilla.mozilla.org/show_bug.cgi?id=1097987
- Array functions (such as JS_IsArrayObject) are fallible and output to params https://bugzilla.mozilla.org/show_bug.cgi?id=1179003
- Remove JSCLASS_CACHED_PROTO_WIDTH workaround in our code https://bugzilla.mozilla.org/show_bug.cgi?id=1236373
- Remove compile'n go (setCompileAndGo) https://bugzilla.mozilla.org/show_bug.cgi?id=679939
- Mark shared memory in direct access operations (JS_GetUint16ArrayData and JS_GetUint8ArrayData) https://bugzilla.mozilla.org/show_bug.cgi?id=1176214
- JS::ObjectOpResult. I chose to follow the same convention as the SM developers, which is to return true when there is a failure. That changes our code behavior, but this is ES6-compliant as far as I understood. https://bugzilla.mozilla.org/show_bug.cgi?id=1113369