Merge inbound to mozilla-central. a=merge
authorarthur.iakab <aiakab@mozilla.com>
Mon, 21 May 2018 00:57:45 +0300
changeset 419058 000309d44abb81084276c9fa977c57aee7126053
parent 419054 d41fee41e38400fab5da0689c1f49e30f80e2d1b (current diff)
parent 419057 513231568d6ee537bafe7576681f36c5dc7b6cf7 (diff)
child 419059 e1eb21be77ba723bba7d5ccd461eb65d074cfc35
child 419118 ad12df88c16e7e65c7f44a1fbe1f1ee6cb17c0a6
push id34024
push useraiakab@mozilla.com
push dateSun, 20 May 2018 21:58:11 +0000
treeherdermozilla-central@000309d44abb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone62.0a1
first release with
nightly linux32
000309d44abb / 62.0a1 / 20180520220103 / files
nightly linux64
000309d44abb / 62.0a1 / 20180520220103 / files
nightly mac
000309d44abb / 62.0a1 / 20180520220103 / files
nightly win32
000309d44abb / 62.0a1 / 20180520220103 / files
nightly win64
000309d44abb / 62.0a1 / 20180520220103 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge inbound to mozilla-central. a=merge
--- a/dom/base/Element.cpp
+++ b/dom/base/Element.cpp
@@ -1666,24 +1666,16 @@ Element::BindToTree(nsIDocument* aDocume
         nsContentUtils::EnqueueLifecycleCallback(nsIDocument::eConnected, this);
       } else {
         // Step 7.7.2.2 https://dom.spec.whatwg.org/#concept-node-insert
         nsContentUtils::TryToUpgradeElement(this);
       }
     }
   }
 
-  // Propagate scoped style sheet tracking bit.
-  if (mParent->IsContent()) {
-    nsIContent* parent = mParent->AsContent();
-    if (ShadowRoot* shadowRootParent = ShadowRoot::FromNode(parent)) {
-      parent = shadowRootParent->GetHost();
-    }
-  }
-
   // This has to be here, rather than in nsGenericHTMLElement::BindToTree,
   //  because it has to happen after updating the parent pointer, but before
   //  recursively binding the kids.
   if (IsHTMLElement()) {
     SetDirOnBind(this, aParent);
   }
 
   uint32_t editableDescendantCount = 0;
--- a/js/src/vm/TypeInference.cpp
+++ b/js/src/vm/TypeInference.cpp
@@ -2976,16 +2976,18 @@ ObjectGroup::markUnknown(const AutoSweep
     for (unsigned i = 0; i < count; i++) {
         Property* prop = getProperty(sweep, i);
         if (prop) {
             prop->types.addType(sweep, cx, TypeSet::UnknownType());
             prop->types.setNonDataProperty(sweep, cx);
         }
     }
 
+    clearProperties(sweep);
+
     if (ObjectGroup* unboxedGroup = maybeOriginalUnboxedGroup())
         MarkObjectGroupUnknownProperties(cx, unboxedGroup);
     if (maybeUnboxedLayout(sweep) && maybeUnboxedLayout(sweep)->nativeGroup())
         MarkObjectGroupUnknownProperties(cx, maybeUnboxedLayout(sweep)->nativeGroup());
     if (ObjectGroup* unboxedGroup = maybeOriginalUnboxedGroup())
         MarkObjectGroupUnknownProperties(cx, unboxedGroup);
 }
 
@@ -4354,16 +4356,21 @@ ConstraintTypeSet::sweep(const AutoSweep
                   MemCheckKind::MakeUndefined);
         constraint = next;
     }
 }
 
 inline void
 ObjectGroup::clearProperties(const AutoSweepObjectGroup& sweep)
 {
+    // We're about to remove edges from the group to property ids. Incremental
+    // GC should know about these edges.
+    if (zone()->needsIncrementalBarrier())
+        traceChildren(zone()->barrierTracer());
+
     setBasePropertyCount(sweep, 0);
     propertySet = nullptr;
 }
 
 static void
 EnsureHasAutoClearTypeInferenceStateOnOOM(AutoClearTypeInferenceStateOnOOM*& oom, Zone* zone,
                                           Maybe<AutoClearTypeInferenceStateOnOOM>& fallback)
 {
--- a/taskcluster/docs/versioncontrol.rst
+++ b/taskcluster/docs/versioncontrol.rst
@@ -16,17 +16,17 @@ perform clones and working directory upd
 the extension is in the
 https://hg.mozilla.org/hgcustom/version-control-tools repository
 at the path ``hgext/robustcheckout/__init__.py``. A copy of the
 extension is vendored at
 ``testing/mozharness/external_tools/robustcheckout.py``.
 
 When upgrading Mercurial, the ``robustcheckout`` extension should also
 be updated to ensure it is compatible with the version of Mercurial
-being upgraded to. Typically, one implies copies the latest version
+being upgraded to. Typically, one simply copies the latest version
 from ``version-control-tools`` into the vendored location.
 
 Debian Packages for Debian Based Docker Images
 ----------------------------------------------
 
 ``taskcluster/ci/packages/kind.yml`` defines custom Debian packages for
 Mercurial. These are installed in various Docker images.