WIP: Port to mozjs78.
Build:
- '--enable-unaligned-private-values' is no longer needed... https://phabricator.services.mozilla.com/D39214
- '--enable-posix-nspr-emulation' is no longer needed... https://phabricator.services.mozilla.com/rMOZILLACENTRALb314f6c6148efb8909c3483eb2a49117049a06cd
JSAPI ISSUES
Coverage (LCov) is now enabled using an internal flag. The only way we can enable is it is setting the "JS_CODE_COVERAGE_OUTPUT_DIR" environmental variable - https://phabricator.services.mozilla.com/D28813 // https://phabricator.services.mozilla.com/D58667
Maybe relevant: https://phabricator.services.mozilla.com/D58668
We currently hit this assert if JS_CODE_COVERAGE_OUTPUT_DIR is not set: https://searchfox.org/mozilla-central/source/js/src/vm/BytecodeUtil.cpp#2901
Garbage collection is broken
, we hit...
Assertion failure: trc->runtime()->gc.state() == State::NotActive || trc->runtime()->gc.state() == State::MarkRoots, at /js/src/gc/Marking.cpp:410"
Whenever we call it directly.
JSAPI Changes
Meta Issue for a lot of SM changes https://bugzilla.mozilla.org/show_bug.cgi?id=1633145
Behavioral Changes
- Using 'uneval' (we use it in our debugger) now requires setToSourceEnabled on the RealmCreationOptions
Renamed/Refactored:
- js::gc::detail::GetGCThingZone -> js::gc::detail::GetTenuredGCThingZone
https://phabricator.services.mozilla.com/D72891 https://bugzilla.mozilla.org/show_bug.cgi?id=1626322
- JS_IsArrayObject, JS_NewArrayObject, JS_GetArrayLength
Now Under JS::
- JS::AutoValueArray -> JS::RootedValueArray
https://phabricator.services.mozilla.com/D73295
Replaced
- INTERNED_STRING_TO_JSID(cx, interned) -> JS::PropertyKey::fromPinnedString(interned)
https://phabricator.services.mozilla.com/D72563
Signature Changes
- GetCodeCoverageSummary now returns JS::UniqueChars
https://phabricator.services.mozilla.com/D46167
Made Private
- JSPRopertySpec "flag" is no longer writable, it can be read using "->attributes()". We use this!
https://phabricator.services.mozilla.com/D72528
Removed
- Error Flags
https://phabricator.services.mozilla.com/D66326
- js::Valuify
https://phabricator.services.mozilla.com/D41985
- Extra Warnings
https://bugzilla.mozilla.org/show_bug.cgi?id=1619177
- JSGC_MAX_MALLOC_BYTES
https://phabricator.services.mozilla.com/D39735 https://bugzilla.mozilla.org/show_bug.cgi?id=1569564
- JSGC_DYNAMIC_MARK_SLICE and JSGC_DYNAMIC_HEAP_GROWTH
They are both now default everywhere.
https://bugzilla.mozilla.org/show_bug.cgi?id=1633405 https://phabricator.services.mozilla.com/D79148