summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Carey <jcarey@argv.me>2018-05-01 18:11:15 -0400
committerJason Carey <jcarey@argv.me>2018-05-16 11:27:31 -0400
commitbadb2102db92c2fd94c950a443b7d5d0c672774e (patch)
tree426458156bff1e6d7ae246c29dc58d88aeb8999d
parent081ec07c4807774227a6bded19aa7b001666d281 (diff)
downloadmongo-badb2102db92c2fd94c950a443b7d5d0c672774e.tar.gz
SERVER-29301 Upgrade MozJS to ESR 45.9.0
(cherry picked from commit 5455453a9ec844e50a3a4acc904fc4adbae5e43b)
-rw-r--r--src/third_party/mozjs-45/extract/js/src/gc/GCRuntime.h2
-rw-r--r--src/third_party/mozjs-45/extract/js/src/gc/Zone.cpp1
-rw-r--r--src/third_party/mozjs-45/extract/js/src/gc/Zone.h4
-rw-r--r--src/third_party/mozjs-45/extract/js/src/jscompartment.h2
-rw-r--r--src/third_party/mozjs-45/extract/js/src/jsgc.cpp54
-rw-r--r--src/third_party/mozjs-45/get-sources.sh2
-rw-r--r--src/third_party/mozjs-45/platform/aarch64/linux/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/aarch64/linux/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/ppc64le/linux/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/ppc64le/linux/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/s390x/linux/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/s390x/linux/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/freebsd/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/freebsd/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/linux/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/linux/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/openbsd/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/openbsd/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/osx/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/osx/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/solaris/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/solaris/include/js-config.h2
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/windows/build/js-confdefs.h6
-rw-r--r--src/third_party/mozjs-45/platform/x86_64/windows/include/js-config.h2
24 files changed, 94 insertions, 43 deletions
diff --git a/src/third_party/mozjs-45/extract/js/src/gc/GCRuntime.h b/src/third_party/mozjs-45/extract/js/src/gc/GCRuntime.h
index e0ad996150d..be8348a6f47 100644
--- a/src/third_party/mozjs-45/extract/js/src/gc/GCRuntime.h
+++ b/src/third_party/mozjs-45/extract/js/src/gc/GCRuntime.h
@@ -937,7 +937,7 @@ class GCRuntime
void beginSweepPhase(bool lastGC);
void findZoneGroups();
- bool findZoneEdgesForWeakMaps();
+ bool findInterZoneEdges();
void getNextZoneGroup();
void endMarkingZoneGroup();
void beginSweepingZoneGroup();
diff --git a/src/third_party/mozjs-45/extract/js/src/gc/Zone.cpp b/src/third_party/mozjs-45/extract/js/src/gc/Zone.cpp
index b001ecff9e6..a13d855335c 100644
--- a/src/third_party/mozjs-45/extract/js/src/gc/Zone.cpp
+++ b/src/third_party/mozjs-45/extract/js/src/gc/Zone.cpp
@@ -30,6 +30,7 @@ JS::Zone::Zone(JSRuntime* rt)
compartments(),
gcGrayRoots(),
gcWeakKeys(SystemAllocPolicy(), rt->randomHashCodeScrambler()),
+ hasDeadProxies(false),
gcMallocBytes(0),
gcMallocGCTriggered(false),
usage(&rt->gc.usage),
diff --git a/src/third_party/mozjs-45/extract/js/src/gc/Zone.h b/src/third_party/mozjs-45/extract/js/src/gc/Zone.h
index 5519823ada2..bc31394e5bc 100644
--- a/src/third_party/mozjs-45/extract/js/src/gc/Zone.h
+++ b/src/third_party/mozjs-45/extract/js/src/gc/Zone.h
@@ -322,6 +322,10 @@ struct Zone : public JS::shadow::Zone,
// can't be determined by examining this zone by itself.
ZoneSet gcZoneGroupEdges;
+ // Zones with dead proxies require an extra scan through the wrapper map,
+ // so track whether any dead proxies are known to exist.
+ bool hasDeadProxies;
+
// Malloc counter to measure memory pressure for GC scheduling. It runs from
// gcMaxMallocBytes down to zero. This counter should be used only when it's
// not possible to know the size of a free.
diff --git a/src/third_party/mozjs-45/extract/js/src/jscompartment.h b/src/third_party/mozjs-45/extract/js/src/jscompartment.h
index de5592fd65a..bcf52ce0b06 100644
--- a/src/third_party/mozjs-45/extract/js/src/jscompartment.h
+++ b/src/third_party/mozjs-45/extract/js/src/jscompartment.h
@@ -602,6 +602,8 @@ struct JSCompartment
void findOutgoingEdges(js::gc::ComponentFinder<JS::Zone>& finder);
+ MOZ_MUST_USE bool findDeadProxyZoneEdges(bool* foundAny);
+
js::DtoaCache dtoaCache;
// Random number generator for Math.random().
diff --git a/src/third_party/mozjs-45/extract/js/src/jsgc.cpp b/src/third_party/mozjs-45/extract/js/src/jsgc.cpp
index 776ebef6563..4ff0ca95182 100644
--- a/src/third_party/mozjs-45/extract/js/src/jsgc.cpp
+++ b/src/third_party/mozjs-45/extract/js/src/jsgc.cpp
@@ -4528,8 +4528,8 @@ DropStringWrappers(JSRuntime* rt)
*
* If compartment A has an edge to an unmarked object in compartment B, then we
* must not sweep A in a later slice than we sweep B. That's because a write
- * barrier in A that could lead to the unmarked object in B becoming
- * marked. However, if we had already swept that object, we would be in trouble.
+ * barrier in A could lead to the unmarked object in B becoming marked.
+ * However, if we had already swept that object, we would be in trouble.
*
* If we consider these dependencies as a graph, then all the compartments in
* any strongly-connected component of this graph must be swept in the same
@@ -4573,6 +4573,30 @@ JSCompartment::findOutgoingEdges(ComponentFinder<JS::Zone>& finder)
}
}
+bool
+JSCompartment::findDeadProxyZoneEdges(bool* foundAny)
+{
+ // As an optimization, return whether any dead proxy objects are found in
+ // this compartment so that if a zone has none, its cross compartment
+ // wrappers do not need to be scanned.
+ *foundAny = false;
+ for (js::WrapperMap::Enum e(crossCompartmentWrappers); !e.empty(); e.popFront()) {
+ Value value = e.front().value().get();
+ if (value.isObject()) {
+ if (IsDeadProxyObject(&value.toObject())) {
+ *foundAny = true;
+ Zone* wrappedZone = static_cast<JSObject*>(e.front().key().wrapped)->zone();
+ if (!wrappedZone->isGCMarking())
+ continue;
+ if (!wrappedZone->gcZoneGroupEdges.put(zone()))
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
void
Zone::findOutgoingEdges(ComponentFinder<JS::Zone>& finder)
{
@@ -4596,7 +4620,7 @@ Zone::findOutgoingEdges(ComponentFinder<JS::Zone>& finder)
}
bool
-GCRuntime::findZoneEdgesForWeakMaps()
+GCRuntime::findInterZoneEdges()
{
/*
* Weakmaps which have keys with delegates in a different zone introduce the
@@ -4613,6 +4637,20 @@ GCRuntime::findZoneEdgesForWeakMaps()
return false;
}
+ for (GCZonesIter zone(rt); !zone.done(); zone.next()) {
+ if (zone->hasDeadProxies) {
+ bool foundInZone = false;
+ for (CompartmentsInZoneIter comp(zone); !comp.done(); comp.next()) {
+ bool foundInCompartment = false;
+ if (!comp->findDeadProxyZoneEdges(&foundInCompartment))
+ return false;
+ foundInZone = foundInZone || foundInCompartment;
+ }
+ if (!foundInZone)
+ zone->hasDeadProxies = false;
+ }
+ }
+
return true;
}
@@ -4625,7 +4663,7 @@ GCRuntime::findZoneGroups()
#endif
ComponentFinder<Zone> finder(rt->mainThread.nativeStackLimit[StackForSystemCode]);
- if (!isIncremental || !findZoneEdgesForWeakMaps())
+ if (!isIncremental || !findInterZoneEdges())
finder.useOneComponent();
for (GCZonesIter zone(rt); !zone.done(); zone.next()) {
@@ -4886,6 +4924,8 @@ js::NotifyGCNukeWrapper(JSObject* obj)
* remember to mark it.
*/
RemoveFromGrayList(obj);
+
+ obj->zone()->hasDeadProxies = true;
}
enum {
@@ -7474,7 +7514,11 @@ JS::IsIncrementalGCInProgress(JSRuntime* rt)
JS_PUBLIC_API(bool)
JS::IsIncrementalBarrierNeeded(JSRuntime* rt)
{
- return rt->gc.state() == gc::MARK && !rt->isHeapBusy();
+ if (rt->isHeapBusy())
+ return false;
+
+ auto state = rt->gc.state();
+ return state != gc::NO_INCREMENTAL && state <= gc::SWEEP;
}
JS_PUBLIC_API(bool)
diff --git a/src/third_party/mozjs-45/get-sources.sh b/src/third_party/mozjs-45/get-sources.sh
index 089a52d2793..f98cd314503 100644
--- a/src/third_party/mozjs-45/get-sources.sh
+++ b/src/third_party/mozjs-45/get-sources.sh
@@ -2,7 +2,7 @@
# how we got the last firefox sources
-VERSION=45.8.0esr
+VERSION=45.9.0esr
TARBALL=firefox-$VERSION.source.tar.xz
if [ ! -f $TARBALL ]; then
wget "https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$VERSION/source/$TARBALL"
diff --git a/src/third_party/mozjs-45/platform/aarch64/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/aarch64/linux/build/js-confdefs.h
index 2b1a51d09f7..4fa58adf915 100644
--- a/src/third_party/mozjs-45/platform/aarch64/linux/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/aarch64/linux/build/js-confdefs.h
@@ -74,10 +74,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/aarch64/linux/include/js-config.h b/src/third_party/mozjs-45/platform/aarch64/linux/include/js-config.h
index e4dcddbe680..14bbe72b530 100644
--- a/src/third_party/mozjs-45/platform/aarch64/linux/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/aarch64/linux/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/ppc64le/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/ppc64le/linux/build/js-confdefs.h
index 2b1a51d09f7..4fa58adf915 100644
--- a/src/third_party/mozjs-45/platform/ppc64le/linux/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/ppc64le/linux/build/js-confdefs.h
@@ -74,10 +74,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/ppc64le/linux/include/js-config.h b/src/third_party/mozjs-45/platform/ppc64le/linux/include/js-config.h
index e4dcddbe680..14bbe72b530 100644
--- a/src/third_party/mozjs-45/platform/ppc64le/linux/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/ppc64le/linux/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/s390x/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/s390x/linux/build/js-confdefs.h
index c94367cff3f..305ca47991a 100644
--- a/src/third_party/mozjs-45/platform/s390x/linux/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/s390x/linux/build/js-confdefs.h
@@ -75,10 +75,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/s390x/linux/include/js-config.h b/src/third_party/mozjs-45/platform/s390x/linux/include/js-config.h
index e4dcddbe680..14bbe72b530 100644
--- a/src/third_party/mozjs-45/platform/s390x/linux/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/s390x/linux/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/freebsd/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/freebsd/build/js-confdefs.h
index c36f3704f05..efac368476f 100644
--- a/src/third_party/mozjs-45/platform/x86_64/freebsd/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/freebsd/build/js-confdefs.h
@@ -69,10 +69,10 @@
#define MALLOC_H <malloc_np.h>
#define MALLOC_USABLE_SIZE_CONST_PTR const
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/freebsd/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/freebsd/include/js-config.h
index dcc2617a294..44ff0abdcb3 100644
--- a/src/third_party/mozjs-45/platform/x86_64/freebsd/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/freebsd/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/linux/build/js-confdefs.h
index 9b3d5f6ca7b..88a222e62db 100644
--- a/src/third_party/mozjs-45/platform/x86_64/linux/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/linux/build/js-confdefs.h
@@ -79,10 +79,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/linux/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/linux/include/js-config.h
index e4dcddbe680..14bbe72b530 100644
--- a/src/third_party/mozjs-45/platform/x86_64/linux/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/linux/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/openbsd/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/openbsd/build/js-confdefs.h
index d4ccca388b9..f5c76afa048 100644
--- a/src/third_party/mozjs-45/platform/x86_64/openbsd/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/openbsd/build/js-confdefs.h
@@ -67,10 +67,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR const
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so.1.0"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/openbsd/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/openbsd/include/js-config.h
index 071a002314c..22839f3e910 100644
--- a/src/third_party/mozjs-45/platform/x86_64/openbsd/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/openbsd/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/osx/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/osx/build/js-confdefs.h
index 48623cf2b8b..6bab49d5c2c 100644
--- a/src/third_party/mozjs-45/platform/x86_64/osx/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/osx/build/js-confdefs.h
@@ -62,10 +62,10 @@
#define MALLOC_H <malloc/malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR const
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".dylib"
#define MOZ_MEMORY 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/osx/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/osx/include/js-config.h
index dcc2617a294..44ff0abdcb3 100644
--- a/src/third_party/mozjs-45/platform/x86_64/osx/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/osx/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/solaris/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/solaris/build/js-confdefs.h
index 24af9ec84b2..25ed3de630b 100644
--- a/src/third_party/mozjs-45/platform/x86_64/solaris/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/solaris/build/js-confdefs.h
@@ -69,10 +69,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR const
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_GLUE_IN_PROGRAM 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/solaris/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/solaris/include/js-config.h
index 8dd55eebb3f..71189026cae 100644
--- a/src/third_party/mozjs-45/platform/x86_64/solaris/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/solaris/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */
diff --git a/src/third_party/mozjs-45/platform/x86_64/windows/build/js-confdefs.h b/src/third_party/mozjs-45/platform/x86_64/windows/build/js-confdefs.h
index 387840310ed..9de9bc97897 100644
--- a/src/third_party/mozjs-45/platform/x86_64/windows/build/js-confdefs.h
+++ b/src/third_party/mozjs-45/platform/x86_64/windows/build/js-confdefs.h
@@ -30,10 +30,10 @@
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR const
#define MOZILLA_UAVERSION "45.0"
-#define MOZILLA_VERSION "45.8.0"
-#define MOZILLA_VERSION_U 45.8.0
+#define MOZILLA_VERSION "45.9.0"
+#define MOZILLA_VERSION_U 45.9.0
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#define MOZ_DEBUG_SYMBOLS 1
#define MOZ_DLL_SUFFIX ".dll"
#define MOZ_MEMORY 1
diff --git a/src/third_party/mozjs-45/platform/x86_64/windows/include/js-config.h b/src/third_party/mozjs-45/platform/x86_64/windows/include/js-config.h
index 1ea25b51001..a885dd4efba 100644
--- a/src/third_party/mozjs-45/platform/x86_64/windows/include/js-config.h
+++ b/src/third_party/mozjs-45/platform/x86_64/windows/include/js-config.h
@@ -54,6 +54,6 @@
/* MOZILLA JSAPI version number components */
#define MOZJS_MAJOR_VERSION 45
-#define MOZJS_MINOR_VERSION 8
+#define MOZJS_MINOR_VERSION 9
#endif /* js_config_h */