Merge inbound to mozilla-central. a=merge
authorCosmin Sabou <csabou@mozilla.com>
Thu, 17 May 2018 12:46:31 +0300
changeset 418631 8fb36531f7d05c4a7127750589cd1736113d2d53
parent 418576 410d3f74efb560bae54f6a47cd614363d464a748 (current diff)
parent 418630 408383be12633fc4ac61002b8e826b8ac994ae94 (diff)
child 418636 767a4e9688109d9b027acd7962d6b95fb07264f0
child 418685 2a647313f49008f277739cb7fce6209bff235d03
push id34007
push usercsabou@mozilla.com
push dateThu, 17 May 2018 09:47:02 +0000
treeherdermozilla-central@8fb36531f7d0 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone62.0a1
first release with
nightly linux32
8fb36531f7d0 / 62.0a1 / 20180517100441 / files
nightly linux64
8fb36531f7d0 / 62.0a1 / 20180517100441 / files
nightly mac
8fb36531f7d0 / 62.0a1 / 20180517100441 / files
nightly win32
8fb36531f7d0 / 62.0a1 / 20180517100441 / files
nightly win64
8fb36531f7d0 / 62.0a1 / 20180517100441 / 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
devtools/client/debugger/new/test/mochitest/browser_dbg-babel-breakpoint-console.js
devtools/client/debugger/new/test/mochitest/browser_dbg-babel-preview.js
devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js
devtools/client/debugger/new/test/mochitest/browser_dbg-babel-stepping.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/eval-source-maps/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/eval-source-maps/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/eval-source-maps/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/src/mod.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-loops/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-loops/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-loops/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-of/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-of/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-of/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/functions/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/functions/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/functions/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod1.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod10.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod11.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod12.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod2.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod3.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod4.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod5.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod6.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod7.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod8.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/mod9.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/src/optimized-out.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/modules/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/modules/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/modules/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/src/mod.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/shadowed-vars/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/shadowed-vars/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/shadowed-vars/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array-closure/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array-closure/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array-closure/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-closure/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-closure/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-closure/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-function-params/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-function-params/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-function-params/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-regenerator-await/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-regenerator-await/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-regenerator-await/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/switches/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/switches/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/switches/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/try-catches/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/try-catches/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/try-catches/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/ts-classes/input.ts
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/ts-classes/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/ts-classes/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/ts-classes/src/mod.ts
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod1.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod10.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod11.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod12.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod2.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod3.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod4.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod5.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod6.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod7.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod8.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/mod9.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules-es6/src/optimized-out.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod1.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod10.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod11.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod12.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod2.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod3.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod4.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod5.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod6.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod7.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod8.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/mod9.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-modules/src/optimized-out.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-standalone/input.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-standalone/output.js
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-standalone/output.js.map
devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/webpack-standalone/src/mod1.js
devtools/client/debugger/new/test/mochitest/examples/babel/package.json
devtools/client/debugger/new/test/mochitest/examples/babel/polyfill-bundle.js
devtools/client/debugger/new/test/mochitest/examples/babel/tsconfig.json
devtools/client/debugger/new/test/mochitest/examples/babel/webpack.config.js
devtools/client/debugger/new/test/mochitest/examples/doc-babel.html
gfx/src/PingPongRegion.h
testing/web-platform/meta/orientation-sensor/OrientationSensor.https.html.ini
testing/web-platform/tests/orientation-sensor/OrientationSensor.https.html
--- a/accessible/atk/ApplicationAccessibleWrap.cpp
+++ b/accessible/atk/ApplicationAccessibleWrap.cpp
@@ -73,17 +73,17 @@ toplevel_event_watcher(GSignalInvocation
 
     }
   }
 
   return TRUE;
 }
 
 ENameValueFlag
-ApplicationAccessibleWrap::Name(nsString& aName)
+ApplicationAccessibleWrap::Name(nsString& aName) const
 {
   // ATK doesn't provide a way to obtain an application name (for example,
   // Firefox or Thunderbird) like IA2 does. Thus let's return an application
   // name as accessible name that was used to get a branding name (for example,
   // Minefield aka nightly Firefox or Daily aka nightly Thunderbird).
   AppName(aName);
   return eNameOK;
 }
--- a/accessible/atk/ApplicationAccessibleWrap.h
+++ b/accessible/atk/ApplicationAccessibleWrap.h
@@ -14,17 +14,17 @@ namespace a11y {
 
 class ApplicationAccessibleWrap: public ApplicationAccessible
 {
 public:
   ApplicationAccessibleWrap();
   virtual ~ApplicationAccessibleWrap();
 
   // Accessible
-  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) override;
+  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) const override;
   virtual bool InsertChildAt(uint32_t aIdx, Accessible* aChild) override;
   virtual bool RemoveChild(Accessible* aChild) override;
 
   /**
    * Return the atk object for app root accessible.
    */
   virtual void GetNativeInterface(void** aOutAccessible) override;
 };
--- a/accessible/base/AccGroupInfo.cpp
+++ b/accessible/base/AccGroupInfo.cpp
@@ -5,17 +5,17 @@
 #include "AccGroupInfo.h"
 #include "nsAccUtils.h"
 
 #include "Role.h"
 #include "States.h"
 
 using namespace mozilla::a11y;
 
-AccGroupInfo::AccGroupInfo(Accessible* aItem, role aRole) :
+AccGroupInfo::AccGroupInfo(const Accessible* aItem, role aRole) :
   mPosInSet(0), mSetSize(0), mParent(nullptr), mItem(aItem), mRole(aRole)
 {
   MOZ_COUNT_CTOR(AccGroupInfo);
   Update();
 }
 
 void
 AccGroupInfo::Update()
@@ -139,17 +139,17 @@ AccGroupInfo::Update()
   if (mRole == roles::LISTITEM || mRole == roles::OUTLINEITEM) {
     Accessible* grandParent = parent->Parent();
     if (grandParent && grandParent->Role() == mRole)
       mParent = grandParent;
   }
 }
 
 Accessible*
-AccGroupInfo::FirstItemOf(Accessible* aContainer)
+AccGroupInfo::FirstItemOf(const Accessible* aContainer)
 {
   // ARIA tree can be arranged by ARIA groups case #1 (previous sibling of a
   // group is a parent) or by aria-level.
   a11y::role containerRole = aContainer->Role();
   Accessible* item = aContainer->NextSibling();
   if (item) {
     if (containerRole == roles::OUTLINEITEM && item->Role() == roles::GROUPING)
       item = item->FirstChild();
--- a/accessible/base/AccGroupInfo.h
+++ b/accessible/base/AccGroupInfo.h
@@ -37,17 +37,17 @@ public:
   /**
    * Update group information.
    */
   void Update();
 
   /**
    * Create group info.
    */
-  static AccGroupInfo* CreateGroupInfo(Accessible* aAccessible)
+  static AccGroupInfo* CreateGroupInfo(const Accessible* aAccessible)
   {
     mozilla::a11y::role role = aAccessible->Role();
     if (role != mozilla::a11y::roles::ROW &&
         role != mozilla::a11y::roles::OUTLINEITEM &&
         role != mozilla::a11y::roles::OPTION &&
         role != mozilla::a11y::roles::LISTITEM &&
         role != mozilla::a11y::roles::MENUITEM &&
         role != mozilla::a11y::roles::COMBOBOX_OPTION &&
@@ -62,25 +62,25 @@ public:
 
     AccGroupInfo* info = new AccGroupInfo(aAccessible, BaseRole(role));
     return info;
   }
 
   /**
    * Return a first item for the given container.
    */
-  static Accessible* FirstItemOf(Accessible* aContainer);
+  static Accessible* FirstItemOf(const Accessible* aContainer);
 
   /**
    * Return next item of the same group to the given item.
    */
   static Accessible* NextItemTo(Accessible* aItem);
 
 protected:
-  AccGroupInfo(Accessible* aItem, a11y::role aRole);
+  AccGroupInfo(const Accessible* aItem, a11y::role aRole);
 
 private:
   AccGroupInfo() = delete;
   AccGroupInfo(const AccGroupInfo&) = delete;
   AccGroupInfo& operator =(const AccGroupInfo&) = delete;
 
   static mozilla::a11y::role BaseRole(mozilla::a11y::role aRole)
   {
@@ -99,16 +99,16 @@ private:
    * Return true if the given parent and child roles should have their node
    * relations reported.
    */
   static bool ShouldReportRelations(a11y::role aRole, a11y::role aParentRole);
 
   uint32_t mPosInSet;
   uint32_t mSetSize;
   Accessible* mParent;
-  Accessible* mItem;
+  const Accessible* mItem;
   a11y::role mRole;
 };
 
 } // namespace mozilla
 } // namespace a11y
 
 #endif
--- a/accessible/base/AccIterator.h
+++ b/accessible/base/AccIterator.h
@@ -274,28 +274,28 @@ private:
 
 
 /**
  * Used to iterate items of the given item container.
  */
 class ItemIterator : public AccIterable
 {
 public:
-  explicit ItemIterator(Accessible* aItemContainer) :
+  explicit ItemIterator(const Accessible* aItemContainer) :
     mContainer(aItemContainer), mAnchor(nullptr) { }
   virtual ~ItemIterator() { }
 
   virtual Accessible* Next() override;
 
 private:
   ItemIterator() = delete;
   ItemIterator(const ItemIterator&) = delete;
   ItemIterator& operator = (const ItemIterator&) = delete;
 
-  Accessible* mContainer;
+  const Accessible* mContainer;
   Accessible* mAnchor;
 };
 
 
 /**
  * Used to iterate through XUL tree items of the same level.
  */
 class XULTreeItemIterator : public AccIterable
--- a/accessible/base/nsAccUtils.cpp
+++ b/accessible/base/nsAccUtils.cpp
@@ -68,17 +68,17 @@ nsAccUtils::SetAccGroupAttrs(nsIPersiste
 
     value.Truncate();
     value.AppendInt(aSetSize);
     SetAccAttr(aAttributes, nsGkAtoms::setsize, value);
   }
 }
 
 int32_t
-nsAccUtils::GetDefaultLevel(Accessible* aAccessible)
+nsAccUtils::GetDefaultLevel(const Accessible* aAccessible)
 {
   roles::Role role = aAccessible->Role();
 
   if (role == roles::OUTLINEITEM)
     return 1;
 
   if (role == roles::ROW) {
     Accessible* parent = aAccessible->Parent();
@@ -87,17 +87,17 @@ nsAccUtils::GetDefaultLevel(Accessible* 
     if (parent && parent->Role() == roles::TREE_TABLE)
       return 1;
   }
 
   return 0;
 }
 
 int32_t
-nsAccUtils::GetARIAOrDefaultLevel(Accessible* aAccessible)
+nsAccUtils::GetARIAOrDefaultLevel(const Accessible* aAccessible)
 {
   int32_t level = 0;
   nsCoreUtils::GetUIntAttr(aAccessible->GetContent(),
                            nsGkAtoms::aria_level, &level);
 
   if (level != 0)
     return level;
 
--- a/accessible/base/nsAccUtils.h
+++ b/accessible/base/nsAccUtils.h
@@ -60,23 +60,23 @@ public:
    */
   static void SetAccGroupAttrs(nsIPersistentProperties *aAttributes,
                                int32_t aLevel, int32_t aSetSize,
                                int32_t aPosInSet);
 
   /**
    * Get default value of the level for the given accessible.
    */
-  static int32_t GetDefaultLevel(Accessible* aAcc);
+  static int32_t GetDefaultLevel(const Accessible* aAcc);
 
   /**
    * Return ARIA level value or the default one if ARIA is missed for the
    * given accessible.
    */
-  static int32_t GetARIAOrDefaultLevel(Accessible* aAccessible);
+  static int32_t GetARIAOrDefaultLevel(const Accessible* aAccessible);
 
   /**
    * Compute group level for nsIDOMXULContainerItemElement node.
    */
   static int32_t GetLevelForXULContainerItem(nsIContent *aContent);
 
   /**
    * Set container-foo live region attributes for the given node.
--- a/accessible/base/nsTextEquivUtils.cpp
+++ b/accessible/base/nsTextEquivUtils.cpp
@@ -16,23 +16,23 @@
 using namespace mozilla;
 using namespace mozilla::a11y;
 
 /**
  * The accessible for which we are computing a text equivalent. It is useful
  * for bailing out during recursive text computation, or for special cases
  * like step f. of the ARIA implementation guide.
  */
-static Accessible* sInitiatorAcc = nullptr;
+static const Accessible* sInitiatorAcc = nullptr;
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsTextEquivUtils. Public.
 
 nsresult
-nsTextEquivUtils::GetNameFromSubtree(Accessible* aAccessible,
+nsTextEquivUtils::GetNameFromSubtree(const Accessible* aAccessible,
                                      nsAString& aName)
 {
   aName.Truncate();
 
   if (sInitiatorAcc)
     return NS_OK;
 
   sInitiatorAcc = aAccessible;
@@ -48,17 +48,17 @@ nsTextEquivUtils::GetNameFromSubtree(Acc
   }
 
   sInitiatorAcc = nullptr;
 
   return NS_OK;
 }
 
 nsresult
-nsTextEquivUtils::GetTextEquivFromIDRefs(Accessible* aAccessible,
+nsTextEquivUtils::GetTextEquivFromIDRefs(const Accessible* aAccessible,
                                          nsAtom *aIDRefsAttr,
                                          nsAString& aTextEquiv)
 {
   aTextEquiv.Truncate();
 
   nsIContent* content = aAccessible->GetContent();
   if (!content)
     return NS_OK;
@@ -73,17 +73,17 @@ nsTextEquivUtils::GetTextEquivFromIDRefs
                                              &aTextEquiv);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   return NS_OK;
 }
 
 nsresult
-nsTextEquivUtils::AppendTextEquivFromContent(Accessible* aInitiatorAcc,
+nsTextEquivUtils::AppendTextEquivFromContent(const Accessible* aInitiatorAcc,
                                              nsIContent *aContent,
                                              nsAString *aString)
 {
   // Prevent recursion which can cause infinite loops.
   if (sInitiatorAcc)
     return NS_OK;
 
   sInitiatorAcc = aInitiatorAcc;
@@ -165,17 +165,17 @@ nsTextEquivUtils::AppendTextEquivFromTex
 
   return NS_OK_NO_NAME_CLAUSE_HANDLED;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsTextEquivUtils. Private.
 
 nsresult
-nsTextEquivUtils::AppendFromAccessibleChildren(Accessible* aAccessible,
+nsTextEquivUtils::AppendFromAccessibleChildren(const Accessible* aAccessible,
                                                nsAString *aString)
 {
   nsresult rv = NS_OK_NO_NAME_CLAUSE_HANDLED;
 
   uint32_t childCount = aAccessible->ChildCount();
   for (uint32_t childIdx = 0; childIdx < childCount; childIdx++) {
     Accessible* child = aAccessible->GetChildAt(childIdx);
     rv = AppendFromAccessible(child, aString);
--- a/accessible/base/nsTextEquivUtils.h
+++ b/accessible/base/nsTextEquivUtils.h
@@ -56,56 +56,56 @@ public:
   }
 
   /**
    * Calculates the name from accessible subtree if allowed.
    *
    * @param aAccessible [in] the given accessible
    * @param aName       [out] accessible name
    */
-  static nsresult GetNameFromSubtree(Accessible* aAccessible,
+  static nsresult GetNameFromSubtree(const Accessible* aAccessible,
                                      nsAString& aName);
 
   /**
    * Calculates text equivalent from the subtree. Similar to GetNameFromSubtree.
    * However it returns not empty result for things like HTML p.
    */
-  static void GetTextEquivFromSubtree(Accessible* aAccessible,
+  static void GetTextEquivFromSubtree(const Accessible* aAccessible,
                                       nsString& aTextEquiv)
   {
     aTextEquiv.Truncate();
 
     AppendFromAccessibleChildren(aAccessible, &aTextEquiv);
     aTextEquiv.CompressWhitespace();
   }
 
   /**
    * Calculates text equivalent for the given accessible from its IDRefs
    * attribute (like aria-labelledby or aria-describedby).
    *
    * @param aAccessible  [in] the accessible text equivalent is computed for
    * @param aIDRefsAttr  [in] IDRefs attribute on DOM node of the accessible
    * @param aTextEquiv   [out] result text equivalent
    */
-  static nsresult GetTextEquivFromIDRefs(Accessible* aAccessible,
+  static nsresult GetTextEquivFromIDRefs(const Accessible* aAccessible,
                                          nsAtom *aIDRefsAttr,
                                          nsAString& aTextEquiv);
 
   /**
    * Calculates the text equivalent from the given content and its subtree if
    * allowed and appends it to the given string.
    *
    * @param aInitiatorAcc  [in] the accessible text equivalent is computed for
    *                       in the end (root accessible of text equivalent
    *                       calculation recursion)
    * @param aContent       [in] the given content the text equivalent is
    *                       computed from
    * @param aString        [in, out] the string
    */
-  static nsresult AppendTextEquivFromContent(Accessible* aInitiatorAcc,
+  static nsresult AppendTextEquivFromContent(const Accessible* aInitiatorAcc,
                                              nsIContent *aContent,
                                              nsAString *aString);
 
   /**
    * Calculates the text equivalent from the given text content (may be text
    * node or html:br) and appends it to the given string.
    *
    * @param aContent       [in] the text content
@@ -114,17 +114,17 @@ public:
   static nsresult AppendTextEquivFromTextContent(nsIContent *aContent,
                                                  nsAString *aString);
 
 private:
   /**
    * Iterates accessible children and calculates text equivalent from each
    * child.
    */
-  static nsresult AppendFromAccessibleChildren(Accessible* aAccessible,
+  static nsresult AppendFromAccessibleChildren(const Accessible* aAccessible,
                                                nsAString *aString);
 
   /**
    * Calculates text equivalent from the given accessible and its subtree if
    * allowed.
    */
   static nsresult AppendFromAccessible(Accessible* aAccessible,
                                        nsAString *aString);
--- a/accessible/generic/Accessible-inl.h
+++ b/accessible/generic/Accessible-inl.h
@@ -14,17 +14,17 @@
 #ifdef A11Y_LOG
 #include "Logging.h"
 #endif
 
 namespace mozilla {
 namespace a11y {
 
 inline mozilla::a11y::role
-Accessible::Role()
+Accessible::Role() const
 {
   const nsRoleMapEntry* roleMapEntry = ARIARoleMap();
   if (!roleMapEntry || roleMapEntry->roleRule != kUseMapRole)
     return ARIATransformRole(NativeRole());
 
   return ARIATransformRole(roleMapEntry->role);
 }
 
--- a/accessible/generic/Accessible.cpp
+++ b/accessible/generic/Accessible.cpp
@@ -119,17 +119,17 @@ Accessible::Accessible(nsIContent* aCont
 }
 
 Accessible::~Accessible()
 {
   NS_ASSERTION(!mDoc, "LastRelease was never called!?!");
 }
 
 ENameValueFlag
-Accessible::Name(nsString& aName)
+Accessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   if (!HasOwnContent())
     return eNameOK;
 
   ARIAName(aName);
   if (!aName.IsEmpty())
@@ -402,17 +402,17 @@ Accessible::VisibilityState() const
       return states::INVISIBLE;
     }
   }
 
   return 0;
 }
 
 uint64_t
-Accessible::NativeState()
+Accessible::NativeState() const
 {
   uint64_t state = 0;
 
   if (!IsInDocument())
     state |= states::STALE;
 
   if (HasOwnContent() && mContent->IsElement()) {
     EventStates elementState = mContent->AsElement()->State();
@@ -742,17 +742,17 @@ Accessible::TakeSelection()
   if (select) {
     if (select->State() & states::MULTISELECTABLE)
       select->UnselectAll();
     SetSelected(true);
   }
 }
 
 void
-Accessible::TakeFocus()
+Accessible::TakeFocus() const
 {
   nsIFrame* frame = GetFrame();
   if (!frame)
     return;
 
   nsIContent* focusContent = mContent;
 
   // If the accessible focus is managed by container widget then focus the
@@ -1338,17 +1338,17 @@ Accessible::ApplyARIAState(uint64_t* aSt
         grid->ApplyARIAState(&gridState);
         *aState |= (gridState & (states::READONLY | states::EDITABLE));
       }
     }
   }
 }
 
 void
-Accessible::Value(nsString& aValue)
+Accessible::Value(nsString& aValue) const
 {
   const nsRoleMapEntry* roleMapEntry = ARIARoleMap();
   if (!roleMapEntry)
     return;
 
   if (roleMapEntry->valueRule != eNoValue) {
     // aria-valuenow is a number, and aria-valuetext is the optional text
     // equivalent. For the string value, we will try the optional text
@@ -1440,17 +1440,17 @@ Accessible::SetCurValue(double aValue)
     return true;
 
   return NS_SUCCEEDED(
     mContent->AsElement()->SetAttr(kNameSpaceID_None, nsGkAtoms::aria_valuenow,
                                    strValue, true));
 }
 
 role
-Accessible::ARIATransformRole(role aRole)
+Accessible::ARIATransformRole(role aRole) const
 {
   // Beginning with ARIA 1.1, user agents are expected to use the native host
   // language role of the element when the region role is used without a name.
   // https://rawgit.com/w3c/aria/master/core-aam/core-aam.html#role-map-region
   //
   // XXX: While the name computation algorithm can be non-trivial in the general
   // case, it should not be especially bad here: If the author hasn't used the
   // region role, this calculation won't occur. And the region role's name
@@ -1521,17 +1521,17 @@ Accessible::LandmarkRole() const
 
 role
 Accessible::NativeRole() const
 {
   return roles::NOTHING;
 }
 
 uint8_t
-Accessible::ActionCount()
+Accessible::ActionCount() const
 {
   return GetActionRule() == eNoAction ? 0 : 1;
 }
 
 void
 Accessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
@@ -1594,17 +1594,17 @@ Accessible::ActionNameAt(uint8_t aIndex,
        aName.AssignLiteral("expand");
      else
        aName.AssignLiteral("collapse");
      return;
   }
 }
 
 bool
-Accessible::DoAction(uint8_t aIndex)
+Accessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   if (GetActionRule() != eNoAction) {
     DoCommand();
     return true;
   }
@@ -1622,17 +1622,17 @@ Accessible::GetAtomicRegion() const
           !loopContent->AsElement()->GetAttr(kNameSpaceID_None,
                                              nsGkAtoms::aria_atomic, atomic)))
     loopContent = loopContent->GetParent();
 
   return atomic.EqualsLiteral("true") ? loopContent : nullptr;
 }
 
 Relation
-Accessible::RelationByType(RelationType aType)
+Accessible::RelationByType(RelationType aType) const
 {
   if (!HasOwnContent())
     return Relation();
 
   const nsRoleMapEntry* roleMapEntry = ARIARoleMap();
 
   // Relationships are defined on the same content node that the role would be
   // defined on.
@@ -1995,17 +1995,17 @@ Accessible::Shutdown()
   mContent = nullptr;
   mDoc = nullptr;
   if (SelectionMgr() && SelectionMgr()->AccessibleWithCaret(nullptr) == this)
     SelectionMgr()->ResetCaretOffset();
 }
 
 // Accessible protected
 void
-Accessible::ARIAName(nsString& aName)
+Accessible::ARIAName(nsString& aName) const
 {
   // aria-labelledby now takes precedence over aria-label
   nsresult rv = nsTextEquivUtils::
     GetTextEquivFromIDRefs(this, nsGkAtoms::aria_labelledby, aName);
   if (NS_SUCCEEDED(rv)) {
     aName.CompressWhitespace();
   }
 
@@ -2014,17 +2014,17 @@ Accessible::ARIAName(nsString& aName)
       mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::aria_label,
                                      aName)) {
     aName.CompressWhitespace();
   }
 }
 
 // Accessible protected
 ENameValueFlag
-Accessible::NativeName(nsString& aName)
+Accessible::NativeName(nsString& aName) const
 {
   if (mContent->IsHTMLElement()) {
     Accessible* label = nullptr;
     HTMLLabelIterator iter(Document(), this);
     while ((label = iter.Next())) {
       nsTextEquivUtils::AppendTextEquivFromContent(this, label->GetContent(),
                                                    &aName);
       aName.CompressWhitespace();
@@ -2391,17 +2391,17 @@ Accessible::AnchorCount()
 Accessible*
 Accessible::AnchorAt(uint32_t aAnchorIndex)
 {
   MOZ_ASSERT(IsLink(), "GetAnchor is called on not hyper link!");
   return aAnchorIndex == 0 ? this : nullptr;
 }
 
 already_AddRefed<nsIURI>
-Accessible::AnchorURIAt(uint32_t aAnchorIndex)
+Accessible::AnchorURIAt(uint32_t aAnchorIndex) const
 {
   MOZ_ASSERT(IsLink(), "AnchorURIAt is called on not hyper link!");
   return nullptr;
 }
 
 void
 Accessible::ToTextPoint(HyperTextAccessible** aContainer, int32_t* aOffset,
                         bool aIsBefore) const
@@ -2728,17 +2728,17 @@ Accessible::GetActionRule() const
   if (nsAccUtils::HasDefinedARIAToken(mContent,
                                       nsGkAtoms::aria_expanded))
     return eExpandAction;
 
   return eNoAction;
 }
 
 AccGroupInfo*
-Accessible::GetGroupInfo()
+Accessible::GetGroupInfo() const
 {
   if (IsProxy())
     MOZ_CRASH("This should never be called on proxy wrappers");
 
   if (mBits.groupInfo){
     if (HasDirtyGroupInfo()) {
       mBits.groupInfo->Update();
       mStateFlags &= ~eGroupInfoDirty;
--- a/accessible/generic/Accessible.h
+++ b/accessible/generic/Accessible.h
@@ -190,44 +190,44 @@ public:
   /**
    * Get the description of this accessible.
    */
   virtual void Description(nsString& aDescription);
 
   /**
    * Get the value of this accessible.
    */
-  virtual void Value(nsString& aValue);
+  virtual void Value(nsString& aValue) const;
 
   /**
    * Get help string for the accessible.
    */
   void Help(nsString& aHelp) const { aHelp.Truncate(); }
 
   /**
    * Get the name of this accessible.
    *
    * Note: aName.IsVoid() when name was left empty by the author on purpose.
    * aName.IsEmpty() when the author missed name, AT can try to repair a name.
    */
-  virtual ENameValueFlag Name(nsString& aName);
+  virtual ENameValueFlag Name(nsString& aName) const;
 
   /**
    * Maps ARIA state attributes to state of accessible. Note the given state
    * argument should hold states for accessible before you pass it into this
    * method.
    *
    * @param  [in/out] where to fill the states into.
    */
   virtual void ApplyARIAState(uint64_t* aState) const;
 
   /**
    * Return enumerated accessible role (see constants in Role.h).
    */
-  mozilla::a11y::role Role();
+  mozilla::a11y::role Role() const;
 
   /**
    * Return true if ARIA role is specified on the element.
    */
   bool HasARIARole() const;
   bool IsARIARole(nsAtom* aARIARole) const;
   bool HasStrongARIARole() const;
 
@@ -288,17 +288,17 @@ public:
     ApplyARIAState(&state);
     return state & states::UNAVAILABLE;
   }
 
   /**
    * Return the states of accessible, not taking into account ARIA states.
    * Use State() to get complete set of states.
    */
-  virtual uint64_t NativeState();
+  virtual uint64_t NativeState() const;
 
   /**
    * Return native interactice state (unavailable, focusable or selectable).
    */
   virtual uint64_t NativeInteractiveState() const;
 
   /**
    * Return native link states present on the accessible.
@@ -362,17 +362,17 @@ public:
    * @param  aSetSize   [out] the group size
    */
   virtual void GetPositionAndSizeInternal(int32_t *aPosInSet,
                                           int32_t *aSetSize);
 
   /**
    * Get the relation of the given type.
    */
-  virtual Relation RelationByType(RelationType aType);
+  virtual Relation RelationByType(RelationType aType) const;
 
   //////////////////////////////////////////////////////////////////////////////
   // Initializing methods
 
   /**
    * Shutdown this accessible object.
    */
   virtual void Shutdown();
@@ -537,17 +537,17 @@ public:
   /**
    * Select the accessible within its container.
    */
   void TakeSelection();
 
   /**
    * Focus the accessible.
    */
-  virtual void TakeFocus();
+  virtual void TakeFocus() const;
 
   /**
    * Scroll the accessible into view.
    */
   void ScrollTo(uint32_t aHow) const;
 
   /**
    * Scroll the accessible to the given point.
@@ -681,17 +681,17 @@ public:
   bool HasGenericType(AccGenericType aType) const;
 
   //////////////////////////////////////////////////////////////////////////////
   // ActionAccessible
 
   /**
    * Return the number of actions that can be performed on this accessible.
    */
-  virtual uint8_t ActionCount();
+  virtual uint8_t ActionCount() const;
 
   /**
    * Return action name at given index.
    */
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName);
 
   /**
    * Default to localized action name.
@@ -701,17 +701,17 @@ public:
     nsAutoString name;
     ActionNameAt(aIndex, name);
     TranslateString(name, aDescription);
   }
 
   /**
    * Invoke the accessible action.
    */
-  virtual bool DoAction(uint8_t aIndex);
+  virtual bool DoAction(uint8_t aIndex) const;
 
   /**
    * Return access key, such as Alt+D.
    */
   virtual KeyBinding AccessKey() const;
 
   /**
    * Return global keyboard shortcut for default action, such as Ctrl+O for
@@ -760,17 +760,17 @@ public:
   /**
    * Returns an anchor accessible at the given index.
    */
   virtual Accessible* AnchorAt(uint32_t aAnchorIndex);
 
   /**
    * Returns an anchor URI at the given index.
    */
-  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex);
+  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) const;
 
   /**
    * Returns a text point for the accessible element.
    */
   void ToTextPoint(HyperTextAccessible** aContainer, int32_t* aOffset,
                    bool aIsBefore = true) const;
 
   //////////////////////////////////////////////////////////////////////////////
@@ -984,17 +984,17 @@ public:
 
 protected:
   virtual ~Accessible();
 
   /**
    * Return the accessible name provided by native markup. It doesn't take
    * into account ARIA markup used to specify the name.
    */
-  virtual mozilla::a11y::ENameValueFlag NativeName(nsString& aName);
+  virtual mozilla::a11y::ENameValueFlag NativeName(nsString& aName) const;
 
   /**
    * Return the accessible description provided by native markup. It doesn't take
    * into account ARIA markup used to specify the description.
    */
   virtual void NativeDescription(nsString& aDescription);
 
   /**
@@ -1057,25 +1057,25 @@ protected:
 protected:
 
   //////////////////////////////////////////////////////////////////////////////
   // Miscellaneous helpers
 
   /**
    * Return ARIA role (helper method).
    */
-  mozilla::a11y::role ARIATransformRole(mozilla::a11y::role aRole);
+  mozilla::a11y::role ARIATransformRole(mozilla::a11y::role aRole) const;
 
   //////////////////////////////////////////////////////////////////////////////
   // Name helpers
 
   /**
    * Returns the accessible name specified by ARIA.
    */
-  void ARIAName(nsString& aName);
+  void ARIAName(nsString& aName) const;
 
   /**
    * Return the name for XUL element.
    */
   static void XULElmName(DocAccessible* aDocument,
                          nsIContent* aElm, nsString& aName);
 
   // helper method to verify frames
@@ -1126,17 +1126,17 @@ protected:
    * Return the action rule based on ARIA enum constants EActionRule
    * (see ARIAMap.h). Used by ActionCount() and ActionNameAt().
    */
   uint32_t GetActionRule() const;
 
   /**
    * Return group info.
    */
-  AccGroupInfo* GetGroupInfo();
+  AccGroupInfo* GetGroupInfo() const;
 
   // Data Members
   nsCOMPtr<nsIContent> mContent;
   RefPtr<DocAccessible> mDoc;
 
   Accessible* mParent;
   nsTArray<Accessible*> mChildren;
   int32_t mIndexInParent;
@@ -1150,17 +1150,17 @@ protected:
    * Non-NO_ROLE_MAP_ENTRY_INDEX indicates author-supplied role;
    * possibly state & value as well
    */
   uint8_t mRoleMapEntryIndex;
 
   /**
    * Keep in sync with StateFlags, ContextFlags, and AccTypes.
    */
-  uint32_t mStateFlags : kStateFlagsBits;
+  mutable uint32_t mStateFlags : kStateFlagsBits;
   uint32_t mContextFlags : kContextFlagsBits;
   uint32_t mType : kTypeBits;
   uint32_t mGenericTypes : kGenericTypesBits;
   uint32_t mReorderEventTarget : 1;
   uint32_t mShowEventTarget : 1;
   uint32_t mHideEventTarget : 1;
 
   void StaticAsserts() const;
@@ -1182,17 +1182,17 @@ protected:
   } mInt;
 
   friend class EmbeddedObjCollector;
 
   union
   {
     AccGroupInfo* groupInfo;
     ProxyAccessible* proxy;
-  } mBits;
+  } mutable mBits;
   friend class AccGroupInfo;
 
 private:
   Accessible() = delete;
   Accessible(const Accessible&) = delete;
   Accessible& operator =(const Accessible&) = delete;
 
 };
--- a/accessible/generic/ApplicationAccessible.cpp
+++ b/accessible/generic/ApplicationAccessible.cpp
@@ -29,17 +29,17 @@ ApplicationAccessible::ApplicationAccess
   mAppInfo = do_GetService("@mozilla.org/xre/app-info;1");
   MOZ_ASSERT(mAppInfo, "no application info");
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIAccessible
 
 ENameValueFlag
-ApplicationAccessible::Name(nsString& aName)
+ApplicationAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   nsCOMPtr<nsIStringBundleService> bundleService =
     mozilla::services::GetStringBundleService();
 
   NS_ASSERTION(bundleService, "String bundle service must be present!");
   if (!bundleService)
@@ -64,17 +64,17 @@ ApplicationAccessible::Name(nsString& aN
 
 void
 ApplicationAccessible::Description(nsString& aDescription)
 {
   aDescription.Truncate();
 }
 
 void
-ApplicationAccessible::Value(nsString& aValue)
+ApplicationAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 }
 
 uint64_t
 ApplicationAccessible::State()
 {
   return IsDefunct() ? states::DEFUNCT : 0;
@@ -105,17 +105,17 @@ ApplicationAccessible::FocusedChild()
   Accessible* focus = FocusMgr()->FocusedAccessible();
   if (focus && focus->Parent() == this)
     return focus;
 
   return nullptr;
 }
 
 Relation
-ApplicationAccessible::RelationByType(RelationType aRelationType)
+ApplicationAccessible::RelationByType(RelationType aRelationType) const
 {
   return Relation();
 }
 
 nsIntRect
 ApplicationAccessible::Bounds() const
 {
   return nsIntRect();
@@ -143,17 +143,17 @@ ApplicationAccessible::ApplyARIAState(ui
 
 role
 ApplicationAccessible::NativeRole() const
 {
   return roles::APP_ROOT;
 }
 
 uint64_t
-ApplicationAccessible::NativeState()
+ApplicationAccessible::NativeState() const
 {
   return 0;
 }
 
 KeyBinding
 ApplicationAccessible::AccessKey() const
 {
   return KeyBinding();
--- a/accessible/generic/ApplicationAccessible.h
+++ b/accessible/generic/ApplicationAccessible.h
@@ -35,24 +35,24 @@ public:
   NS_INLINE_DECL_REFCOUNTING_INHERITED(ApplicationAccessible, AccessibleWrap)
 
   // Accessible
   virtual void Shutdown() override;
   virtual nsIntRect Bounds() const override;
   virtual nsRect BoundsInAppUnits() const override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
   virtual GroupPos GroupPosition() override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
   virtual void ApplyARIAState(uint64_t* aState) const override;
   virtual void Description(nsString& aDescription) override;
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual mozilla::a11y::role NativeRole() const override;
   virtual uint64_t State() override;
-  virtual uint64_t NativeState() override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual uint64_t NativeState() const override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   virtual Accessible* ChildAtPoint(int32_t aX, int32_t aY,
                                    EWhichChildAtPoint aWhichChild) override;
   virtual Accessible* FocusedChild() override;
 
   // ActionAccessible
   virtual KeyBinding AccessKey() const override;
 
--- a/accessible/generic/BaseAccessibles.cpp
+++ b/accessible/generic/BaseAccessibles.cpp
@@ -63,66 +63,65 @@ LeafAccessible::IsAcceptableChild(nsICon
 ////////////////////////////////////////////////////////////////////////////////
 // LinkableAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 ////////////////////////////////////////////////////////////////////////////////
 // LinkableAccessible. nsIAccessible
 
 void
-LinkableAccessible::TakeFocus()
+LinkableAccessible::TakeFocus() const
 {
-  if (Accessible* actionAcc = ActionWalk()) {
+  if (const Accessible* actionAcc = ActionWalk()) {
     actionAcc->TakeFocus();
   } else {
     AccessibleWrap::TakeFocus();
   }
 }
 
 uint64_t
 LinkableAccessible::NativeLinkState() const
 {
   bool isLink;
-  Accessible* actionAcc =
-    const_cast<LinkableAccessible*>(this)->ActionWalk(&isLink);
+  const Accessible* actionAcc = ActionWalk(&isLink);
   if (isLink) {
     return states::LINKED | (actionAcc->LinkState() & states::TRAVERSED);
   }
 
   return 0;
 }
 
 void
-LinkableAccessible::Value(nsString& aValue)
+LinkableAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   Accessible::Value(aValue);
   if (!aValue.IsEmpty()) {
     return;
   }
 
   bool isLink;
-  Accessible* actionAcc = ActionWalk(&isLink);
+  const Accessible* actionAcc = ActionWalk(&isLink);
   if (isLink) {
     actionAcc->Value(aValue);
   }
 }
 
 uint8_t
-LinkableAccessible::ActionCount()
+LinkableAccessible::ActionCount() const
 {
   bool isLink, isOnclick, isLabelWithControl;
   ActionWalk(&isLink, &isOnclick, &isLabelWithControl);
   return (isLink || isOnclick || isLabelWithControl) ? 1 : 0;
 }
 
-Accessible*
+const Accessible*
 LinkableAccessible::ActionWalk(bool* aIsLink, bool* aIsOnclick,
-                               bool* aIsLabelWithControl)
+                               bool* aIsLabelWithControl) const
 {
   if (aIsOnclick) {
     *aIsOnclick = false;
   }
   if (aIsLink) {
     *aIsLink = false;
   }
   if (aIsLabelWithControl) {
@@ -134,17 +133,17 @@ LinkableAccessible::ActionWalk(bool* aIs
       *aIsOnclick = true;
     }
     return nullptr;
   }
 
   // XXX: The logic looks broken since the click listener may be registered
   // on non accessible node in parent chain but this node is skipped when tree
   // is traversed.
-  Accessible* walkUpAcc = this;
+  const Accessible* walkUpAcc = this;
   while ((walkUpAcc = walkUpAcc->Parent()) && !walkUpAcc->IsDoc()) {
     if (walkUpAcc->LinkState() & states::LINKED) {
       if (aIsLink) {
         *aIsLink = true;
       }
       return walkUpAcc;
     }
 
@@ -178,23 +177,23 @@ LinkableAccessible::ActionNameAt(uint8_t
       aName.AssignLiteral("jump");
     } else if (isOnclick || isLabelWithControl) {
       aName.AssignLiteral("click");
     }
   }
 }
 
 bool
-LinkableAccessible::DoAction(uint8_t aIndex)
+LinkableAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Jump) {
     return false;
   }
 
-  if (Accessible* actionAcc = ActionWalk()) {
+  if (const Accessible* actionAcc = ActionWalk()) {
     return actionAcc->DoAction(aIndex);
   }
 
   return AccessibleWrap::DoAction(aIndex);
 }
 
 KeyBinding
 LinkableAccessible::AccessKey() const
@@ -206,20 +205,20 @@ LinkableAccessible::AccessKey() const
 
   return Accessible::AccessKey();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // LinkableAccessible: HyperLinkAccessible
 
 already_AddRefed<nsIURI>
-LinkableAccessible::AnchorURIAt(uint32_t aAnchorIndex)
+LinkableAccessible::AnchorURIAt(uint32_t aAnchorIndex) const
 {
   bool isLink;
-  Accessible* actionAcc = ActionWalk(&isLink);
+  const Accessible* actionAcc = ActionWalk(&isLink);
   if (isLink) {
     NS_ASSERTION(actionAcc->IsLink(), "HyperLink isn't implemented.");
 
     if (actionAcc->IsLink()) {
       return actionAcc->AnchorURIAt(aAnchorIndex);
     }
   }
 
@@ -227,17 +226,17 @@ LinkableAccessible::AnchorURIAt(uint32_t
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // DummyAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 uint64_t
-DummyAccessible::NativeState()
+DummyAccessible::NativeState() const
 {
   return 0;
 }
 uint64_t
 DummyAccessible::NativeInteractiveState() const
 {
   return 0;
 }
--- a/accessible/generic/BaseAccessibles.h
+++ b/accessible/generic/BaseAccessibles.h
@@ -58,32 +58,32 @@ public:
   LinkableAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     AccessibleWrap(aContent, aDoc)
   {
   }
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(LinkableAccessible, AccessibleWrap)
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual uint64_t NativeLinkState() const override;
-  virtual void TakeFocus() override;
+  virtual void TakeFocus() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t index) override;
+  virtual bool DoAction(uint8_t index) const override;
   virtual KeyBinding AccessKey() const override;
 
   // ActionAccessible helpers
-  Accessible* ActionWalk(bool* aIsLink = nullptr,
-                         bool* aIsOnclick = nullptr,
-                         bool* aIsLabelWithControl = nullptr);
+  const Accessible* ActionWalk(bool* aIsLink = nullptr,
+                               bool* aIsOnclick = nullptr,
+                               bool* aIsLabelWithControl = nullptr) const;
   // HyperLinkAccessible
-  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
+  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) const override;
 
 protected:
   virtual ~LinkableAccessible() {}
 
 };
 
 /**
  * A simple accessible that gets its enumerated role.
@@ -111,17 +111,17 @@ protected:
  * crossplatform accessible tree.
  */
 class DummyAccessible : public AccessibleWrap
 {
 public:
   explicit DummyAccessible(DocAccessible* aDocument = nullptr) :
     AccessibleWrap(nullptr, aDocument) { }
 
-  uint64_t NativeState() final;
+  uint64_t NativeState() const final;
   uint64_t NativeInteractiveState() const final;
   uint64_t NativeLinkState() const final;
   bool NativelyUnavailable() const final;
   void ApplyARIAState(uint64_t* aState) const final;
 
 protected:
   virtual ~DummyAccessible() { }
 };
--- a/accessible/generic/DocAccessible.cpp
+++ b/accessible/generic/DocAccessible.cpp
@@ -165,17 +165,17 @@ NS_INTERFACE_MAP_END_INHERITING(HyperTex
 
 NS_IMPL_ADDREF_INHERITED(DocAccessible, HyperTextAccessible)
 NS_IMPL_RELEASE_INHERITED(DocAccessible, HyperTextAccessible)
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsIAccessible
 
 ENameValueFlag
-DocAccessible::Name(nsString& aName)
+DocAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   if (mParent) {
     mParent->Name(aName); // Allow owning iframe to override the name
   }
   if (aName.IsEmpty()) {
     // Allow name via aria-labelledby or title attribute
@@ -231,17 +231,17 @@ DocAccessible::Description(nsString& aDe
     nsTextEquivUtils::
       GetTextEquivFromIDRefs(this, nsGkAtoms::aria_describedby,
                              aDescription);
   }
 }
 
 // Accessible public method
 uint64_t
-DocAccessible::NativeState()
+DocAccessible::NativeState() const
 {
   // Document is always focusable.
   uint64_t state = states::FOCUSABLE; // keep in sync with NativeInteractiveState() impl
   if (FocusMgr()->IsFocused(this))
     state |= states::FOCUSED;
 
   // Expose stale state until the document is ready (DOM is loaded and tree is
   // constructed).
@@ -315,17 +315,17 @@ Accessible*
 DocAccessible::FocusedChild()
 {
   // Return an accessible for the current global focus, which does not have to
   // be contained within the current document.
   return FocusMgr()->FocusedAccessible();
 }
 
 void
-DocAccessible::TakeFocus()
+DocAccessible::TakeFocus() const
 {
   // Focus the document.
   nsFocusManager* fm = nsFocusManager::GetFocusManager();
   RefPtr<dom::Element> newFocus;
   AutoHandlingUserInputStatePusher inputStatePusher(true, nullptr, mDocumentNode);
   fm->MoveFocus(mDocumentNode->GetWindow(), nullptr,
                 nsFocusManager::MOVEFOCUS_ROOT, 0, getter_AddRefs(newFocus));
 }
--- a/accessible/generic/DocAccessible.h
+++ b/accessible/generic/DocAccessible.h
@@ -64,27 +64,27 @@ public:
 
   // Accessible
   virtual void Init();
   virtual void Shutdown() override;
   virtual nsIFrame* GetFrame() const override;
   virtual nsINode* GetNode() const override { return mDocumentNode; }
   nsIDocument* DocumentNode() const { return mDocumentNode; }
 
-  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) override;
+  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) const override;
   virtual void Description(nsString& aDescription) override;
   virtual Accessible* FocusedChild() override;
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual bool NativelyUnavailable() const override;
   virtual void ApplyARIAState(uint64_t* aState) const override;
   virtual already_AddRefed<nsIPersistentProperties> Attributes() override;
 
-  virtual void TakeFocus() override;
+  virtual void TakeFocus() const override;
 
 #ifdef A11Y_LOG
   virtual nsresult HandleAccEvent(AccEvent* aEvent) override;
 #endif
 
   virtual nsRect RelativeBounds(nsIFrame** aRelativeFrame) const override;
 
   // HyperTextAccessible
--- a/accessible/generic/FormControlAccessible.cpp
+++ b/accessible/generic/FormControlAccessible.cpp
@@ -27,17 +27,17 @@ template<int Max>
 role
 ProgressMeterAccessible<Max>::NativeRole() const
 {
   return roles::PROGRESSBAR;
 }
 
 template<int Max>
 uint64_t
-ProgressMeterAccessible<Max>::NativeState()
+ProgressMeterAccessible<Max>::NativeState() const
 {
   uint64_t state = LeafAccessible::NativeState();
 
   // An undetermined progressbar (i.e. without a value) has a mixed state.
   nsAutoString attrValue;
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::value, attrValue);
 
   if (attrValue.IsEmpty())
@@ -56,17 +56,17 @@ ProgressMeterAccessible<Max>::IsWidget()
   return true;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // ProgressMeterAccessible<Max>: Value
 
 template<int Max>
 void
-ProgressMeterAccessible<Max>::Value(nsString& aValue)
+ProgressMeterAccessible<Max>::Value(nsString& aValue) const
 {
   LeafAccessible::Value(aValue);
   if (!aValue.IsEmpty())
     return;
 
   double maxValue = MaxValue();
   if (IsNaN(maxValue) || maxValue == 0)
     return;
@@ -148,30 +148,30 @@ ProgressMeterAccessible<Max>::SetCurValu
 
 RadioButtonAccessible::
   RadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   LeafAccessible(aContent, aDoc)
 {
 }
 
 uint8_t
-RadioButtonAccessible::ActionCount()
+RadioButtonAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 RadioButtonAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("select");
 }
 
 bool
-RadioButtonAccessible::DoAction(uint8_t aIndex)
+RadioButtonAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
--- a/accessible/generic/FormControlAccessible.h
+++ b/accessible/generic/FormControlAccessible.h
@@ -23,19 +23,19 @@ public:
   {
     // Ignore 'ValueChange' DOM event in lieu of @value attribute change
     // notifications.
     mStateFlags |= eHasNumericValue | eIgnoreDOMUIEvent;
     mType = eProgressType;
   }
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // Value
   virtual double MaxValue() const override;
   virtual double MinValue() const override;
   virtual double CurValue() const override;
   virtual double Step() const override;
   virtual bool SetCurValue(double aValue) override;
 
@@ -54,19 +54,19 @@ class RadioButtonAccessible : public Lea
 
 public:
   RadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   enum { eAction_Click = 0 };
 
   // Widgets
   virtual bool IsWidget() const override;
 };
 
 } // namespace a11y
--- a/accessible/generic/HyperTextAccessible.cpp
+++ b/accessible/generic/HyperTextAccessible.cpp
@@ -66,17 +66,17 @@ HyperTextAccessible::NativeRole() const
   nsIFrame* frame = GetFrame();
   if (frame && frame->IsInlineFrame())
     return roles::TEXT;
 
   return roles::TEXT_CONTAINER;
 }
 
 uint64_t
-HyperTextAccessible::NativeState()
+HyperTextAccessible::NativeState() const
 {
   uint64_t states = AccessibleWrap::NativeState();
 
   if (mContent->AsElement()->State().HasState(NS_EVENT_STATE_MOZ_READWRITE)) {
     states |= states::EDITABLE;
 
   } else if (mContent->IsHTMLElement(nsGkAtoms::article)) {
     // We want <article> to behave like a document in terms of readonly state.
@@ -1863,17 +1863,17 @@ HyperTextAccessible::RangeAtPoint(int32_
   }
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible public
 
 // Accessible protected
 ENameValueFlag
-HyperTextAccessible::NativeName(nsString& aName)
+HyperTextAccessible::NativeName(nsString& aName) const
 {
   // Check @alt attribute for invalid img elements.
   bool hasImgAlt = false;
   if (mContent->IsHTMLElement(nsGkAtoms::img)) {
     hasImgAlt =
       mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::alt, aName);
     if (!aName.IsEmpty())
       return eNameOK;
@@ -1917,17 +1917,17 @@ HyperTextAccessible::InsertChildAt(uint3
   int32_t count = mOffsets.Length() - aIndex;
   if (count > 0 ) {
     mOffsets.RemoveElementsAt(aIndex, count);
   }
   return AccessibleWrap::InsertChildAt(aIndex, aChild);
 }
 
 Relation
-HyperTextAccessible::RelationByType(RelationType aType)
+HyperTextAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = Accessible::RelationByType(aType);
 
   switch (aType) {
     case RelationType::NODE_CHILD_OF:
       if (HasOwnContent() && mContent->IsMathMLElement()) {
         Accessible* parent = Parent();
         if (parent) {
--- a/accessible/generic/HyperTextAccessible.h
+++ b/accessible/generic/HyperTextAccessible.h
@@ -53,22 +53,22 @@ public:
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HyperTextAccessible, AccessibleWrap)
 
   // Accessible
   virtual nsAtom* LandmarkRole() const override;
   virtual int32_t GetLevelInternal() override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   virtual void Shutdown() override;
   virtual bool RemoveChild(Accessible* aAccessible) override;
   virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   // HyperTextAccessible (static helper method)
 
   // Convert content offset to rendered text offset
   nsresult ContentToRenderedOffset(nsIFrame *aFrame, int32_t aContentOffset,
                                    uint32_t *aRenderedOffset) const;
 
   // Convert rendered text offset to content offset
@@ -430,17 +430,17 @@ public:
    * Return DOM selection object for the accessible.
    */
   dom::Selection* DOMSelection() const;
 
 protected:
   virtual ~HyperTextAccessible() { }
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   // HyperTextAccessible
 
   /**
    * Transform magic offset into text offset.
    */
   index_t ConvertMagicOffset(int32_t aOffset) const;
 
--- a/accessible/generic/ImageAccessible.cpp
+++ b/accessible/generic/ImageAccessible.cpp
@@ -37,17 +37,17 @@ ImageAccessible::
 ImageAccessible::~ImageAccessible()
 {
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible public
 
 uint64_t
-ImageAccessible::NativeState()
+ImageAccessible::NativeState() const
 {
   // The state is a bitfield, get our inherited state, then logically OR it with
   // states::ANIMATED if this is an animated image.
 
   uint64_t state = LinkableAccessible::NativeState();
 
   nsCOMPtr<nsIImageLoadingContent> content(do_QueryInterface(mContent));
   nsCOMPtr<imgIRequest> imageRequest;
@@ -66,17 +66,17 @@ ImageAccessible::NativeState()
     if (animated)
       state |= states::ANIMATED;
   }
 
   return state;
 }
 
 ENameValueFlag
-ImageAccessible::NativeName(nsString& aName)
+ImageAccessible::NativeName(nsString& aName) const
 {
   bool hasAltAttrib =
     mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::alt, aName);
   if (!aName.IsEmpty())
     return eNameOK;
 
   ENameValueFlag nameFlag = Accessible::NativeName(aName);
   if (!aName.IsEmpty())
@@ -94,34 +94,34 @@ ImageAccessible::NativeRole() const
 {
   return roles::GRAPHIC;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible
 
 uint8_t
-ImageAccessible::ActionCount()
+ImageAccessible::ActionCount() const
 {
   uint8_t actionCount = LinkableAccessible::ActionCount();
   return HasLongDesc() ? actionCount + 1 : actionCount;
 }
 
 void
 ImageAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
   if (IsLongDescIndex(aIndex) && HasLongDesc())
     aName.AssignLiteral("showlongdesc");
   else
     LinkableAccessible::ActionNameAt(aIndex, aName);
 }
 
 bool
-ImageAccessible::DoAction(uint8_t aIndex)
+ImageAccessible::DoAction(uint8_t aIndex) const
 {
   // Get the long description uri and open in a new window.
   if (!IsLongDescIndex(aIndex))
     return LinkableAccessible::DoAction(aIndex);
 
   nsCOMPtr<nsIURI> uri = GetLongDescURI();
   if (!uri)
     return false;
@@ -211,13 +211,13 @@ ImageAccessible::GetLongDescURI() const
       }
     }
   }
 
   return nullptr;
 }
 
 bool
-ImageAccessible::IsLongDescIndex(uint8_t aIndex)
+ImageAccessible::IsLongDescIndex(uint8_t aIndex) const
 {
   return aIndex == LinkableAccessible::ActionCount();
 }
 
--- a/accessible/generic/ImageAccessible.h
+++ b/accessible/generic/ImageAccessible.h
@@ -18,33 +18,33 @@ namespace a11y {
  */
 class ImageAccessible : public LinkableAccessible
 {
 public:
   ImageAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // ImageAccessible
   nsIntPoint Position(uint32_t aCoordType);
   nsIntSize Size();
 
 protected:
   virtual ~ImageAccessible();
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
 private:
   /**
    * Return whether the element has a longdesc URI.
    */
   bool HasLongDesc() const
   {
     nsCOMPtr<nsIURI> uri = GetLongDescURI();
@@ -62,17 +62,17 @@ private:
    * It is always assumed that the highest possible index opens the longdesc.
    * This doesn't check that there is actually a longdesc, just that the index
    * would be correct if there was one.
    *
    * @param aIndex  The 0-based index to be tested.
    *
    * @returns  true if index is valid for longdesc action.
    */
-  inline bool IsLongDescIndex(uint8_t aIndex);
+  inline bool IsLongDescIndex(uint8_t aIndex) const;
 
 };
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible downcasting method
 
 inline ImageAccessible*
 Accessible::AsImage()
--- a/accessible/generic/RootAccessible.cpp
+++ b/accessible/generic/RootAccessible.cpp
@@ -68,17 +68,17 @@ RootAccessible::
 RootAccessible::~RootAccessible()
 {
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible
 
 ENameValueFlag
-RootAccessible::Name(nsString& aName)
+RootAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   if (ARIARoleMap()) {
     Accessible::Name(aName);
     if (!aName.IsEmpty())
       return eNameOK;
   }
@@ -118,17 +118,17 @@ RootAccessible::GetChromeFlags() const
   }
   uint32_t chromeFlags;
   xulWin->GetChromeFlags(&chromeFlags);
   return chromeFlags;
 }
 #endif
 
 uint64_t
-RootAccessible::NativeState()
+RootAccessible::NativeState() const
 {
   uint64_t state = DocAccessibleWrap::NativeState();
   if (state & states::DEFUNCT)
     return state;
 
 #ifdef MOZ_XUL
   uint32_t chromeFlags = GetChromeFlags();
   if (chromeFlags & nsIWebBrowserChrome::CHROME_WINDOW_RESIZE)
@@ -475,17 +475,17 @@ RootAccessible::Shutdown()
   // Called manually or by Accessible::LastRelease()
   if (!PresShell())
     return;  // Already shutdown
 
   DocAccessibleWrap::Shutdown();
 }
 
 Relation
-RootAccessible::RelationByType(RelationType aType)
+RootAccessible::RelationByType(RelationType aType) const
 {
   if (!mDocumentNode || aType != RelationType::EMBEDS)
     return DocAccessibleWrap::RelationByType(aType);
 
   if (nsPIDOMWindowOuter* rootWindow = mDocumentNode->GetWindow()) {
     nsCOMPtr<nsPIDOMWindowOuter> contentWindow =
       nsGlobalWindowOuter::Cast(rootWindow)->GetContent();
     if (contentWindow) {
--- a/accessible/generic/RootAccessible.h
+++ b/accessible/generic/RootAccessible.h
@@ -24,20 +24,20 @@ class RootAccessible : public DocAccessi
 public:
   RootAccessible(nsIDocument* aDocument, nsIPresShell* aPresShell);
 
   // nsIDOMEventListener
   NS_DECL_NSIDOMEVENTLISTENER
 
   // Accessible
   virtual void Shutdown() override;
-  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) const override;
+  virtual Relation RelationByType(RelationType aType) const override;
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // RootAccessible
 
   /**
    * Notify that the sub document presshell was activated.
    */
   virtual void DocumentActivated(DocAccessible* aDocument);
 
--- a/accessible/generic/TextLeafAccessible.cpp
+++ b/accessible/generic/TextLeafAccessible.cpp
@@ -41,14 +41,14 @@ TextLeafAccessible::NativeRole() const
 void
 TextLeafAccessible::AppendTextTo(nsAString& aText, uint32_t aStartOffset,
                                  uint32_t aLength)
 {
   aText.Append(Substring(mText, aStartOffset, aLength));
 }
 
 ENameValueFlag
-TextLeafAccessible::Name(nsString& aName)
+TextLeafAccessible::Name(nsString& aName) const
 {
   // Text node, ARIA can't be used.
   aName = mText;
   return eNameOK;
 }
--- a/accessible/generic/TextLeafAccessible.h
+++ b/accessible/generic/TextLeafAccessible.h
@@ -19,17 +19,17 @@ class TextLeafAccessible : public Linkab
 public:
   TextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~TextLeafAccessible();
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
   virtual void AppendTextTo(nsAString& aText, uint32_t aStartOffset = 0,
                             uint32_t aLength = UINT32_MAX) override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
 
   // TextLeafAccessible
   void SetText(const nsAString& aText) { mText = aText; }
   const nsString& Text() const { return mText; }
 
 protected:
   nsString mText;
 };
--- a/accessible/html/HTMLElementAccessibles.cpp
+++ b/accessible/html/HTMLElementAccessibles.cpp
@@ -35,83 +35,83 @@ HTMLHRAccessible::NativeRole() const
 
 role
 HTMLBRAccessible::NativeRole() const
 {
   return roles::WHITESPACE;
 }
 
 uint64_t
-HTMLBRAccessible::NativeState()
+HTMLBRAccessible::NativeState() const
 {
   return states::READONLY;
 }
 
 ENameValueFlag
-HTMLBRAccessible::NativeName(nsString& aName)
+HTMLBRAccessible::NativeName(nsString& aName) const
 {
   aName = static_cast<char16_t>('\n');    // Newline char
   return eNameOK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLLabelAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 ENameValueFlag
-HTMLLabelAccessible::NativeName(nsString& aName)
+HTMLLabelAccessible::NativeName(nsString& aName) const
 {
   nsTextEquivUtils::GetNameFromSubtree(this, aName);
   return aName.IsEmpty() ? eNameOK : eNameFromSubtree;
 }
 
 Relation
-HTMLLabelAccessible::RelationByType(RelationType aType)
+HTMLLabelAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType == RelationType::LABEL_FOR) {
     dom::HTMLLabelElement* label = dom::HTMLLabelElement::FromNode(mContent);
     rel.AppendTarget(mDoc, label->GetControl());
   }
 
   return rel;
 }
 
 uint8_t
-HTMLLabelAccessible::ActionCount()
+HTMLLabelAccessible::ActionCount() const
 {
   return nsCoreUtils::IsLabelWithControl(mContent) ? 1 : 0;
 }
 
 void
 HTMLLabelAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == 0) {
     if (nsCoreUtils::IsLabelWithControl(mContent))
       aName.AssignLiteral("click");
   }
 }
 
 bool
-HTMLLabelAccessible::DoAction(uint8_t aIndex)
+HTMLLabelAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   DoCommand();
   return true;
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsHTMLOuputAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 Relation
-HTMLOutputAccessible::RelationByType(RelationType aType)
+HTMLOutputAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType == RelationType::CONTROLLED_BY)
     rel.AppendIter(new IDRefsIterator(mDoc, mContent, nsGkAtoms::_for));
 
   return rel;
 }
 
@@ -122,17 +122,17 @@ HTMLOutputAccessible::RelationByType(Rel
 HTMLSummaryAccessible::
   HTMLSummaryAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   HyperTextAccessibleWrap(aContent, aDoc)
 {
   mGenericTypes |= eButton;
 }
 
 uint8_t
-HTMLSummaryAccessible::ActionCount()
+HTMLSummaryAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 HTMLSummaryAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex != eAction_Click) {
@@ -152,27 +152,27 @@ HTMLSummaryAccessible::ActionNameAt(uint
   if (details->Open()) {
     aName.AssignLiteral("collapse");
   } else {
     aName.AssignLiteral("expand");
   }
 }
 
 bool
-HTMLSummaryAccessible::DoAction(uint8_t aIndex)
+HTMLSummaryAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
 uint64_t
-HTMLSummaryAccessible::NativeState()
+HTMLSummaryAccessible::NativeState() const
 {
   uint64_t state = HyperTextAccessibleWrap::NativeState();
 
   dom::HTMLSummaryElement* summary = dom::HTMLSummaryElement::FromNode(mContent);
   if (!summary) {
     return state;
   }
 
--- a/accessible/html/HTMLElementAccessibles.h
+++ b/accessible/html/HTMLElementAccessibles.h
@@ -35,64 +35,64 @@ public:
     LeafAccessible(aContent, aDoc)
   {
     mType = eHTMLBRType;
     mGenericTypes |= eText;
   }
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for HTML label element.
  */
 class HTMLLabelAccessible : public HyperTextAccessibleWrap
 {
 public:
 
   HTMLLabelAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     HyperTextAccessibleWrap(aContent, aDoc) {}
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLLabelAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
 protected:
   virtual ~HTMLLabelAccessible() {}
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for HTML output element.
  */
 class HTMLOutputAccessible : public HyperTextAccessibleWrap
 {
 public:
 
   HTMLOutputAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     HyperTextAccessibleWrap(aContent, aDoc) {}
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLOutputAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
 protected:
   virtual ~HTMLOutputAccessible() {}
 };
 
 /**
  * Accessible for the HTML summary element.
  */
@@ -100,22 +100,22 @@ class HTMLSummaryAccessible : public Hyp
 {
 
 public:
   enum { eAction_Click = 0 };
 
   HTMLSummaryAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
 };
 
 /**
  * Used for HTML header and footer elements.
  */
--- a/accessible/html/HTMLFormControlAccessible.cpp
+++ b/accessible/html/HTMLFormControlAccessible.cpp
@@ -41,17 +41,17 @@ using namespace mozilla::a11y;
 
 role
 HTMLCheckboxAccessible::NativeRole() const
 {
   return roles::CHECKBUTTON;
 }
 
 uint8_t
-HTMLCheckboxAccessible::ActionCount()
+HTMLCheckboxAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 HTMLCheckboxAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click) {    // 0 is the magic value for default action
@@ -61,27 +61,27 @@ HTMLCheckboxAccessible::ActionNameAt(uin
     else if (state & states::MIXED)
       aName.AssignLiteral("cycle");
     else
       aName.AssignLiteral("check");
   }
 }
 
 bool
-HTMLCheckboxAccessible::DoAction(uint8_t aIndex)
+HTMLCheckboxAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   DoCommand();
   return true;
 }
 
 uint64_t
-HTMLCheckboxAccessible::NativeState()
+HTMLCheckboxAccessible::NativeState() const
 {
   uint64_t state = LeafAccessible::NativeState();
 
   state |= states::CHECKABLE;
   HTMLInputElement* input = HTMLInputElement::FromNode(mContent);
   if (!input)
     return state;
 
@@ -104,17 +104,17 @@ HTMLCheckboxAccessible::IsWidget() const
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLRadioButtonAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 uint64_t
-HTMLRadioButtonAccessible::NativeState()
+HTMLRadioButtonAccessible::NativeState() const
 {
   uint64_t state = AccessibleWrap::NativeState();
 
   state |= states::CHECKABLE;
 
   HTMLInputElement* input = HTMLInputElement::FromNode(mContent);
   if (input && input->Checked())
     state |= states::CHECKED;
@@ -175,30 +175,30 @@ HTMLRadioButtonAccessible::GetPositionAn
 HTMLButtonAccessible::
   HTMLButtonAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   HyperTextAccessibleWrap(aContent, aDoc)
 {
   mGenericTypes |= eButton;
 }
 
 uint8_t
-HTMLButtonAccessible::ActionCount()
+HTMLButtonAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 HTMLButtonAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("press");
 }
 
 bool
-HTMLButtonAccessible::DoAction(uint8_t aIndex)
+HTMLButtonAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -217,17 +217,17 @@ HTMLButtonAccessible::State()
     state |= parentState & (states::BUSY | states::REQUIRED |
                             states::HASPOPUP | states::INVALID);
   }
 
   return state;
 }
 
 uint64_t
-HTMLButtonAccessible::NativeState()
+HTMLButtonAccessible::NativeState() const
 {
   uint64_t state = HyperTextAccessibleWrap::NativeState();
 
   EventStates elmState = mContent->AsElement()->State();
   if (elmState.HasState(NS_EVENT_STATE_DEFAULT))
     state |= states::DEFAULT;
 
   return state;
@@ -235,17 +235,17 @@ HTMLButtonAccessible::NativeState()
 
 role
 HTMLButtonAccessible::NativeRole() const
 {
   return roles::PUSHBUTTON;
 }
 
 ENameValueFlag
-HTMLButtonAccessible::NativeName(nsString& aName)
+HTMLButtonAccessible::NativeName(nsString& aName) const
 {
   // No need to check @value attribute for buttons since this attribute results
   // in native anonymous text node and the name is calculated from subtree.
   // The same magic works for @alt and @value attributes in case of type="image"
   // element that has no valid @src (note if input@type="image" has an image
   // then neither @alt nor @value attributes are used to generate a visual label
   // and thus we need to obtain the accessible name directly from attribute
   // value). Also the same algorithm works in case of default labels for
@@ -314,17 +314,17 @@ HTMLTextFieldAccessible::NativeAttribute
                              NS_LITERAL_STRING("searchbox"));
     }
   }
 
   return attributes.forget();
 }
 
 ENameValueFlag
-HTMLTextFieldAccessible::NativeName(nsString& aName)
+HTMLTextFieldAccessible::NativeName(nsString& aName) const
 {
   ENameValueFlag nameFlag = Accessible::NativeName(aName);
   if (!aName.IsEmpty())
     return nameFlag;
 
   // If part of compound of XUL widget then grab a name from XUL widget element.
   nsIContent* widgetElm = XULWidgetElm();
   if (widgetElm)
@@ -334,17 +334,17 @@ HTMLTextFieldAccessible::NativeName(nsSt
     return eNameOK;
 
   // text inputs and textareas might have useful placeholder text
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::placeholder, aName);
   return eNameOK;
 }
 
 void
-HTMLTextFieldAccessible::Value(nsString& aValue)
+HTMLTextFieldAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
   if (NativeState() & states::PROTECTED)    // Don't return password text!
     return;
 
   HTMLTextAreaElement* textArea = HTMLTextAreaElement::FromNode(mContent);
   if (textArea) {
     textArea->GetValue(aValue);
@@ -368,17 +368,17 @@ HTMLTextFieldAccessible::ApplyARIAState(
   // If part of compound of XUL widget then pick up ARIA stuff from XUL widget
   // element.
   nsIContent* widgetElm = XULWidgetElm();
   if (widgetElm)
     aria::MapToState(aria::eARIAAutoComplete, widgetElm->AsElement(), aState);
 }
 
 uint64_t
-HTMLTextFieldAccessible::NativeState()
+HTMLTextFieldAccessible::NativeState() const
 {
   uint64_t state = HyperTextAccessibleWrap::NativeState();
 
   // Text fields are always editable, even if they are also read only or
   // disabled.
   state |= states::EDITABLE;
 
   // can be focusable, focused, protected. readonly, unavailable, selected
@@ -433,30 +433,30 @@ HTMLTextFieldAccessible::NativeState()
         state |= states::SUPPORTS_AUTOCOMPLETION;
     }
   }
 
   return state;
 }
 
 uint8_t
-HTMLTextFieldAccessible::ActionCount()
+HTMLTextFieldAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 HTMLTextFieldAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("activate");
 }
 
 bool
-HTMLTextFieldAccessible::DoAction(uint8_t aIndex)
+HTMLTextFieldAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   TakeFocus();
   return true;
 }
 
@@ -544,17 +544,17 @@ HTMLFileInputAccessible::HandleAccEvent(
 
 role
 HTMLSpinnerAccessible::NativeRole() const
 {
   return roles::SPINBUTTON;
 }
 
 void
-HTMLSpinnerAccessible::Value(nsString& aValue)
+HTMLSpinnerAccessible::Value(nsString& aValue) const
 {
   AccessibleWrap::Value(aValue);
   if (!aValue.IsEmpty())
     return;
 
   // Pass NonSystem as the caller type, to be safe.  We don't expect to have a
   // file input here.
   HTMLInputElement::FromNode(mContent)->GetValue(aValue, CallerType::NonSystem);
@@ -622,17 +622,17 @@ HTMLRangeAccessible::NativeRole() const
 
 bool
 HTMLRangeAccessible::IsWidget() const
 {
   return true;
 }
 
 void
-HTMLRangeAccessible::Value(nsString& aValue)
+HTMLRangeAccessible::Value(nsString& aValue) const
 {
   LeafAccessible::Value(aValue);
   if (!aValue.IsEmpty())
     return;
 
   // Pass NonSystem as the caller type, to be safe.  We don't expect to have a
   // file input here.
   HTMLInputElement::FromNode(mContent)->GetValue(aValue,
@@ -715,31 +715,31 @@ HTMLGroupboxAccessible::GetLegend() cons
       return legendContent;
     }
   }
 
   return nullptr;
 }
 
 ENameValueFlag
-HTMLGroupboxAccessible::NativeName(nsString& aName)
+HTMLGroupboxAccessible::NativeName(nsString& aName) const
 {
   ENameValueFlag nameFlag = Accessible::NativeName(aName);
   if (!aName.IsEmpty())
     return nameFlag;
 
   nsIContent* legendContent = GetLegend();
   if (legendContent)
     nsTextEquivUtils::AppendTextEquivFromContent(this, legendContent, &aName);
 
   return eNameOK;
 }
 
 Relation
-HTMLGroupboxAccessible::RelationByType(RelationType aType)
+HTMLGroupboxAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessibleWrap::RelationByType(aType);
     // No override for label, so use <legend> for this <fieldset>
   if (aType == RelationType::LABELLED_BY)
     rel.AppendTarget(mDoc, GetLegend());
 
   return rel;
 }
@@ -750,17 +750,17 @@ HTMLGroupboxAccessible::RelationByType(R
 
 HTMLLegendAccessible::
   HTMLLegendAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   HyperTextAccessibleWrap(aContent, aDoc)
 {
 }
 
 Relation
-HTMLLegendAccessible::RelationByType(RelationType aType)
+HTMLLegendAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessibleWrap::RelationByType(aType);
   if (aType != RelationType::LABEL_FOR)
     return rel;
 
   Accessible* groupbox = Parent();
   if (groupbox && groupbox->Role() == roles::GROUPING)
     rel.AppendTarget(groupbox);
@@ -774,31 +774,31 @@ HTMLLegendAccessible::RelationByType(Rel
 
 HTMLFigureAccessible::
   HTMLFigureAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   HyperTextAccessibleWrap(aContent, aDoc)
 {
 }
 
 ENameValueFlag
-HTMLFigureAccessible::NativeName(nsString& aName)
+HTMLFigureAccessible::NativeName(nsString& aName) const
 {
   ENameValueFlag nameFlag = HyperTextAccessibleWrap::NativeName(aName);
   if (!aName.IsEmpty())
     return nameFlag;
 
   nsIContent* captionContent = Caption();
   if (captionContent)
     nsTextEquivUtils::AppendTextEquivFromContent(this, captionContent, &aName);
 
   return eNameOK;
 }
 
 Relation
-HTMLFigureAccessible::RelationByType(RelationType aType)
+HTMLFigureAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessibleWrap::RelationByType(aType);
   if (aType == RelationType::LABELLED_BY)
     rel.AppendTarget(mDoc, Caption());
 
   return rel;
 }
 
@@ -822,17 +822,17 @@ HTMLFigureAccessible::Caption() const
 
 HTMLFigcaptionAccessible::
   HTMLFigcaptionAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   HyperTextAccessibleWrap(aContent, aDoc)
 {
 }
 
 Relation
-HTMLFigcaptionAccessible::RelationByType(RelationType aType)
+HTMLFigcaptionAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessibleWrap::RelationByType(aType);
   if (aType != RelationType::LABEL_FOR)
     return rel;
 
   Accessible* figure = Parent();
   if (figure &&
       figure->GetContent()->NodeInfo()->Equals(nsGkAtoms::figure,
--- a/accessible/html/HTMLFormControlAccessible.h
+++ b/accessible/html/HTMLFormControlAccessible.h
@@ -32,22 +32,22 @@ public:
   {
     // Ignore "CheckboxStateChange" DOM event in lieu of document observer
     // state change notification.
     mStateFlags |= eIgnoreDOMUIEvent;
   }
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
 };
 
 
 /**
  * Accessible for HTML input@type="radio" element.
@@ -60,17 +60,17 @@ public:
     RadioButtonAccessible(aContent, aDoc)
   {
     // Ignore "RadioStateChange" DOM event in lieu of document observer
     // state change notification.
     mStateFlags |= eIgnoreDOMUIEvent;
   }
 
   // Accessible
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual void GetPositionAndSizeInternal(int32_t *aPosInSet,
                                           int32_t *aSetSize) override;
 };
 
 
 /**
  * Accessible for HTML input@type="button", @type="submit", @type="image"
  * and HTML button elements.
@@ -81,29 +81,29 @@ class HTMLButtonAccessible : public Hype
 public:
   enum { eAction_Click = 0 };
 
   HTMLButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
   virtual uint64_t State() override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 
 /**
  * Accessible for HTML input@type="text", input@type="password", textarea and
  * other HTML text controls.
  */
 class HTMLTextFieldAccessible final : public HyperTextAccessibleWrap
@@ -116,36 +116,36 @@ public:
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLTextFieldAccessible,
                                        HyperTextAccessibleWrap)
 
   // HyperTextAccessible
   virtual already_AddRefed<TextEditor> GetEditor() const override;
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual void ApplyARIAState(uint64_t* aState) const override;
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   virtual ~HTMLTextFieldAccessible() {}
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   /**
    * Return a XUL widget element this input is part of.
    */
   nsIContent* XULWidgetElm() const { return mContent->GetBindingParent(); }
 };
 
 
@@ -172,17 +172,17 @@ public:
   HTMLSpinnerAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     AccessibleWrap(aContent, aDoc)
   {
     mStateFlags |= eHasNumericValue;
 }
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
 
   virtual double MaxValue() const override;
   virtual double MinValue() const override;
   virtual double CurValue() const override;
   virtual double Step() const override;
   virtual bool SetCurValue(double aValue) override;
 };
 
@@ -195,17 +195,17 @@ class HTMLRangeAccessible : public LeafA
 public:
   HTMLRangeAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     LeafAccessible(aContent, aDoc)
   {
     mStateFlags |= eHasNumericValue;
   }
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual mozilla::a11y::role NativeRole() const override;
 
   // Value
   virtual double MaxValue() const override;
   virtual double MinValue() const override;
   virtual double CurValue() const override;
   virtual double Step() const override;
   virtual bool SetCurValue(double aValue) override;
@@ -220,67 +220,67 @@ public:
  */
 class HTMLGroupboxAccessible : public HyperTextAccessibleWrap
 {
 public:
   HTMLGroupboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   // HTMLGroupboxAccessible
   nsIContent* GetLegend() const;
 };
 
 
 /**
  * Accessible for HTML legend element.
  */
 class HTMLLegendAccessible : public HyperTextAccessibleWrap
 {
 public:
   HTMLLegendAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 };
 
 /**
  * Accessible for HTML5 figure element.
  */
 class HTMLFigureAccessible : public HyperTextAccessibleWrap
 {
 public:
   HTMLFigureAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   // HTMLLegendAccessible
   nsIContent* Caption() const;
 };
 
 
 /**
  * Accessible for HTML5 figcaption element.
  */
 class HTMLFigcaptionAccessible : public HyperTextAccessibleWrap
 {
 public:
   HTMLFigcaptionAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
--- a/accessible/html/HTMLImageMapAccessible.cpp
+++ b/accessible/html/HTMLImageMapAccessible.cpp
@@ -52,17 +52,17 @@ HTMLImageMapAccessible::AnchorCount()
 
 Accessible*
 HTMLImageMapAccessible::AnchorAt(uint32_t aAnchorIndex)
 {
   return GetChildAt(aAnchorIndex);
 }
 
 already_AddRefed<nsIURI>
-HTMLImageMapAccessible::AnchorURIAt(uint32_t aAnchorIndex)
+HTMLImageMapAccessible::AnchorURIAt(uint32_t aAnchorIndex) const
 {
   Accessible* area = GetChildAt(aAnchorIndex);
   if (!area)
     return nullptr;
 
   nsIContent* linkContent = area->GetContent();
   return linkContent ? linkContent->GetHrefURI() : nullptr;
 }
@@ -138,17 +138,17 @@ HTMLAreaAccessible::
   // manages its tree itself.
   mStateFlags |= eNotNodeMapEntry;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLAreaAccessible: Accessible
 
 ENameValueFlag
-HTMLAreaAccessible::NativeName(nsString& aName)
+HTMLAreaAccessible::NativeName(nsString& aName) const
 {
   ENameValueFlag nameFlag = Accessible::NativeName(aName);
   if (!aName.IsEmpty())
     return nameFlag;
 
   if (!mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::alt, aName))
     Value(aName);
 
--- a/accessible/html/HTMLImageMapAccessible.h
+++ b/accessible/html/HTMLImageMapAccessible.h
@@ -25,17 +25,17 @@ public:
                                        ImageAccessibleWrap)
 
   // Accessible
   virtual a11y::role NativeRole() const override;
 
   // HyperLinkAccessible
   virtual uint32_t AnchorCount() override;
   virtual Accessible* AnchorAt(uint32_t aAnchorIndex) override;
-  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
+  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) const override;
 
   /**
    * Update area children of the image map.
    */
   void UpdateChildAreas(bool aDoFireEvents = true);
 
   /**
    * Return accessible of child node.
@@ -65,17 +65,17 @@ public:
   virtual uint32_t StartOffset() override;
   virtual uint32_t EndOffset() override;
 
   virtual bool IsAcceptableChild(nsIContent* aEl) const override
     { return false; }
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // Accessible downcasting method
 
 inline HTMLImageMapAccessible*
 Accessible::AsImageMap()
--- a/accessible/html/HTMLLinkAccessible.cpp
+++ b/accessible/html/HTMLLinkAccessible.cpp
@@ -32,17 +32,17 @@ HTMLLinkAccessible::
 
 role
 HTMLLinkAccessible::NativeRole() const
 {
   return roles::LINK;
 }
 
 uint64_t
-HTMLLinkAccessible::NativeState()
+HTMLLinkAccessible::NativeState() const
 {
   return HyperTextAccessibleWrap::NativeState() & ~states::READONLY;
 }
 
 uint64_t
 HTMLLinkAccessible::NativeLinkState() const
 {
   EventStates eventState = mContent->AsElement()->State();
@@ -68,27 +68,27 @@ HTMLLinkAccessible::NativeInteractiveSta
   // indicate this.
   if (mContent->AsElement()->HasAttr(kNameSpaceID_None, nsGkAtoms::name))
     state |= states::SELECTABLE;
 
   return state;
 }
 
 void
-HTMLLinkAccessible::Value(nsString& aValue)
+HTMLLinkAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   HyperTextAccessible::Value(aValue);
   if (aValue.IsEmpty())
     nsContentUtils::GetLinkLocation(mContent->AsElement(), aValue);
 }
 
 uint8_t
-HTMLLinkAccessible::ActionCount()
+HTMLLinkAccessible::ActionCount() const
 {
   return IsLinked() ? 1 : HyperTextAccessible::ActionCount();
 }
 
 void
 HTMLLinkAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
@@ -99,17 +99,17 @@ HTMLLinkAccessible::ActionNameAt(uint8_t
   }
 
   // Action 0 (default action): Jump to link
   if (aIndex == eAction_Jump)
     aName.AssignLiteral("jump");
 }
 
 bool
-HTMLLinkAccessible::DoAction(uint8_t aIndex)
+HTMLLinkAccessible::DoAction(uint8_t aIndex) const
 {
   if (!IsLinked())
     return HyperTextAccessible::DoAction(aIndex);
 
   // Action 0 (default action): Jump to link
   if (aIndex != eAction_Jump)
     return false;
 
@@ -123,17 +123,17 @@ HTMLLinkAccessible::DoAction(uint8_t aIn
 bool
 HTMLLinkAccessible::IsLink() const
 {
   // Expose HyperLinkAccessible unconditionally.
   return true;
 }
 
 already_AddRefed<nsIURI>
-HTMLLinkAccessible::AnchorURIAt(uint32_t aAnchorIndex)
+HTMLLinkAccessible::AnchorURIAt(uint32_t aAnchorIndex) const
 {
   return aAnchorIndex == 0 ? mContent->GetHrefURI() : nullptr;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // Protected members
 
 bool
--- a/accessible/html/HTMLLinkAccessible.h
+++ b/accessible/html/HTMLLinkAccessible.h
@@ -15,30 +15,30 @@ class HTMLLinkAccessible : public HyperT
 {
 public:
   HTMLLinkAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLLinkAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeLinkState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // HyperLinkAccessible
   virtual bool IsLink() const override;
-  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
+  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) const override;
 
 protected:
   virtual ~HTMLLinkAccessible() {}
 
   enum { eAction_Jump = 0 };
 
   /**
    * Returns true if the link has href attribute.
--- a/accessible/html/HTMLListAccessible.cpp
+++ b/accessible/html/HTMLListAccessible.cpp
@@ -24,17 +24,17 @@ using namespace mozilla::a11y;
 role
 HTMLListAccessible::NativeRole() const
 {
   a11y::role r = GetAccService()->MarkupRole(mContent);
   return r != roles::NOTHING ? r : roles::LIST;
 }
 
 uint64_t
-HTMLListAccessible::NativeState()
+HTMLListAccessible::NativeState() const
 {
   return HyperTextAccessibleWrap::NativeState() | states::READONLY;
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLLIAccessible
 ////////////////////////////////////////////////////////////////////////////////
@@ -64,17 +64,17 @@ HTMLLIAccessible::Shutdown()
 role
 HTMLLIAccessible::NativeRole() const
 {
   a11y::role r = GetAccService()->MarkupRole(mContent);
   return r != roles::NOTHING ? r : roles::LISTITEM;
 }
 
 uint64_t
-HTMLLIAccessible::NativeState()
+HTMLLIAccessible::NativeState() const
 {
   return HyperTextAccessibleWrap::NativeState() | states::READONLY;
 }
 
 nsRect
 HTMLLIAccessible::BoundsInAppUnits() const
 {
   nsRect rect = AccessibleWrap::BoundsInAppUnits();
@@ -142,17 +142,17 @@ HTMLListBulletAccessible::
 nsIFrame*
 HTMLListBulletAccessible::GetFrame() const
 {
   nsBlockFrame* blockFrame = do_QueryFrame(mContent->GetPrimaryFrame());
   return blockFrame ? blockFrame->GetBullet() : nullptr;
 }
 
 ENameValueFlag
-HTMLListBulletAccessible::Name(nsString &aName)
+HTMLListBulletAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   // Native anonymous content, ARIA can't be used. Get list bullet text.
   nsBlockFrame* blockFrame = do_QueryFrame(mContent->GetPrimaryFrame());
   if (blockFrame) {
     blockFrame->GetSpokenBulletText(aName);
   }
@@ -162,17 +162,17 @@ HTMLListBulletAccessible::Name(nsString 
 
 role
 HTMLListBulletAccessible::NativeRole() const
 {
   return roles::STATICTEXT;
 }
 
 uint64_t
-HTMLListBulletAccessible::NativeState()
+HTMLListBulletAccessible::NativeState() const
 {
   return LeafAccessible::NativeState() | states::READONLY;
 }
 
 void
 HTMLListBulletAccessible::AppendTextTo(nsAString& aText, uint32_t aStartOffset,
                                        uint32_t aLength)
 {
--- a/accessible/html/HTMLListAccessible.h
+++ b/accessible/html/HTMLListAccessible.h
@@ -25,17 +25,17 @@ public:
     HyperTextAccessibleWrap(aContent, aDoc) { mGenericTypes |= eList; }
 
   // nsISupports
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLListAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
 protected:
   virtual ~HTMLListAccessible() { }
 };
 
 
 /**
  * Used for HTML list item (e.g. HTML li).
@@ -48,17 +48,17 @@ public:
   // nsISupports
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLLIAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
   virtual void Shutdown() override;
   virtual nsRect BoundsInAppUnits() const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) override;
 
   // HTMLLIAccessible
   HTMLListBulletAccessible* Bullet() const { return mBullet; }
   void UpdateBullet(bool aHasBullet);
 
 protected:
@@ -75,19 +75,19 @@ private:
 class HTMLListBulletAccessible : public LeafAccessible
 {
 public:
   HTMLListBulletAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~HTMLListBulletAccessible() { }
 
   // Accessible
   virtual nsIFrame* GetFrame() const override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual void AppendTextTo(nsAString& aText, uint32_t aStartOffset = 0,
                             uint32_t aLength = UINT32_MAX) override;
 
   // HTMLListBulletAccessible
 
   /**
    * Return true if the bullet is inside of list item element boundaries.
    */
--- a/accessible/html/HTMLSelectAccessible.cpp
+++ b/accessible/html/HTMLSelectAccessible.cpp
@@ -34,17 +34,17 @@ HTMLSelectListAccessible::
 {
   mGenericTypes |= eListControl | eSelect;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLSelectListAccessible: Accessible public
 
 uint64_t
-HTMLSelectListAccessible::NativeState()
+HTMLSelectListAccessible::NativeState() const
 {
   uint64_t state = AccessibleWrap::NativeState();
   if (mContent->AsElement()->HasAttr(kNameSpaceID_None, nsGkAtoms::multiple))
     state |= states::MULTISELECTABLE | states::EXTSELECTABLE;
 
   return state;
 }
 
@@ -143,17 +143,17 @@ HTMLSelectOptionAccessible::NativeRole()
 {
   if (GetCombobox())
     return roles::COMBOBOX_OPTION;
 
   return roles::OPTION;
 }
 
 ENameValueFlag
-HTMLSelectOptionAccessible::NativeName(nsString& aName)
+HTMLSelectOptionAccessible::NativeName(nsString& aName) const
 {
   // CASE #1 -- great majority of the cases
   // find the label attribute - this is what the W3C says we should use
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
   if (!aName.IsEmpty())
     return eNameOK;
 
   // CASE #2 -- no label parameter, get the first child,
@@ -164,17 +164,17 @@ HTMLSelectOptionAccessible::NativeName(n
     aName.CompressWhitespace();
     return aName.IsEmpty() ? eNameOK : eNameFromSubtree;
   }
 
   return eNameOK;
 }
 
 uint64_t
-HTMLSelectOptionAccessible::NativeState()
+HTMLSelectOptionAccessible::NativeState() const
 {
   // As a HTMLSelectOptionAccessible we can have the following states:
   // SELECTABLE, SELECTED, FOCUSED, FOCUSABLE, OFFSCREEN
   // Upcall to Accessible, but skip HyperTextAccessible impl
   // because we don't want EDITABLE or SELECTABLE_TEXT
   uint64_t state = Accessible::NativeState();
 
   Accessible* select = GetSelect();
@@ -260,23 +260,23 @@ HTMLSelectOptionAccessible::RelativeBoun
 void
 HTMLSelectOptionAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Select)
     aName.AssignLiteral("select");
 }
 
 uint8_t
-HTMLSelectOptionAccessible::ActionCount()
+HTMLSelectOptionAccessible::ActionCount() const
 {
   return 1;
 }
 
 bool
-HTMLSelectOptionAccessible::DoAction(uint8_t aIndex)
+HTMLSelectOptionAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Select)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -319,29 +319,29 @@ HTMLSelectOptGroupAccessible::NativeInte
 
 bool
 HTMLSelectOptGroupAccessible::IsAcceptableChild(nsIContent* aEl) const
 {
   return aEl->IsCharacterData() || aEl->IsHTMLElement(nsGkAtoms::option);
 }
 
 uint8_t
-HTMLSelectOptGroupAccessible::ActionCount()
+HTMLSelectOptGroupAccessible::ActionCount() const
 {
   return 0;
 }
 
 void
 HTMLSelectOptGroupAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
 }
 
 bool
-HTMLSelectOptGroupAccessible::DoAction(uint8_t aIndex)
+HTMLSelectOptGroupAccessible::DoAction(uint8_t aIndex) const
 {
   return false;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLComboboxAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -392,17 +392,17 @@ HTMLComboboxAccessible::Shutdown()
     mListAccessible->Shutdown();
     mListAccessible = nullptr;
   }
 
   AccessibleWrap::Shutdown();
 }
 
 uint64_t
-HTMLComboboxAccessible::NativeState()
+HTMLComboboxAccessible::NativeState() const
 {
   // As a HTMLComboboxAccessible we can have the following states:
   // FOCUSED, FOCUSABLE, HASPOPUP, EXPANDED, COLLAPSED
   // Get focus status from base class
   uint64_t state = Accessible::NativeState();
 
   nsIComboboxControlFrame* comboFrame = do_QueryFrame(GetFrame());
   if (comboFrame && comboFrame->IsDroppedDown())
@@ -426,32 +426,32 @@ HTMLComboboxAccessible::Description(nsSt
 
   // Otherwise use description of selected option.
   Accessible* option = SelectedOption();
   if (option)
     option->Description(aDescription);
 }
 
 void
-HTMLComboboxAccessible::Value(nsString& aValue)
+HTMLComboboxAccessible::Value(nsString& aValue) const
 {
   // Use accessible name of selected option.
   Accessible* option = SelectedOption();
   if (option)
     option->Name(aValue);
 }
 
 uint8_t
-HTMLComboboxAccessible::ActionCount()
+HTMLComboboxAccessible::ActionCount() const
 {
   return 1;
 }
 
 bool
-HTMLComboboxAccessible::DoAction(uint8_t aIndex)
+HTMLComboboxAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -563,17 +563,17 @@ HTMLComboboxListAccessible::GetFrame() c
 
 role
 HTMLComboboxListAccessible::NativeRole() const
 {
   return roles::COMBOBOX_LIST;
 }
 
 uint64_t
-HTMLComboboxListAccessible::NativeState()
+HTMLComboboxListAccessible::NativeState() const
 {
   // As a HTMLComboboxListAccessible we can have the following states:
   // FOCUSED, FOCUSABLE, FLOATING, INVISIBLE
   // Get focus status from base class
   uint64_t state = Accessible::NativeState();
 
   nsIComboboxControlFrame* comboFrame = do_QueryFrame(mParent->GetFrame());
   if (comboFrame && comboFrame->IsDroppedDown())
--- a/accessible/html/HTMLSelectAccessible.h
+++ b/accessible/html/HTMLSelectAccessible.h
@@ -33,17 +33,17 @@ class HTMLSelectListAccessible : public 
 {
 public:
 
   HTMLSelectListAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~HTMLSelectListAccessible() {}
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 
   // SelectAccessible
   virtual bool SelectAll() override;
   virtual bool UnselectAll() override;
 
   // Widgets
   virtual bool IsWidget() const override;
@@ -61,34 +61,34 @@ class HTMLSelectOptionAccessible : publi
 public:
   enum { eAction_Select = 0 };
 
   HTMLSelectOptionAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~HTMLSelectOptionAccessible() {}
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   virtual int32_t GetLevelInternal() override;
   virtual nsRect RelativeBounds(nsIFrame** aBoundingFrame) const override;
   virtual void SetSelected(bool aSelect) override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
 private:
 
   /**
    * Return a select accessible the option belongs to if any.
    */
   Accessible* GetSelect() const
   {
@@ -135,19 +135,19 @@ public:
   virtual ~HTMLSelectOptGroupAccessible() {}
 
   // Accessible
   virtual a11y::role NativeRole() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 };
 
 /** ------------------------------------------------------ */
 /**  Finally, the Combobox widgets                         */
 /** ------------------------------------------------------ */
 
 class HTMLComboboxListAccessible;
 
@@ -160,26 +160,26 @@ public:
   enum { eAction_Click = 0 };
 
   HTMLComboboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
   virtual ~HTMLComboboxAccessible() {}
 
   // Accessible
   virtual void Shutdown() override;
   virtual void Description(nsString& aDescription) override;
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual bool RemoveChild(Accessible* aChild) override;
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
   virtual Accessible* CurrentItem() const override;
   virtual void SetCurrentItem(const Accessible* aItem) override;
 
@@ -204,17 +204,17 @@ public:
 
   HTMLComboboxListAccessible(Accessible* aParent, nsIContent* aContent,
                              DocAccessible* aDoc);
   virtual ~HTMLComboboxListAccessible() {}
 
   // Accessible
   virtual nsIFrame* GetFrame() const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual nsRect RelativeBounds(nsIFrame** aBoundingFrame) const override;
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 
   // Widgets
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
 };
 
--- a/accessible/html/HTMLTableAccessible.cpp
+++ b/accessible/html/HTMLTableAccessible.cpp
@@ -57,17 +57,17 @@ HTMLTableCellAccessible::NativeRole() co
 {
   if (mContent->IsMathMLElement(nsGkAtoms::mtd_)) {
     return roles::MATHML_CELL;
   }
   return roles::CELL;
 }
 
 uint64_t
-HTMLTableCellAccessible::NativeState()
+HTMLTableCellAccessible::NativeState() const
 {
   uint64_t state = HyperTextAccessibleWrap::NativeState();
 
   nsIFrame *frame = mContent->GetPrimaryFrame();
   NS_ASSERTION(frame, "No frame for valid cell accessible!");
 
   if (frame && frame->IsSelected())
     state |= states::SELECTED;
@@ -399,23 +399,23 @@ HTMLTableAccessible::NativeRole() const
 {
   if (mContent->IsMathMLElement(nsGkAtoms::mtable_)) {
     return roles::MATHML_TABLE;
   }
   return roles::TABLE;
 }
 
 uint64_t
-HTMLTableAccessible::NativeState()
+HTMLTableAccessible::NativeState() const
 {
   return Accessible::NativeState() | states::READONLY;
 }
 
 ENameValueFlag
-HTMLTableAccessible::NativeName(nsString& aName)
+HTMLTableAccessible::NativeName(nsString& aName) const
 {
   ENameValueFlag nameFlag = Accessible::NativeName(aName);
   if (!aName.IsEmpty())
     return nameFlag;
 
   // Use table caption as a name.
   Accessible* caption = Caption();
   if (caption) {
@@ -450,17 +450,17 @@ HTMLTableAccessible::NativeAttributes()
 
   return attributes.forget();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLTableAccessible: Accessible
 
 Relation
-HTMLTableAccessible::RelationByType(RelationType aType)
+HTMLTableAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType == RelationType::LABELLED_BY)
     rel.AppendTarget(Caption());
 
   return rel;
 }
 
@@ -1099,17 +1099,17 @@ HTMLTableAccessible::IsProbablyLayoutTab
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // HTMLCaptionAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 Relation
-HTMLCaptionAccessible::RelationByType(RelationType aType)
+HTMLCaptionAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessible::RelationByType(aType);
   if (aType == RelationType::LABEL_FOR)
     rel.AppendTarget(Parent());
 
   return rel;
 }
 
--- a/accessible/html/HTMLTableAccessible.h
+++ b/accessible/html/HTMLTableAccessible.h
@@ -30,17 +30,17 @@ public:
 
   // nsISupports
   NS_INLINE_DECL_REFCOUNTING_INHERITED(HTMLTableCellAccessible,
                                        HyperTextAccessibleWrap)
 
   // Accessible
   virtual TableCellAccessible* AsTableCell() override { return this; }
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
   virtual mozilla::a11y::GroupPos GroupPosition() override;
 
   // TableCellAccessible
   virtual TableAccessible* Table() const override;
   virtual uint32_t ColIdx() const override;
   virtual uint32_t RowIdx() const override;
@@ -158,27 +158,27 @@ public:
   virtual void UnselectRow(uint32_t aRowIdx) override;
   virtual bool IsProbablyLayoutTable() override;
   virtual Accessible* AsAccessible() override { return this; }
 
   // Accessible
   virtual TableAccessible* AsTable() override { return this; }
   virtual void Description(nsString& aDescription) override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
-  virtual Relation RelationByType(RelationType aRelationType) override;
+  virtual Relation RelationByType(RelationType aRelationType) const override;
 
   virtual bool InsertChildAt(uint32_t aIndex, Accessible* aChild) override;
 
 protected:
   virtual ~HTMLTableAccessible() {}
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   // HTMLTableAccessible
 
   /**
    * Add row or column to selection.
    *
    * @param aIndex   [in] index of row or column to be selected
    * @param aTarget  [in] indicates what should be selected, either row or column
@@ -219,17 +219,17 @@ protected:
 class HTMLCaptionAccessible : public HyperTextAccessibleWrap
 {
 public:
   HTMLCaptionAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     HyperTextAccessibleWrap(aContent, aDoc) { mType = eHTMLCaptionType; }
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual Relation RelationByType(RelationType aRelationType) override;
+  virtual Relation RelationByType(RelationType aRelationType) const override;
 
 protected:
   virtual ~HTMLCaptionAccessible() { }
 };
 
 } // namespace a11y
 } // namespace mozilla
 
--- a/accessible/xul/XULAlertAccessible.cpp
+++ b/accessible/xul/XULAlertAccessible.cpp
@@ -28,23 +28,23 @@ XULAlertAccessible::~XULAlertAccessible(
 
 role
 XULAlertAccessible::NativeRole() const
 {
   return roles::ALERT;
 }
 
 uint64_t
-XULAlertAccessible::NativeState()
+XULAlertAccessible::NativeState() const
 {
   return Accessible::NativeState() | states::ALERT;
 }
 
 ENameValueFlag
-XULAlertAccessible::Name(nsString& aName)
+XULAlertAccessible::Name(nsString& aName) const
 {
   // Screen readers need to read contents of alert, not the accessible name.
   // If we have both some screen readers will read the alert twice.
   aName.Truncate();
   return eNameOK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
--- a/accessible/xul/XULAlertAccessible.h
+++ b/accessible/xul/XULAlertAccessible.h
@@ -18,19 +18,19 @@ namespace a11y {
 class XULAlertAccessible : public AccessibleWrap
 {
 public:
   XULAlertAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   NS_INLINE_DECL_REFCOUNTING_INHERITED(XULAlertAccessible, AccessibleWrap)
 
   // Accessible
-  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) override;
+  virtual mozilla::a11y::ENameValueFlag Name(nsString& aName) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   ~XULAlertAccessible();
 };
--- a/accessible/xul/XULColorPickerAccessible.cpp
+++ b/accessible/xul/XULColorPickerAccessible.cpp
@@ -24,31 +24,31 @@ XULColorPickerTileAccessible::
   AccessibleWrap(aContent, aDoc)
 {
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULColorPickerTileAccessible: Accessible
 
 void
-XULColorPickerTileAccessible::Value(nsString& aValue)
+XULColorPickerTileAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::color, aValue);
 }
 
 role
 XULColorPickerTileAccessible::NativeRole() const
 {
   return roles::PUSHBUTTON;
 }
 
 uint64_t
-XULColorPickerTileAccessible::NativeState()
+XULColorPickerTileAccessible::NativeState() const
 {
   uint64_t state = AccessibleWrap::NativeState();
   if (mContent->AsElement()->HasAttr(kNameSpaceID_None, nsGkAtoms::selected))
     state |= states::SELECTED;
 
   return state;
 }
 
@@ -84,17 +84,17 @@ XULColorPickerAccessible::
 {
   mGenericTypes |= eMenuButton;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULColorPickerAccessible: Accessible
 
 uint64_t
-XULColorPickerAccessible::NativeState()
+XULColorPickerAccessible::NativeState() const
 {
   uint64_t state = AccessibleWrap::NativeState();
   return state | states::HASPOPUP;
 }
 
 role
 XULColorPickerAccessible::NativeRole() const
 {
--- a/accessible/xul/XULColorPickerAccessible.h
+++ b/accessible/xul/XULColorPickerAccessible.h
@@ -16,19 +16,19 @@ namespace a11y {
  */
 class XULColorPickerTileAccessible : public AccessibleWrap
 {
 public:
   XULColorPickerTileAccessible(nsIContent* aContent,
                                DocAccessible* aDoc);
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   // Widgets
   virtual Accessible* ContainerWidget() const override;
 };
 
 
 /**
@@ -36,17 +36,17 @@ public:
  */
 class XULColorPickerAccessible : public XULColorPickerTileAccessible
 {
 public:
   XULColorPickerAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
 
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
 };
--- a/accessible/xul/XULComboboxAccessible.cpp
+++ b/accessible/xul/XULComboboxAccessible.cpp
@@ -45,17 +45,17 @@ XULComboboxAccessible::
 
 role
 XULComboboxAccessible::NativeRole() const
 {
   return IsAutoComplete() ? roles::AUTOCOMPLETE : roles::COMBOBOX;
 }
 
 uint64_t
-XULComboboxAccessible::NativeState()
+XULComboboxAccessible::NativeState() const
 {
   // As a nsComboboxAccessible we can have the following states:
   //     STATE_FOCUSED
   //     STATE_FOCUSABLE
   //     STATE_HASPOPUP
   //     STATE_EXPANDED
   //     STATE_COLLAPSED
 
@@ -91,35 +91,35 @@ XULComboboxAccessible::Description(nsStr
   if (focusedOptionContent && mDoc) {
     Accessible* focusedOptionAcc = mDoc->GetAccessible(focusedOptionContent);
     if (focusedOptionAcc)
       focusedOptionAcc->Description(aDescription);
   }
 }
 
 void
-XULComboboxAccessible::Value(nsString& aValue)
+XULComboboxAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   // The value is the option or text shown entered in the combobox.
   nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
   if (menuList)
     menuList->GetLabel(aValue);
 }
 
 uint8_t
-XULComboboxAccessible::ActionCount()
+XULComboboxAccessible::ActionCount() const
 {
   // Just one action (click).
   return 1;
 }
 
 bool
-XULComboboxAccessible::DoAction(uint8_t aIndex)
+XULComboboxAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != XULComboboxAccessible::eAction_Click)
     return false;
 
   // Programmaticaly toggle the combo box.
   nsCOMPtr<nsIDOMXULMenuListElement> menuList(do_QueryInterface(mContent));
   if (!menuList)
     return false;
--- a/accessible/xul/XULComboboxAccessible.h
+++ b/accessible/xul/XULComboboxAccessible.h
@@ -18,24 +18,24 @@ class XULComboboxAccessible : public Acc
 {
 public:
   enum { eAction_Click = 0 };
 
   XULComboboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual void Description(nsString& aDescription) override;
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
--- a/accessible/xul/XULElementAccessibles.cpp
+++ b/accessible/xul/XULElementAccessibles.cpp
@@ -57,42 +57,42 @@ XULLabelAccessible::
 void
 XULLabelAccessible::Shutdown()
 {
   mValueTextLeaf = nullptr;
   HyperTextAccessibleWrap::Shutdown();
 }
 
 ENameValueFlag
-XULLabelAccessible::NativeName(nsString& aName)
+XULLabelAccessible::NativeName(nsString& aName) const
 {
   // if the value attr doesn't exist, the screen reader must get the accessible text
   // from the accessible text interface or from the children
   if (mValueTextLeaf)
     return mValueTextLeaf->Name(aName);
 
   return Accessible::NativeName(aName);
 }
 
 role
 XULLabelAccessible::NativeRole() const
 {
   return roles::LABEL;
 }
 
 uint64_t
-XULLabelAccessible::NativeState()
+XULLabelAccessible::NativeState() const
 {
   // Labels and description have read only state
   // They are not focusable or selectable
   return HyperTextAccessibleWrap::NativeState() | states::READONLY;
 }
 
 Relation
-XULLabelAccessible::RelationByType(RelationType aType)
+XULLabelAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = HyperTextAccessibleWrap::RelationByType(aType);
   if (aType == RelationType::LABEL_FOR) {
     // Caption is the label for groupbox
     nsIContent* parent = mContent->GetFlattenedTreeParent();
     if (parent && parent->IsXULElement(nsGkAtoms::caption)) {
       Accessible* parent = Parent();
       if (parent && parent->Role() == roles::GROUPING)
@@ -128,34 +128,34 @@ XULLabelAccessible::UpdateLabelValue(con
 
 role
 XULLabelTextLeafAccessible::NativeRole() const
 {
   return roles::TEXT_LEAF;
 }
 
 uint64_t
-XULLabelTextLeafAccessible::NativeState()
+XULLabelTextLeafAccessible::NativeState() const
 {
   return TextLeafAccessibleWrap::NativeState() | states::READONLY;
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTooltipAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
 XULTooltipAccessible::
   XULTooltipAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   LeafAccessible(aContent, aDoc)
 {
 }
 
 uint64_t
-XULTooltipAccessible::NativeState()
+XULTooltipAccessible::NativeState() const
 {
   return LeafAccessible::NativeState() | states::READONLY;
 }
 
 role
 XULTooltipAccessible::NativeRole() const
 {
   return roles::TOOLTIP;
@@ -175,25 +175,25 @@ XULLinkAccessible::
 XULLinkAccessible::~XULLinkAccessible()
 {
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULLinkAccessible: Accessible
 
 void
-XULLinkAccessible::Value(nsString& aValue)
+XULLinkAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::href, aValue);
 }
 
 ENameValueFlag
-XULLinkAccessible::NativeName(nsString& aName)
+XULLinkAccessible::NativeName(nsString& aName) const
 {
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::value, aName);
   if (!aName.IsEmpty())
     return eNameOK;
 
   nsTextEquivUtils::GetNameFromSubtree(this, aName);
   return aName.IsEmpty() ? eNameOK : eNameFromSubtree;
 }
@@ -207,32 +207,32 @@ XULLinkAccessible::NativeRole() const
 
 uint64_t
 XULLinkAccessible::NativeLinkState() const
 {
   return states::LINKED;
 }
 
 uint8_t
-XULLinkAccessible::ActionCount()
+XULLinkAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULLinkAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
 
   if (aIndex == eAction_Jump)
     aName.AssignLiteral("jump");
 }
 
 bool
-XULLinkAccessible::DoAction(uint8_t aIndex)
+XULLinkAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Jump)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -263,17 +263,17 @@ uint32_t
 XULLinkAccessible::EndOffset()
 {
   if (Accessible::IsLink())
     return Accessible::EndOffset();
   return IndexInParent() + 1;
 }
 
 already_AddRefed<nsIURI>
-XULLinkAccessible::AnchorURIAt(uint32_t aAnchorIndex)
+XULLinkAccessible::AnchorURIAt(uint32_t aAnchorIndex) const
 {
   if (aAnchorIndex != 0)
     return nullptr;
 
   nsAutoString href;
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::href, href);
 
   nsCOMPtr<nsIURI> baseURI = mContent->GetBaseURI();
--- a/accessible/xul/XULElementAccessibles.h
+++ b/accessible/xul/XULElementAccessibles.h
@@ -20,24 +20,24 @@ class XULLabelTextLeafAccessible;
 class XULLabelAccessible : public HyperTextAccessibleWrap
 {
 public:
   XULLabelAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual void Shutdown() override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual uint64_t NativeState() const override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   void UpdateLabelValue(const nsString& aValue);
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
 private:
   RefPtr<XULLabelTextLeafAccessible> mValueTextLeaf;
 };
 
 inline XULLabelAccessible*
 Accessible::AsXULLabel()
 {
@@ -55,61 +55,61 @@ public:
   XULLabelTextLeafAccessible(nsIContent* aContent, DocAccessible* aDoc) :
     TextLeafAccessibleWrap(aContent, aDoc)
   { mStateFlags |= eSharedNode; }
 
   virtual ~XULLabelTextLeafAccessible() { }
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 };
 
 
 /**
  * Used for XUL tooltip element.
  */
 class XULTooltipAccessible : public LeafAccessible
 {
 
 public:
   XULTooltipAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 };
 
 class XULLinkAccessible : public XULLabelAccessible
 {
 
 public:
   XULLinkAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
   virtual uint64_t NativeLinkState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // HyperLinkAccessible
   virtual bool IsLink() const override;
   virtual uint32_t StartOffset() override;
   virtual uint32_t EndOffset() override;
-  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) override;
+  virtual already_AddRefed<nsIURI> AnchorURIAt(uint32_t aAnchorIndex) const override;
 
 protected:
   virtual ~XULLinkAccessible();
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   enum { eAction_Jump = 0 };
 
 };
 
 } // namespace a11y
 } // namespace mozilla
 
--- a/accessible/xul/XULFormControlAccessible.cpp
+++ b/accessible/xul/XULFormControlAccessible.cpp
@@ -51,30 +51,30 @@ XULButtonAccessible::~XULButtonAccessibl
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULButtonAccessible: nsISupports
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULButtonAccessible: nsIAccessible
 
 uint8_t
-XULButtonAccessible::ActionCount()
+XULButtonAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULButtonAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("press");
 }
 
 bool
-XULButtonAccessible::DoAction(uint8_t aIndex)
+XULButtonAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -83,17 +83,17 @@ XULButtonAccessible::DoAction(uint8_t aI
 
 role
 XULButtonAccessible::NativeRole() const
 {
   return roles::PUSHBUTTON;
 }
 
 uint64_t
-XULButtonAccessible::NativeState()
+XULButtonAccessible::NativeState() const
 {
   // Possible states: focused, focusable, unavailable(disabled).
 
   // get focus and disable status from base class
   uint64_t state = Accessible::NativeState();
 
   // Buttons can be checked -- they simply appear pressed in rather than checked
   nsCOMPtr<nsIDOMXULButtonElement> xulButtonElement(do_QueryInterface(mContent));
@@ -200,17 +200,17 @@ XULButtonAccessible::ContainsMenu() cons
 
 XULDropmarkerAccessible::
   XULDropmarkerAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   LeafAccessible(aContent, aDoc)
 {
 }
 
 uint8_t
-XULDropmarkerAccessible::ActionCount()
+XULDropmarkerAccessible::ActionCount() const
 {
   return 1;
 }
 
 bool
 XULDropmarkerAccessible::DropmarkerOpen(bool aToggleOpen) const
 {
   bool isOpen = false;
@@ -249,33 +249,33 @@ XULDropmarkerAccessible::ActionNameAt(ui
     if (DropmarkerOpen(false))
       aName.AssignLiteral("close");
     else
       aName.AssignLiteral("open");
   }
 }
 
 bool
-XULDropmarkerAccessible::DoAction(uint8_t index)
+XULDropmarkerAccessible::DoAction(uint8_t index) const
 {
   if (index == eAction_Click) {
     DropmarkerOpen(true); // Reverse the open attribute
     return true;
   }
   return false;
 }
 
 role
 XULDropmarkerAccessible::NativeRole() const
 {
   return roles::PUSHBUTTON;
 }
 
 uint64_t
-XULDropmarkerAccessible::NativeState()
+XULDropmarkerAccessible::NativeState() const
 {
   return DropmarkerOpen(false) ? states::PRESSED : 0;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULCheckboxAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -287,44 +287,44 @@ XULCheckboxAccessible::
 
 role
 XULCheckboxAccessible::NativeRole() const
 {
   return roles::CHECKBUTTON;
 }
 
 uint8_t
-XULCheckboxAccessible::ActionCount()
+XULCheckboxAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULCheckboxAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click) {
     if (NativeState() & states::CHECKED)
       aName.AssignLiteral("uncheck");
     else
       aName.AssignLiteral("check");
   }
 }
 
 bool
-XULCheckboxAccessible::DoAction(uint8_t aIndex)
+XULCheckboxAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
 uint64_t
-XULCheckboxAccessible::NativeState()
+XULCheckboxAccessible::NativeState() const
 {
   // Possible states: focused, focusable, unavailable(disabled), checked
   // Get focus and disable status from base class
   uint64_t state = LeafAccessible::NativeState();
 
   state |= states::CHECKABLE;
 
   // Determine Checked state
@@ -353,29 +353,29 @@ XULGroupboxAccessible::
 
 role
 XULGroupboxAccessible::NativeRole() const
 {
   return roles::GROUPING;
 }
 
 ENameValueFlag
-XULGroupboxAccessible::NativeName(nsString& aName)
+XULGroupboxAccessible::NativeName(nsString& aName) const
 {
   // XXX: we use the first related accessible only.
   Accessible* label =
     RelationByType(RelationType::LABELLED_BY).Next();
   if (label)
     return label->Name(aName);
 
   return eNameOK;
 }
 
 Relation
-XULGroupboxAccessible::RelationByType(RelationType aType)
+XULGroupboxAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType != RelationType::LABELLED_BY)
     return rel;
 
   // The label for xul:groupbox is generated from xul:label that is
   // inside the anonymous content of the xul:caption.
   // The xul:label has an accessible object but the xul:caption does not
@@ -403,17 +403,17 @@ XULGroupboxAccessible::RelationByType(Re
 
 XULRadioButtonAccessible::
   XULRadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   RadioButtonAccessible(aContent, aDoc)
 {
 }
 
 uint64_t
-XULRadioButtonAccessible::NativeState()
+XULRadioButtonAccessible::NativeState() const
 {
   uint64_t state = LeafAccessible::NativeState();
   state |= states::CHECKABLE;
 
   nsCOMPtr<nsIDOMXULSelectControlItemElement> radioButton =
     do_QueryInterface(mContent);
   if (radioButton) {
     bool selected = false;   // Radio buttons can be selected
@@ -579,17 +579,17 @@ XULToolbarAccessible::
 
 role
 XULToolbarAccessible::NativeRole() const
 {
   return roles::TOOLBAR;
 }
 
 ENameValueFlag
-XULToolbarAccessible::NativeName(nsString& aName)
+XULToolbarAccessible::NativeName(nsString& aName) const
 {
   if (mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::toolbarname, aName))
     aName.CompressWhitespace();
 
   return eNameOK;
 }
 
 
@@ -605,12 +605,12 @@ XULToolbarSeparatorAccessible::
 
 role
 XULToolbarSeparatorAccessible::NativeRole() const
 {
   return roles::SEPARATOR;
 }
 
 uint64_t
-XULToolbarSeparatorAccessible::NativeState()
+XULToolbarSeparatorAccessible::NativeState() const
 {
   return 0;
 }
--- a/accessible/xul/XULFormControlAccessible.h
+++ b/accessible/xul/XULFormControlAccessible.h
@@ -32,22 +32,22 @@ public:
   enum { eAction_Click = 0 };
   XULButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // nsISupports
   NS_INLINE_DECL_REFCOUNTING_INHERITED(XULButtonAccessible, AccessibleWrap)
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
   virtual Accessible* ContainerWidget() const override;
 
   virtual bool IsAcceptableChild(nsIContent* aEl) const override;
@@ -66,74 +66,74 @@ protected:
 class XULCheckboxAccessible : public LeafAccessible
 {
 public:
   enum { eAction_Click = 0 };
   XULCheckboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 };
 
 /**
  * Used for XUL dropmarker element.
  */
 class XULDropmarkerAccessible : public LeafAccessible
 {
 public:
   enum { eAction_Click = 0 };
   XULDropmarkerAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
 private:
   bool DropmarkerOpen(bool aToggleOpen) const;
 };
 
 /**
  * Used for XUL groupbox element.
  */
 class XULGroupboxAccessible final : public AccessibleWrap
 {
 public:
   XULGroupboxAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for XUL radio element (radio button).
  */
 class XULRadioButtonAccessible : public RadioButtonAccessible
 {
 
 public:
   XULRadioButtonAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   // Widgets
   virtual Accessible* ContainerWidget() const override;
 };
 
 /**
  * Used for XUL radiogroup element.
@@ -189,30 +189,30 @@ class XULToolbarAccessible : public Acce
 public:
   XULToolbarAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for XUL toolbarseparator element.
  */
 class XULToolbarSeparatorAccessible : public LeafAccessible
 {
 public:
   XULToolbarSeparatorAccessible(nsIContent* aContent,
                                 DocAccessible* aDoc);
 
   // Accessible
   virtual mozilla::a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
 
--- a/accessible/xul/XULListboxAccessible.cpp
+++ b/accessible/xul/XULListboxAccessible.cpp
@@ -36,17 +36,17 @@ XULColumAccessible::
 
 role
 XULColumAccessible::NativeRole() const
 {
   return roles::LIST;
 }
 
 uint64_t
-XULColumAccessible::NativeState()
+XULColumAccessible::NativeState() const
 {
   return states::READONLY;
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULColumnItemAccessible
 ////////////////////////////////////////////////////////////////////////////////
@@ -59,36 +59,36 @@ XULColumnItemAccessible::
 
 role
 XULColumnItemAccessible::NativeRole() const
 {
   return roles::COLUMNHEADER;
 }
 
 uint64_t
-XULColumnItemAccessible::NativeState()
+XULColumnItemAccessible::NativeState() const
 {
   return states::READONLY;
 }
 
 uint8_t
-XULColumnItemAccessible::ActionCount()
+XULColumnItemAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULColumnItemAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("click");
 }
 
 bool
-XULColumnItemAccessible::DoAction(uint8_t aIndex)
+XULColumnItemAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   DoCommand();
   return true;
 }
 
@@ -111,17 +111,17 @@ XULListboxAccessible::
   if (IsMulticolumn())
     mGenericTypes |= eTable;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULListboxAccessible: Accessible
 
 uint64_t
-XULListboxAccessible::NativeState()
+XULListboxAccessible::NativeState() const
 {
   // As a XULListboxAccessible we can have the following states:
   //   FOCUSED, READONLY, FOCUSABLE
 
   // Get focus status from base class
   uint64_t states = Accessible::NativeState();
 
   // see if we are multiple select if so set ourselves as such
@@ -133,17 +133,17 @@ XULListboxAccessible::NativeState()
 
   return states;
 }
 
 /**
   * Our value is the label of our ( first ) selected child.
   */
 void
-XULListboxAccessible::Value(nsString& aValue)
+XULListboxAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 
   nsCOMPtr<nsIDOMXULSelectControlElement> select(do_QueryInterface(mContent));
   if (select) {
     nsCOMPtr<nsIDOMXULSelectControlItemElement> selectedItem;
     select->GetSelectedItem(getter_AddRefs(selectedItem));
     if (selectedItem)
@@ -572,17 +572,17 @@ XULListitemAccessible::Description(nsStr
 ////////////////////////////////////////////////////////////////////////////////
 // XULListitemAccessible: Accessible
 
 /**
   * If there is a Listcell as a child ( not anonymous ) use it, otherwise
   *   default to getting the name from GetXULName
   */
 ENameValueFlag
-XULListitemAccessible::NativeName(nsString& aName)
+XULListitemAccessible::NativeName(nsString& aName) const
 {
   nsIContent* childContent = mContent->GetFirstChild();
   if (childContent) {
     if (childContent->NodeInfo()->Equals(nsGkAtoms::listcell,
                                          kNameSpaceID_XUL)) {
       childContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
       return eNameOK;
     }
@@ -608,17 +608,17 @@ XULListitemAccessible::NativeRole() cons
 
   if (mParent && mParent->Role() == roles::COMBOBOX_LIST)
     return roles::COMBOBOX_OPTION;
 
   return roles::RICH_OPTION;
 }
 
 uint64_t
-XULListitemAccessible::NativeState()
+XULListitemAccessible::NativeState() const
 {
   if (mIsCheckbox)
     return XULMenuitemAccessible::NativeState();
 
   uint64_t states = NativeInteractiveState();
 
   nsCOMPtr<nsIDOMXULSelectControlItemElement> listItem =
     do_QueryInterface(mContent);
--- a/accessible/xul/XULListboxAccessible.h
+++ b/accessible/xul/XULListboxAccessible.h
@@ -23,36 +23,36 @@ namespace a11y {
  */
 class XULColumAccessible : public AccessibleWrap
 {
 public:
   XULColumAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 };
 
 /**
  * XULColumnItemAccessible are accessibles for list and tree column elements
  * (xul:listcol and xul:treecol).
  */
 class XULColumnItemAccessible : public LeafAccessible
 {
 public:
   XULColumnItemAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   enum { eAction_Click = 0 };
 };
 
 /*
  * A class the represents the XUL Listbox widget.
  */
 class XULListboxAccessible : public XULSelectControlAccessible,
@@ -75,20 +75,20 @@ public:
   virtual void SelectedCellIndices(nsTArray<uint32_t>* aCells) override;
   virtual void SelectedColIndices(nsTArray<uint32_t>* aCols) override;
   virtual void SelectedRowIndices(nsTArray<uint32_t>* aRows) override;
   virtual void SelectRow(uint32_t aRowIdx) override;
   virtual void UnselectRow(uint32_t aRowIdx) override;
   virtual Accessible* AsAccessible() override { return this; }
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual TableAccessible* AsTable() override { return this; }
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
 
   virtual Accessible* ContainerWidget() const override;
 
@@ -109,30 +109,30 @@ public:
   NS_INLINE_DECL_REFCOUNTING_INHERITED(XULListitemAccessible,
                                        XULMenuitemAccessible)
 
   XULListitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual void Description(nsString& aDesc) override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   // Actions
   virtual void ActionNameAt(uint8_t index, nsAString& aName) override;
 
   // Widgets
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   virtual ~XULListitemAccessible();
 
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 
   // XULListitemAccessible
 
   /**
    * Return listbox accessible for the listitem.
    */
   Accessible* GetListAccessible() const;
 
--- a/accessible/xul/XULMenuAccessible.cpp
+++ b/accessible/xul/XULMenuAccessible.cpp
@@ -38,17 +38,17 @@ using namespace mozilla::a11y;
 XULMenuitemAccessible::
   XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   AccessibleWrap(aContent, aDoc)
 {
   mStateFlags |= eNoXBLKids;
 }
 
 uint64_t
-XULMenuitemAccessible::NativeState()
+XULMenuitemAccessible::NativeState() const
 {
   uint64_t state = Accessible::NativeState();
 
   // Has Popup?
   if (mContent->NodeInfo()->Equals(nsGkAtoms::menu, kNameSpaceID_XUL)) {
     state |= states::HASPOPUP;
     if (mContent->AsElement()->HasAttr(kNameSpaceID_None, nsGkAtoms::open))
       state |= states::EXPANDED;
@@ -128,17 +128,17 @@ XULMenuitemAccessible::NativeInteractive
 
     return states::UNAVAILABLE | states::FOCUSABLE | states::SELECTABLE;
   }
 
   return states::FOCUSABLE | states::SELECTABLE;
 }
 
 ENameValueFlag
-XULMenuitemAccessible::NativeName(nsString& aName)
+XULMenuitemAccessible::NativeName(nsString& aName) const
 {
   mContent->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
   return eNameOK;
 }
 
 void
 XULMenuitemAccessible::Description(nsString& aDescription)
 {
@@ -264,17 +264,17 @@ XULMenuitemAccessible::NativeRole() cons
 
 int32_t
 XULMenuitemAccessible::GetLevelInternal()
 {
   return nsAccUtils::GetLevelForXULContainerItem(mContent);
 }
 
 bool
-XULMenuitemAccessible::DoAction(uint8_t index)
+XULMenuitemAccessible::DoAction(uint8_t index) const
 {
   if (index == eAction_Click) {   // default action
     DoCommand();
     return true;
   }
 
   return false;
 }
@@ -282,17 +282,17 @@ XULMenuitemAccessible::DoAction(uint8_t 
 void
 XULMenuitemAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Click)
     aName.AssignLiteral("click");
 }
 
 uint8_t
-XULMenuitemAccessible::ActionCount()
+XULMenuitemAccessible::ActionCount() const
 {
   return 1;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULMenuitemAccessible: Widgets
 
 bool
@@ -349,49 +349,49 @@ XULMenuitemAccessible::ContainerWidget()
 
 XULMenuSeparatorAccessible::
   XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   XULMenuitemAccessible(aContent, aDoc)
 {
 }
 
 uint64_t
-XULMenuSeparatorAccessible::NativeState()
+XULMenuSeparatorAccessible::NativeState() const
 {
   // Isn't focusable, but can be offscreen/invisible -- only copy those states
   return XULMenuitemAccessible::NativeState() &
     (states::OFFSCREEN | states::INVISIBLE);
 }
 
 ENameValueFlag
-XULMenuSeparatorAccessible::NativeName(nsString& aName)
+XULMenuSeparatorAccessible::NativeName(nsString& aName) const
 {
   return eNameOK;
 }
 
 role
 XULMenuSeparatorAccessible::NativeRole() const
 {
   return roles::SEPARATOR;
 }
 
 bool
-XULMenuSeparatorAccessible::DoAction(uint8_t index)
+XULMenuSeparatorAccessible::DoAction(uint8_t index) const
 {
   return false;
 }
 
 void
 XULMenuSeparatorAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
 }
 
 uint8_t
-XULMenuSeparatorAccessible::ActionCount()
+XULMenuSeparatorAccessible::ActionCount() const
 {
   return 0;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULMenupopupAccessible
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -407,17 +407,17 @@ XULMenupopupAccessible::
   mSelectControl = do_QueryInterface(mContent->GetFlattenedTreeParent());
   if (!mSelectControl)
     mGenericTypes &= ~eSelect;
 
   mStateFlags |= eNoXBLKids;
 }
 
 uint64_t
-XULMenupopupAccessible::NativeState()
+XULMenupopupAccessible::NativeState() const
 {
   uint64_t state = Accessible::NativeState();
 
 #ifdef DEBUG
   // We are onscreen if our parent is active
   bool isActive =
     mContent->AsElement()->HasAttr(kNameSpaceID_None, nsGkAtoms::menuactive);
   if (!isActive) {
@@ -435,17 +435,17 @@ XULMenupopupAccessible::NativeState()
 
   if (state & states::INVISIBLE)
     state |= states::OFFSCREEN | states::COLLAPSED;
 
   return state;
 }
 
 ENameValueFlag
-XULMenupopupAccessible::NativeName(nsString& aName)
+XULMenupopupAccessible::NativeName(nsString& aName) const
 {
   nsIContent* content = mContent;
   while (content && aName.IsEmpty()) {
     if (content->IsElement()) {
       content->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::label, aName);
     }
     content = content->GetFlattenedTreeParent();
   }
@@ -539,17 +539,17 @@ XULMenupopupAccessible::ContainerWidget(
 
 XULMenubarAccessible::
   XULMenubarAccessible(nsIContent* aContent, DocAccessible* aDoc) :
   AccessibleWrap(aContent, aDoc)
 {
 }
 
 ENameValueFlag
-XULMenubarAccessible::NativeName(nsString& aName)
+XULMenubarAccessible::NativeName(nsString& aName) const
 {
   aName.AssignLiteral("Application");
   return eNameOK;
 }
 
 role
 XULMenubarAccessible::NativeRole() const
 {
--- a/accessible/xul/XULMenuAccessible.h
+++ b/accessible/xul/XULMenuAccessible.h
@@ -21,82 +21,82 @@ class XULMenuitemAccessible : public Acc
 public:
   enum { eAction_Click = 0 };
 
   XULMenuitemAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual void Description(nsString& aDescription) override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual int32_t GetLevelInternal() override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
   virtual KeyBinding AccessKey() const override;
   virtual KeyBinding KeyboardShortcut() const override;
 
   // Widgets
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for XUL menuseparator element.
  */
 class XULMenuSeparatorAccessible : public XULMenuitemAccessible
 {
 public:
   XULMenuSeparatorAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 
 /**
  * Used for XUL menupopup and panel.
  */
 class XULMenupopupAccessible : public XULSelectControlAccessible
 {
 public:
   XULMenupopupAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
 
   // Widgets
   virtual bool IsWidget() const override;
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
 
   virtual Accessible* ContainerWidget() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 /**
  * Used for XUL menubar element.
  */
 class XULMenubarAccessible : public AccessibleWrap
 {
 public:
@@ -108,15 +108,15 @@ public:
   // Widget
   virtual bool IsActiveWidget() const override;
   virtual bool AreItemsOperable() const override;
   virtual Accessible* CurrentItem() const override;
   virtual void SetCurrentItem(const Accessible* aItem) override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
--- a/accessible/xul/XULSliderAccessible.cpp
+++ b/accessible/xul/XULSliderAccessible.cpp
@@ -54,37 +54,37 @@ XULSliderAccessible::NativeInteractiveSt
 bool
 XULSliderAccessible::NativelyUnavailable() const
 {
   return mContent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::disabled,
                                             nsGkAtoms::_true, eCaseMatters);
 }
 
 void
-XULSliderAccessible::Value(nsString& aValue)
+XULSliderAccessible::Value(nsString& aValue) const
 {
   GetSliderAttr(nsGkAtoms::curpos, aValue);
 }
 
 uint8_t
-XULSliderAccessible::ActionCount()
+XULSliderAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULSliderAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   aName.Truncate();
   if (aIndex == 0)
     aName.AssignLiteral("activate");
 }
 
 bool
-XULSliderAccessible::DoAction(uint8_t aIndex)
+XULSliderAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != 0)
     return false;
 
   dom::Element* sliderElm = GetSliderElement();
   if (sliderElm)
     DoCommand(sliderElm);
 
--- a/accessible/xul/XULSliderAccessible.h
+++ b/accessible/xul/XULSliderAccessible.h
@@ -15,32 +15,32 @@ namespace a11y {
  * Used for XUL slider and scale elements.
  */
 class XULSliderAccessible : public AccessibleWrap
 {
 public:
   XULSliderAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual bool NativelyUnavailable() const override;
 
   // Value
   virtual double MaxValue() const override;
   virtual double MinValue() const override;
   virtual double CurValue() const override;
   virtual double Step() const override;
   virtual bool SetCurValue(double aValue) override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
 protected:
   /**
    * Return anonymous slider element.
    */
   dom::Element* GetSliderElement() const;
 
   nsresult GetSliderAttr(nsAtom *aName, nsAString& aValue) const;
--- a/accessible/xul/XULTabAccessible.cpp
+++ b/accessible/xul/XULTabAccessible.cpp
@@ -30,30 +30,30 @@ XULTabAccessible::
   HyperTextAccessibleWrap(aContent, aDoc)
 {
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTabAccessible: Accessible
 
 uint8_t
-XULTabAccessible::ActionCount()
+XULTabAccessible::ActionCount() const
 {
   return 1;
 }
 
 void
 XULTabAccessible::ActionNameAt(uint8_t aIndex, nsAString& aName)
 {
   if (aIndex == eAction_Switch)
     aName.AssignLiteral("switch");
 }
 
 bool
-XULTabAccessible::DoAction(uint8_t index)
+XULTabAccessible::DoAction(uint8_t index) const
 {
   if (index == eAction_Switch) {
     // XXXbz Could this just FromContent?
     RefPtr<nsXULElement> tab = nsXULElement::FromNodeOrNull(mContent);
     if (tab) {
       tab->Click(mozilla::dom::CallerType::System);
       return true;
     }
@@ -66,17 +66,17 @@ XULTabAccessible::DoAction(uint8_t index
 
 role
 XULTabAccessible::NativeRole() const
 {
   return roles::PAGETAB;
 }
 
 uint64_t
-XULTabAccessible::NativeState()
+XULTabAccessible::NativeState() const
 {
   // Possible states: focused, focusable, unavailable(disabled), offscreen.
 
   // get focus and disable status from base class
   uint64_t state = AccessibleWrap::NativeState();
 
   // Check whether the tab is selected and/or pinned
   nsCOMPtr<nsIDOMXULSelectControlItemElement> tab(do_QueryInterface(mContent));
@@ -97,17 +97,17 @@ XULTabAccessible::NativeState()
 uint64_t
 XULTabAccessible::NativeInteractiveState() const
 {
   uint64_t state = Accessible::NativeInteractiveState();
   return (state & states::UNAVAILABLE) ? state : state | states::SELECTABLE;
 }
 
 Relation
-XULTabAccessible::RelationByType(RelationType aType)
+XULTabAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType != RelationType::LABEL_FOR)
     return rel;
 
   // Expose 'LABEL_FOR' relation on tab accessible for tabpanel accessible.
   nsCOMPtr<nsIDOMXULRelatedElement> tabsElm =
     do_QueryInterface(mContent->GetParent());
@@ -138,29 +138,29 @@ XULTabsAccessible::
 
 role
 XULTabsAccessible::NativeRole() const
 {
   return roles::PAGETABLIST;
 }
 
 uint8_t
-XULTabsAccessible::ActionCount()
+XULTabsAccessible::ActionCount() const
 {
   return 0;
 }
 
 void
-XULTabsAccessible::Value(nsString& aValue)
+XULTabsAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
 }
 
 ENameValueFlag
-XULTabsAccessible::NativeName(nsString& aName)
+XULTabsAccessible::NativeName(nsString& aName) const
 {
   // no name
   return eNameOK;
 }
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTabpanelsAccessible
@@ -184,17 +184,17 @@ XULTabpanelAccessible::
 
 role
 XULTabpanelAccessible::NativeRole() const
 {
   return roles::PROPERTYPAGE;
 }
 
 Relation
-XULTabpanelAccessible::RelationByType(RelationType aType)
+XULTabpanelAccessible::RelationByType(RelationType aType) const
 {
   Relation rel = AccessibleWrap::RelationByType(aType);
   if (aType != RelationType::LABELLED_BY)
     return rel;
 
   // Expose 'LABELLED_BY' relation on tabpanel accessible for tab accessible.
   nsCOMPtr<nsIDOMXULRelatedElement> tabpanelsElm =
     do_QueryInterface(mContent->GetParent());
--- a/accessible/xul/XULTabAccessible.h
+++ b/accessible/xul/XULTabAccessible.h
@@ -21,45 +21,45 @@ class XULTabAccessible : public HyperTex
 {
 public:
   enum { eAction_Switch = 0 };
 
   XULTabAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 };
 
 
 /**
  * A container of tab objects, xul:tabs element.
  */
 class XULTabsAccessible : public XULSelectControlAccessible
 {
 public:
   XULTabsAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
 
 protected:
   // Accessible
-  virtual ENameValueFlag NativeName(nsString& aName) override;
+  virtual ENameValueFlag NativeName(nsString& aName) const override;
 };
 
 
 /**
  * A container of tab panels, xul:tabpanels element.
  */
 class XULTabpanelsAccessible : public AccessibleWrap
 {
@@ -82,16 +82,16 @@ public:
  */
 class XULTabpanelAccessible : public AccessibleWrap
 {
 public:
   XULTabpanelAccessible(nsIContent* aContent, DocAccessible* aDoc);
 
   // Accessible
   virtual a11y::role NativeRole() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 };
 
 } // namespace a11y
 } // namespace mozilla
 
 #endif
 
--- a/accessible/xul/XULTreeAccessible.cpp
+++ b/accessible/xul/XULTreeAccessible.cpp
@@ -77,17 +77,17 @@ NS_INTERFACE_MAP_END_INHERITING(Accessib
 
 NS_IMPL_ADDREF_INHERITED(XULTreeAccessible, Accessible)
 NS_IMPL_RELEASE_INHERITED(XULTreeAccessible, Accessible)
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTreeAccessible: Accessible implementation
 
 uint64_t
-XULTreeAccessible::NativeState()
+XULTreeAccessible::NativeState() const
 {
   // Get focus status from base class.
   uint64_t state = Accessible::NativeState();
 
   // readonly state
   state |= states::READONLY;
 
   // multiselectable state.
@@ -104,17 +104,17 @@ XULTreeAccessible::NativeState()
 
   if (!isSingle)
     state |= states::MULTISELECTABLE;
 
   return state;
 }
 
 void
-XULTreeAccessible::Value(nsString& aValue)
+XULTreeAccessible::Value(nsString& aValue) const
 {
   aValue.Truncate();
   if (!mTreeView)
     return;
 
   // Return the value is the first selected child.
   nsCOMPtr<nsITreeSelection> selection;
   mTreeView->GetSelection(getter_AddRefs(selection));
@@ -428,17 +428,17 @@ XULTreeAccessible::ChildCount() const
   int32_t rowCount = 0;
   mTreeView->GetRowCount(&rowCount);
   childCount += rowCount;
 
   return childCount;
 }
 
 Relation
-XULTreeAccessible::RelationByType(RelationType aType)
+XULTreeAccessible::RelationByType(RelationType aType) const
 {
   if (aType == RelationType::NODE_PARENT_OF) {
     if (mTreeView)
       return Relation(new XULTreeItemIterator(this, mTreeView, -1));
 
     return Relation();
   }
 
@@ -773,29 +773,29 @@ XULTreeItemAccessibleBase::SetSelected(b
     bool isSelected = false;
     selection->IsSelected(mRow, &isSelected);
     if (isSelected != aSelect)
       selection->ToggleSelect(mRow);
   }
 }
 
 void
-XULTreeItemAccessibleBase::TakeFocus()
+XULTreeItemAccessibleBase::TakeFocus() const
 {
   nsCOMPtr<nsITreeSelection> selection;
   mTreeView->GetSelection(getter_AddRefs(selection));
   if (selection)
     selection->SetCurrentIndex(mRow);
 
   // focus event will be fired here
   Accessible::TakeFocus();
 }
 
 Relation
-XULTreeItemAccessibleBase::RelationByType(RelationType aType)
+XULTreeItemAccessibleBase::RelationByType(RelationType aType) const
 {
 
   switch (aType) {
     case RelationType::NODE_CHILD_OF: {
       int32_t parentIndex = -1;
       if (!NS_SUCCEEDED(mTreeView->GetParentIndex(mRow, &parentIndex)))
         return Relation();
 
@@ -819,17 +819,17 @@ XULTreeItemAccessibleBase::RelationByTyp
     }
 
     default:
       return Relation();
   }
 }
 
 uint8_t
-XULTreeItemAccessibleBase::ActionCount()
+XULTreeItemAccessibleBase::ActionCount() const
 {
   // "activate" action is available for all treeitems, "expand/collapse" action
   // is avaible for treeitem which is container.
   return IsExpandable() ? 2 : 1;
 }
 
 void
 XULTreeItemAccessibleBase::ActionNameAt(uint8_t aIndex, nsAString& aName)
@@ -845,17 +845,17 @@ XULTreeItemAccessibleBase::ActionNameAt(
     if (isContainerOpen)
       aName.AssignLiteral("collapse");
     else
       aName.AssignLiteral("expand");
   }
 }
 
 bool
-XULTreeItemAccessibleBase::DoAction(uint8_t aIndex)
+XULTreeItemAccessibleBase::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click &&
       (aIndex != eAction_Expand || !IsExpandable()))
     return false;
 
   DoCommand(nullptr, aIndex);
   return true;
 }
@@ -914,17 +914,17 @@ XULTreeItemAccessibleBase::GroupPosition
   groupPos.level = level + 1;
   groupPos.setSize = topCount + bottomCount;
   groupPos.posInSet = topCount;
 
   return groupPos;
 }
 
 uint64_t
-XULTreeItemAccessibleBase::NativeState()
+XULTreeItemAccessibleBase::NativeState() const
 {
 
   // focusable and selectable states
   uint64_t state = NativeInteractiveState();
 
   // expanded/collapsed state
   if (IsExpandable()) {
     bool isContainerOpen;
@@ -1094,17 +1094,17 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
 NS_INTERFACE_MAP_END_INHERITING(XULTreeItemAccessibleBase)
 NS_IMPL_ADDREF_INHERITED(XULTreeItemAccessible, XULTreeItemAccessibleBase)
 NS_IMPL_RELEASE_INHERITED(XULTreeItemAccessible, XULTreeItemAccessibleBase)
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTreeItemAccessible: nsIAccessible implementation
 
 ENameValueFlag
-XULTreeItemAccessible::Name(nsString& aName)
+XULTreeItemAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   GetCellName(mColumn, aName);
   return eNameOK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
--- a/accessible/xul/XULTreeAccessible.h
+++ b/accessible/xul/XULTreeAccessible.h
@@ -35,25 +35,25 @@ public:
                     nsTreeBodyFrame* aTreeframe);
 
   // nsISupports and cycle collection
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULTreeAccessible, Accessible)
 
   // Accessible
   virtual void Shutdown() override;
-  virtual void Value(nsString& aValue) override;
+  virtual void Value(nsString& aValue) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual Accessible* ChildAtPoint(int32_t aX, int32_t aY,
                                    EWhichChildAtPoint aWhichChild) override;
 
   virtual Accessible* GetChildAt(uint32_t aIndex) const override;
   virtual uint32_t ChildCount() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
 
   // SelectAccessible
   virtual void SelectedItems(nsTArray<Accessible*>* aItems) override;
   virtual uint32_t SelectedItemCount() override;
   virtual Accessible* GetSelectedItem(uint32_t aIndex) override;
   virtual bool IsItemSelected(uint32_t aIndex) override;
   virtual bool AddItemToSelection(uint32_t aIndex) override;
   virtual bool RemoveItemFromSelection(uint32_t aIndex) override;
@@ -144,28 +144,28 @@ public:
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULTreeItemAccessibleBase,
                                            AccessibleWrap)
 
   // Accessible
   virtual void Shutdown() override;
   virtual nsRect BoundsInAppUnits() const override;
   virtual nsIntRect BoundsInCSSPixels() const override;
   virtual GroupPos GroupPosition() override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
   virtual int32_t IndexInParent() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
   virtual Accessible* FocusedChild() override;
   virtual void SetSelected(bool aSelect) override;
-  virtual void TakeFocus() override;
+  virtual void TakeFocus() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // Widgets
   virtual Accessible* ContainerWidget() const override;
 
   // XULTreeItemAccessibleBase
   NS_DECLARE_STATIC_IID_ACCESSOR(XULTREEITEMBASEACCESSIBLE_IMPL_CID)
 
   /**
@@ -229,17 +229,17 @@ public:
 
   // nsISupports and cycle collection
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULTreeItemAccessible,
                                            XULTreeItemAccessibleBase)
 
   // Accessible
   virtual void Shutdown() override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
   virtual a11y::role NativeRole() const override;
 
   // XULTreeItemAccessibleBase
   virtual void RowInvalidated(int32_t aStartColIdx, int32_t aEndColIdx) override;
 
 protected:
   virtual ~XULTreeItemAccessible();
 
--- a/accessible/xul/XULTreeGridAccessible.cpp
+++ b/accessible/xul/XULTreeGridAccessible.cpp
@@ -288,17 +288,17 @@ XULTreeGridRowAccessible::Shutdown()
 
 role
 XULTreeGridRowAccessible::NativeRole() const
 {
   return roles::ROW;
 }
 
 ENameValueFlag
-XULTreeGridRowAccessible::Name(nsString& aName)
+XULTreeGridRowAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   // XXX: the row name sholdn't be a concatenation of cell names (bug 664384).
   nsCOMPtr<nsITreeColumn> column = nsCoreUtils::GetFirstSensibleColumn(mTree);
   while (column) {
     if (!aName.IsEmpty())
       aName.Append(' ');
@@ -471,17 +471,17 @@ XULTreeGridCellAccessible::Shutdown()
 
 Accessible*
 XULTreeGridCellAccessible::FocusedChild()
 {
   return nullptr;
 }
 
 ENameValueFlag
-XULTreeGridCellAccessible::Name(nsString& aName)
+XULTreeGridCellAccessible::Name(nsString& aName) const
 {
   aName.Truncate();
 
   if (!mTreeView)
     return eNameOK;
 
   mTreeView->GetCellText(mRow, mColumn, aName);
 
@@ -530,17 +530,17 @@ XULTreeGridCellAccessible::BoundsInAppUn
   nsPresContext* presContext = mDoc->PresContext();
   return nsRect(presContext->CSSPixelsToAppUnits(bounds.X()),
                 presContext->CSSPixelsToAppUnits(bounds.Y()),
                 presContext->CSSPixelsToAppUnits(bounds.Width()),
                 presContext->CSSPixelsToAppUnits(bounds.Height()));
 }
 
 uint8_t
-XULTreeGridCellAccessible::ActionCount()
+XULTreeGridCellAccessible::ActionCount() const
 {
   bool isCycler = false;
   mColumn->GetCycler(&isCycler);
   if (isCycler)
     return 1;
 
   int16_t type;
   mColumn->GetType(&type);
@@ -573,17 +573,17 @@ XULTreeGridCellAccessible::ActionNameAt(
     if (value.EqualsLiteral("true"))
       aName.AssignLiteral("uncheck");
     else
       aName.AssignLiteral("check");
   }
 }
 
 bool
-XULTreeGridCellAccessible::DoAction(uint8_t aIndex)
+XULTreeGridCellAccessible::DoAction(uint8_t aIndex) const
 {
   if (aIndex != eAction_Click)
     return false;
 
   bool isCycler = false;
   mColumn->GetCycler(&isCycler);
   if (isCycler) {
     DoCommand();
@@ -683,17 +683,17 @@ XULTreeGridCellAccessible::NativeAttribu
 
 role
 XULTreeGridCellAccessible::NativeRole() const
 {
   return roles::GRID_CELL;
 }
 
 uint64_t
-XULTreeGridCellAccessible::NativeState()
+XULTreeGridCellAccessible::NativeState() const
 {
   if (!mTreeView)
     return states::DEFUNCT;
 
   // selectable/selected state
   uint64_t states = states::SELECTABLE; // keep in sync with NativeInteractiveState
 
   nsCOMPtr<nsITreeSelection> selection;
@@ -727,17 +727,17 @@ XULTreeGridCellAccessible::NativeInterac
 
 int32_t
 XULTreeGridCellAccessible::IndexInParent() const
 {
   return ColIdx();
 }
 
 Relation
-XULTreeGridCellAccessible::RelationByType(RelationType aType)
+XULTreeGridCellAccessible::RelationByType(RelationType aType) const
 {
   return Relation();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // XULTreeGridCellAccessible: public implementation
 
 bool
--- a/accessible/xul/XULTreeGridAccessible.h
+++ b/accessible/xul/XULTreeGridAccessible.h
@@ -77,17 +77,17 @@ public:
   // nsISupports and cycle collection
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULTreeGridRowAccessible,
                                            XULTreeItemAccessibleBase)
 
   // Accessible
   virtual void Shutdown() override;
   virtual a11y::role NativeRole() const override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
   virtual Accessible* ChildAtPoint(int32_t aX, int32_t aY,
                                    EWhichChildAtPoint aWhichChild) override;
 
   virtual Accessible* GetChildAt(uint32_t aIndex) const override;
   virtual uint32_t ChildCount() const override;
 
   // XULTreeItemAccessibleBase
   XULTreeGridCellAccessible* GetCellAccessible(nsITreeColumn* aColumn)
@@ -123,29 +123,29 @@ public:
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(XULTreeGridCellAccessible,
                                            LeafAccessible)
 
   // Accessible
   virtual void Shutdown() override;
   virtual TableCellAccessible* AsTableCell() override { return this; }
   virtual nsRect BoundsInAppUnits() const override;
   virtual nsIntRect BoundsInCSSPixels() const override;
-  virtual ENameValueFlag Name(nsString& aName) override;
+  virtual ENameValueFlag Name(nsString& aName) const override;
   virtual Accessible* FocusedChild() override;
   virtual already_AddRefed<nsIPersistentProperties> NativeAttributes() override;
   virtual int32_t IndexInParent() const override;
-  virtual Relation RelationByType(RelationType aType) override;
+  virtual Relation RelationByType(RelationType aType) const override;
   virtual a11y::role NativeRole() const override;
-  virtual uint64_t NativeState() override;
+  virtual uint64_t NativeState() const override;
   virtual uint64_t NativeInteractiveState() const override;
 
   // ActionAccessible
-  virtual uint8_t ActionCount() override;
+  virtual uint8_t ActionCount() const override;
   virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;
-  virtual bool DoAction(uint8_t aIndex) override;
+  virtual bool DoAction(uint8_t aIndex) const override;
 
   // TableCellAccessible
   virtual TableAccessible* Table() const override;
   virtual uint32_t ColIdx() const override;
   virtual uint32_t RowIdx() const override;
   virtual void ColHeaderCells(nsTArray<Accessible*>* aHeaderCells) override;
   virtual void RowHeaderCells(nsTArray<Accessible*>* aCells) override { }
   virtual bool Selected() override;
--- a/devtools/client/debugger/new/README.mozilla
+++ b/devtools/client/debugger/new/README.mozilla
@@ -1,13 +1,13 @@
 This is the debugger.html project output.
 See https://github.com/devtools-html/debugger.html
 
-Version 52
+Version 53
 
-Comparison: https://github.com/devtools-html/debugger.html/compare/release-51...release-52
+Comparison: https://github.com/devtools-html/debugger.html/compare/release-52...release-53
 
 Packages:
 - babel-plugin-transform-es2015-modules-commonjs @6.26.2
 - babel-preset-react @6.24.1
 - react @16.2.0
 - react-dom @16.2.0
 - webpack @3.11.0
--- a/devtools/client/debugger/new/test/mochitest/browser.ini
+++ b/devtools/client/debugger/new/test/mochitest/browser.ini
@@ -3,69 +3,71 @@ tags = devtools
 subsuite = devtools
 skip-if = (os == 'linux' && debug && bits == 32)
 support-files =
   head.js
   helpers.js
   !/devtools/client/commandline/test/helpers.js
   !/devtools/client/shared/test/shared-head.js
   !/devtools/client/shared/test/telemetry-test-helpers.js
-  examples/babel/polyfill-bundle.js
-  examples/babel/fixtures/ts-classes/output.js
-  examples/babel/fixtures/ts-classes/output.js.map
-  examples/babel/fixtures/eval-source-maps/output.js
-  examples/babel/fixtures/eval-source-maps/output.js.map
-  examples/babel/fixtures/for-of/output.js
-  examples/babel/fixtures/for-of/output.js.map
-  examples/babel/fixtures/line-start-bindings-es6/output.js
-  examples/babel/fixtures/line-start-bindings-es6/output.js.map
-  examples/babel/fixtures/shadowed-vars/output.js
-  examples/babel/fixtures/shadowed-vars/output.js.map
-  examples/babel/fixtures/this-arguments-bindings/output.js
-  examples/babel/fixtures/this-arguments-bindings/output.js.map
-  examples/babel/fixtures/imported-bindings/output.js
-  examples/babel/fixtures/imported-bindings/output.js.map
-  examples/babel/fixtures/classes/output.js
-  examples/babel/fixtures/classes/output.js.map
-  examples/babel/fixtures/commonjs/output.js
-  examples/babel/fixtures/commonjs/output.js.map
-  examples/babel/fixtures/for-loops/output.js
-  examples/babel/fixtures/for-loops/output.js.map
-  examples/babel/fixtures/functions/output.js
-  examples/babel/fixtures/functions/output.js.map
-  examples/babel/fixtures/modules/output.js
-  examples/babel/fixtures/modules/output.js.map
-  examples/babel/fixtures/non-modules/output.js
-  examples/babel/fixtures/non-modules/output.js.map
-  examples/babel/fixtures/out-of-order-declarations/output.js
-  examples/babel/fixtures/out-of-order-declarations/output.js.map
-  examples/babel/fixtures/flowtype-bindings/output.js
-  examples/babel/fixtures/flowtype-bindings/output.js.map
-  examples/babel/fixtures/step-over-for-of/output.js
-  examples/babel/fixtures/step-over-for-of/output.js.map
-  examples/babel/fixtures/step-over-for-of-closure/output.js
-  examples/babel/fixtures/step-over-for-of-closure/output.js.map
-  examples/babel/fixtures/step-over-for-of-array/output.js
-  examples/babel/fixtures/step-over-for-of-array/output.js.map
-  examples/babel/fixtures/step-over-for-of-array-closure/output.js
-  examples/babel/fixtures/step-over-for-of-array-closure/output.js.map
-  examples/babel/fixtures/step-over-function-params/output.js
-  examples/babel/fixtures/step-over-function-params/output.js.map
-  examples/babel/fixtures/step-over-regenerator-await/output.js
-  examples/babel/fixtures/step-over-regenerator-await/output.js.map
-  examples/babel/fixtures/switches/output.js
-  examples/babel/fixtures/switches/output.js.map
-  examples/babel/fixtures/try-catches/output.js
-  examples/babel/fixtures/try-catches/output.js.map
-  examples/babel/fixtures/webpack-modules/output.js
-  examples/babel/fixtures/webpack-modules/output.js.map
-  examples/babel/fixtures/webpack-modules-es6/output.js
-  examples/babel/fixtures/webpack-modules-es6/output.js.map
-  examples/babel/fixtures/webpack-standalone/output.js
-  examples/babel/fixtures/webpack-standalone/output.js.map
+  examples/sourcemapped/polyfill-bundle.js
+  examples/sourcemapped/fixtures/typescript-classes/output.js
+  examples/sourcemapped/fixtures/typescript-classes/output.js.map
+  examples/sourcemapped/fixtures/babel-eval-maps/output.js
+  examples/sourcemapped/fixtures/babel-eval-maps/output.js.map
+  examples/sourcemapped/fixtures/babel-for-of/output.js
+  examples/sourcemapped/fixtures/babel-for-of/output.js.map
+  examples/sourcemapped/fixtures/babel-line-start-bindings-es6/output.js
+  examples/sourcemapped/fixtures/babel-line-start-bindings-es6/output.js.map
+  examples/sourcemapped/fixtures/babel-shadowed-vars/output.js
+  examples/sourcemapped/fixtures/babel-shadowed-vars/output.js.map
+  examples/sourcemapped/fixtures/babel-this-arguments-bindings/output.js
+  examples/sourcemapped/fixtures/babel-this-arguments-bindings/output.js.map
+  examples/sourcemapped/fixtures/babel-modules-cjs/output.js
+  examples/sourcemapped/fixtures/babel-modules-cjs/output.js.map
+  examples/sourcemapped/fixtures/babel-classes/output.js
+  examples/sourcemapped/fixtures/babel-classes/output.js.map
+  examples/sourcemapped/fixtures/babel-commonjs/output.js
+  examples/sourcemapped/fixtures/babel-commonjs/output.js.map
+  examples/sourcemapped/fixtures/babel-for-loops/output.js
+  examples/sourcemapped/fixtures/babel-for-loops/output.js.map
+  examples/sourcemapped/fixtures/babel-functions/output.js
+  examples/sourcemapped/fixtures/babel-functions/output.js.map
+  examples/sourcemapped/fixtures/babel-type-module/output.js
+  examples/sourcemapped/fixtures/babel-type-module/output.js.map
+  examples/sourcemapped/fixtures/babel-type-script/output.js
+  examples/sourcemapped/fixtures/babel-type-script/output.js.map
+  examples/sourcemapped/fixtures/babel-out-of-order-declarations-cjs/output.js
+  examples/sourcemapped/fixtures/babel-out-of-order-declarations-cjs/output.js.map
+  examples/sourcemapped/fixtures/babel-flowtype-bindings/output.js
+  examples/sourcemapped/fixtures/babel-flowtype-bindings/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-for-of/output.js
+  examples/sourcemapped/fixtures/babel-step-over-for-of/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-for-of-closure/output.js
+  examples/sourcemapped/fixtures/babel-step-over-for-of-closure/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-for-of-array/output.js
+  examples/sourcemapped/fixtures/babel-step-over-for-of-array/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-for-of-array-closure/output.js
+  examples/sourcemapped/fixtures/babel-step-over-for-of-array-closure/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-function-params/output.js
+  examples/sourcemapped/fixtures/babel-step-over-function-params/output.js.map
+  examples/sourcemapped/fixtures/babel-step-over-regenerator-await/output.js
+  examples/sourcemapped/fixtures/babel-step-over-regenerator-await/output.js.map
+  examples/sourcemapped/fixtures/babel-switches/output.js
+  examples/sourcemapped/fixtures/babel-switches/output.js.map
+  examples/sourcemapped/fixtures/babel-try-catches/output.js
+  examples/sourcemapped/fixtures/babel-try-catches/output.js.map
+  examples/sourcemapped/fixtures/babel-modules-webpack/output.js
+  examples/sourcemapped/fixtures/babel-modules-webpack/output.js.map
+  examples/sourcemapped/fixtures/babel-modules-webpack-es6/output.js
+  examples/sourcemapped/fixtures/babel-modules-webpack-es6/output.js.map
+  examples/sourcemapped/fixtures/webpack-line-mappings/output.js
+  examples/sourcemapped/fixtures/webpack-line-mappings/output.js.map
+  examples/sourcemapped/fixtures/webpack-functions/output.js
+  examples/sourcemapped/fixtures/webpack-functions/output.js.map
   examples/ember/quickstart/dist/index.html
   examples/ember/quickstart/dist/assets/quickstart.css
   examples/ember/quickstart/dist/assets/quickstart.js
   examples/ember/quickstart/dist/assets/quickstart.map
   examples/ember/quickstart/dist/assets/vendor.css
   examples/ember/quickstart/dist/assets/vendor.js
   examples/ember/quickstart/dist/assets/vendor.map
   examples/sourcemaps/bundle.js
@@ -96,17 +98,17 @@ support-files =
   examples/big-sourcemap_files/bundle.js
   examples/big-sourcemap_files/bundle.js.map
   examples/reload/code_reload_1.js
   examples/reload/code_reload_2.js
   examples/reload/doc-reload.html
   examples/reload/sjs_code_reload.sjs
   examples/doc-async.html
   examples/doc-asm.html
-  examples/doc-babel.html
+  examples/doc-sourcemapped.html
   examples/doc-content-script-sources.html
   examples/doc-scripts.html
   examples/doc-scripts-debugger.html
   examples/doc-script-mutate.html
   examples/doc-script-switching.html
   examples/doc-exceptions.html
   examples/doc-iframes.html
   examples/doc-frames.html
@@ -143,22 +145,22 @@ support-files =
   examples/pause-points.js
   examples/script-mutate.js
   examples/script-switching-02.js
   examples/script-switching-01.js
   examples/times2.js
 
 [browser_dbg-asm.js]
 [browser_dbg-async-stepping.js]
-[browser_dbg-babel-breakpoint-console.js]
+[browser_dbg-sourcemapped-breakpoint-console.js]
 skip-if = (os == "win" && ccov) # Bug 1453549
-[browser_dbg-babel-scopes.js]
+[browser_dbg-sourcemapped-scopes.js]
 skip-if = ccov # Bug 1441545
-[browser_dbg-babel-stepping.js]
-[browser_dbg-babel-preview.js]
+[browser_dbg-sourcemapped-stepping.js]
+[browser_dbg-sourcemapped-preview.js]
 skip-if = (os == "win" && ccov) || (os == "win" && !debug) # Bug 1448523, Bug 1448450
 [browser_dbg-breaking.js]
 [browser_dbg-breaking-from-console.js]
 [browser_dbg-breakpoints.js]
 [browser_dbg-breakpoints-reloading.js]
 [browser_dbg-breakpoints-cond.js]
 [browser_dbg-browser-content-toolbox.js]
 skip-if = !e10s # This test is only valid in e10s
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-breakpoint-console.js
+++ /dev/null
@@ -1,57 +0,0 @@
-
-async function evalInConsoleAtPoint(dbg, fixture, { line, column }, statements) {
-  const filename = `fixtures/${fixture}/input.js`;
-  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
-
-  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
-    await assertConsoleEval(dbg, statements);
-  });
-
-  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
-}
-
-async function assertConsoleEval(dbg, statements) {
-  const jsterm = (await dbg.toolbox.selectTool("webconsole")).hud.jsterm;
-
-  for (const [index, statement] of statements.entries()) {
-    await dbg.client.evaluate(`
-      window.TEST_RESULT = false;
-    `);
-    await jsterm.execute(`
-      TEST_RESULT = ${statement};
-    `);
-
-    const result = await dbg.client.evaluate(`window.TEST_RESULT`);
-    is(result.result, true, `'${statement}' evaluates to true`);
-  }
-}
-
-add_task(async function() {
-  await pushPref("devtools.debugger.features.map-scopes", true);
-
-  const dbg = await initDebugger("doc-babel.html");
-
-  await evalInConsoleAtPoint(dbg, "eval-source-maps", { line: 14, column: 4 }, [
-    "one === 1",
-    "two === 4",
-    "three === 5",
-  ]);
-
-  await evalInConsoleAtPoint(dbg, "imported-bindings", { line: 20, column: 2 }, [
-    `aDefault === "a-default"`,
-    `anAliased === "an-original"`,
-    `aNamed === "a-named"`,
-    `aDefault2 === "a-default2"`,
-    `anAliased2 === "an-original2"`,
-    `aNamed2 === "a-named2"`,
-    `aDefault3 === "a-default3"`,
-    `anAliased3 === "an-original3"`,
-    `aNamed3 === "a-named3"`,
-  ]);
-
-  await evalInConsoleAtPoint(dbg, "shadowed-vars", { line: 18, column: 6 }, [
-    `aVar === "var3"`,
-    `aLet === "let3"`,
-    `aConst === "const3"`,
-  ]);
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-preview.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Tests for preview through Babel's compile output.
-requestLongerTimeout(3);
-
-async function breakpointPreviews(dbg, fixture, { line, column }, previews) {
-  const filename = `fixtures/${fixture}/input.js`;
-  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
-
-  log(`Starting ${fixture} tests`);
-
-  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
-    await assertPreviews(dbg, previews);
-  });
-
-  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
-}
-
-function testForOf(dbg) {
-  return breakpointPreviews(dbg, "for-of", { line: 5, column: 4 }, [
-    {
-      line: 5,
-      column: 7,
-      expression: "doThing",
-      result: "doThing(arg)",
-    },
-    {
-      line: 5,
-      column: 13,
-      expression: "x",
-      result: "1",
-    },
-    {
-      line: 8,
-      column: 16,
-      expression: "doThing",
-      result: "doThing(arg)",
-    },
-  ]);
-}
-
-function testShadowing(dbg) {
-  return breakpointPreviews(dbg, "shadowed-vars", { line: 18, column: 6 }, [
-      // These aren't what the user would expect, but we test them anyway since
-      // they reflect what this actually returns. These shadowed bindings read
-      // the binding closest to the current frame's scope even though their
-      // actual value is different.
-      {
-        line: 2,
-        column: 9,
-        expression: "aVar",
-        result: '"var3"',
-      },
-      {
-        line: 3,
-        column: 9,
-        expression: "_aLet2;",
-        result: '"let3"',
-      },
-      {
-        line: 4,
-        column: 11,
-        expression: "_aConst2;",
-        result: '"const3"',
-      },
-      {
-        line: 10,
-        column: 11,
-        expression: "aVar",
-        result: '"var3"',
-      },
-      {
-        line: 11,
-        column: 11,
-        expression: "_aLet2;",
-        result: '"let3"',
-      },
-      {
-        line: 12,
-        column: 13,
-        expression: "_aConst2;",
-        result: '"const3"',
-      },
-
-      // These actually result in the values the user would expect.
-      {
-        line: 14,
-        column: 13,
-        expression: "aVar",
-        result: '"var3"',
-      },
-      {
-        line: 15,
-        column: 13,
-        expression: "_aLet2;",
-        result: '"let3"',
-      },
-      {
-        line: 16,
-        column: 13,
-        expression: "_aConst2;",
-        result: '"const3"',
-      },
-    ]);
-}
-
-function testImportedBindings(dbg) {
-  return breakpointPreviews(dbg, "imported-bindings", { line: 20, column: 2 }, [
-   {
-     line: 22,
-     column: 16,
-     expression: "_mod2.default;",
-     result: '"a-default"',
-   },
-   {
-     line: 23,
-     column: 16,
-     expression: "_mod4.original;",
-     result: '"an-original"',
-   },
-   {
-     line: 24,
-     column: 16,
-     expression: "_mod3.aNamed;",
-     result: '"a-named"',
-   },
-   {
-     line: 25,
-     column: 16,
-     expression: "_mod3.aNamed;",
-     result: '"a-named"',
-   },
-   {
-     line: 26,
-     column: 16,
-     expression: "aNamespace",
-     fields: [
-       ['aNamed', 'a-named'],
-       ['default', 'a-default'],
-     ],
-   },
-   {
-     line: 31,
-     column: 20,
-     expression: "_mod7.default;",
-     result: '"a-default2"',
-   },
-   {
-     line: 32,
-     column: 20,
-     expression: "_mod9.original;",
-     result: '"an-original2"',
-   },
-   {
-     line: 33,
-     column: 20,
-     expression: "_mod8.aNamed2;",
-     result: '"a-named2"',
-   },
-   {
-     line: 34,
-     column: 20,
-     expression: "_mod8.aNamed2;",
-     result: '"a-named2"',
-   },
-   {
-     line: 35,
-     column: 20,
-     expression: "aNamespace2",
-     fields: [
-       ['aNamed', 'a-named2'],
-       ['default', 'a-default2'],
-     ],
-   },
- ]);
-}
-
-
-add_task(async function() {
-  await pushPref("devtools.debugger.features.map-scopes", true);
-  const dbg = await initDebugger("doc-babel.html");
-
-  await testForOf(dbg)
-  await testShadowing(dbg)
-  await testImportedBindings(dbg)
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// This test can be really slow on debug platforms and should be split.
-requestLongerTimeout(6);
-
-// Tests loading sourcemapped sources for Babel's compile output.
-
-async function breakpointScopes(dbg, fixture, { line, column }, scopes) {
-  const filename = `fixtures/${fixture}/input.`;
-  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
-
-  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
-    await assertScopes(dbg, scopes);
-  });
-
-  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
-}
-
-add_task(async function() {
-  await pushPref("devtools.debugger.features.map-scopes", true);
-
-  const dbg = await initDebugger("doc-babel.html");
-
-  await breakpointScopes(dbg, "ts-classes", { line: 52, column: 4 }, [
-    "Module",
-    "AnotherThing()",
-    ["anyWindow", "Window"],
-    "AppComponent()",
-    "decoratorFactory()",
-    "def()",
-    "ExportedOther()",
-    "ExpressionClass:Foo()",
-    "fn()",
-    ["ns", '{\u2026}'],
-    "SubDecl()",
-    "SubVar:SubExpr()"
-  ]);
-
-  await breakpointScopes(dbg, "eval-source-maps", { line: 14, column: 4 }, [
-    "Block",
-    ["three", "5"],
-    ["two", "4"],
-    "Block",
-    ["three", "3"],
-    ["two", "2"],
-    "root",
-    ["one", "1"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "for-of", { line: 5, column: 4 }, [
-    "For",
-    ["x", "1"],
-    "forOf",
-    "doThing()",
-    "Module",
-    "forOf",
-    "mod"
-  ]);
-
-  await breakpointScopes(dbg, "shadowed-vars", { line: 18, column: 6 }, [
-    "Block",
-    ["aConst", '"const3"'],
-    ["aLet", '"let3"'],
-    "Block",
-    ["aConst", '"const2"'],
-    ["aLet", '"let2"'],
-    "Outer:_Outer()",
-    "Block",
-    ["aConst", '"const1"'],
-    ["aLet", '"let1"'],
-    "Outer()",
-    "default",
-    ["aVar", '"var3"']
-  ]);
-
-  await breakpointScopes(
-    dbg,
-    "line-start-bindings-es6",
-    { line: 19, column: 4 },
-    [
-      "Block",
-      ["<this>", '{\u2026}'],
-      ["one", "1"],
-      ["two", "2"],
-      "root",
-      ["aFunc", "(optimized away)"],
-      "Module",
-      "root()"
-    ]
-  );
-
-  await breakpointScopes(
-    dbg,
-    "this-arguments-bindings",
-    { line: 4, column: 4 },
-    [
-      "Block",
-      ["<this>", '"this-value"'],
-      ["arrow", "undefined"],
-      "fn",
-      ["arg", '"arg-value"'],
-      ["arguments", "Arguments"],
-      "root",
-      "fn()",
-      "Module",
-      "root()"
-    ]
-  );
-
-  await breakpointScopes(
-    dbg,
-    "this-arguments-bindings",
-    { line: 8, column: 6 },
-    [
-      "arrow",
-      ["<this>", '"this-value"'],
-      ["argArrow", '"arrow-arg"'],
-      "Block",
-      "arrow()",
-      "fn",
-      ["arg", '"arg-value"'],
-      ["arguments", "Arguments"],
-      "root",
-      "fn()",
-      "Module",
-      "root()"
-    ]
-  );
-
-  await breakpointScopes(dbg, "imported-bindings", { line: 20, column: 2 }, [
-    "Module",
-    ["aDefault", '"a-default"'],
-    ["aDefault2", '"a-default2"'],
-    ["aDefault3", '"a-default3"'],
-    ["anAliased", '"an-original"'],
-    ["anAliased2", '"an-original2"'],
-    ["anAliased3", '"an-original3"'],
-    ["aNamed", '"a-named"'],
-    ["aNamed2", '"a-named2"'],
-    ["aNamed3", '"a-named3"'],
-    ["aNamespace", "{\u2026}"],
-    ["aNamespace2", "{\u2026}"],
-    ["aNamespace3", "{\u2026}"],
-    ["anotherNamed", '"a-named"'],
-    ["anotherNamed2", '"a-named2"'],
-    ["anotherNamed3", '"a-named3"'],
-    ["example", "(optimized away)"],
-    ["optimizedOut", "(optimized away)"],
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "classes", { line: 12, column: 6 }, [
-    "Block",
-    ["three", "3"],
-    ["two", "2"],
-    "Class",
-    "Another()",
-    "Block",
-    "Another()",
-    ["one", "1"],
-    "Thing()",
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "for-loops", { line: 5, column: 4 }, [
-    "For",
-    ["i", "1"],
-    "Block",
-    ["i", "0"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "for-loops", { line: 9, column: 4 }, [
-    "For",
-    ["i", '"2"'],
-    "Block",
-    ["i", "0"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "for-loops", { line: 13, column: 4 }, [
-    "For",
-    ["i", "3"],
-    "Block",
-    ["i", "0"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "functions", { line: 6, column: 8 }, [
-    "arrow",
-    ["p3", "undefined"],
-    "Block",
-    "arrow()",
-    "inner",
-    ["p2", "undefined"],
-    "Function Expression",
-    "inner()",
-    "Block",
-    "inner()",
-    "decl",
-    ["p1", "undefined"],
-    "root",
-    "decl()",
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "modules", { line: 7, column: 2 }, [
-    "Module",
-    ["alsoModuleScoped", "2"],
-    ["moduleScoped", "1"],
-    "thirdModuleScoped()"
-  ]);
-
-  await breakpointScopes(dbg, "commonjs", { line: 7, column: 2 }, [
-    "Module",
-    ["alsoModuleScoped", "2"],
-    ["moduleScoped", "1"],
-    "thirdModuleScoped()"
-  ]);
-
-  await breakpointScopes(dbg, "out-of-order-declarations", { line: 8, column: 4 }, [
-    "callback",
-    "fn()",
-    ["val", "undefined"],
-    "root",
-    ["callback", "(optimized away)"],
-    ["fn", "(optimized away)"],
-    ["val", "(optimized away)"],
-    "Module",
-
-    // This value is currently optimized away, which isn't 100% accurate.
-    // Because import declarations is the last thing in the file, our current
-    // logic doesn't cover _both_ 'var' statements that it generates,
-    // making us use the first, optimized-out binding. Given that imports
-    // are almost never the last thing in a file though, this is probably not
-    // a huge deal for now.
-    ["aDefault", "(optimized away)"],
-    ["root", "(optimized away)"],
-    ["val", "(optimized away)"],
-  ]);
-
-  await breakpointScopes(dbg, "non-modules", { line: 7, column: 2 }, []);
-
-  await breakpointScopes(dbg, "flowtype-bindings", { line: 8, column: 2 }, [
-    "Module",
-    ["aConst", '"a-const"'],
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "switches", { line: 7, column: 6 }, [
-    "Switch",
-    ["val", "2"],
-    "Block",
-    ["val", "1"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "switches", { line: 10, column: 6 }, [
-    "Block",
-    ["val", "3"],
-    "Switch",
-    ["val", "2"],
-    "Block",
-    ["val", "1"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "try-catches", { line: 8, column: 4 }, [
-    "Block",
-    ["two", "2"],
-    "Catch",
-    ["err", '"AnError"'],
-    "Block",
-    ["one", "1"],
-    "Module",
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "webpack-modules", { line: 20, column: 2 }, [
-    "Module",
-    ["aDefault", '"a-default"'],
-    ["aDefault2", '"a-default2"'],
-    ["aDefault3", '"a-default3"'],
-    ["anAliased", "Getter"],
-    ["anAliased2", "Getter"],
-    ["anAliased3", "Getter"],
-    ["aNamed", "Getter"],
-    ["aNamed2", "Getter"],
-    ["aNamed3", "Getter"],
-    ["aNamespace", "{\u2026}"],
-    ["aNamespace2", "{\u2026}"],
-    ["aNamespace3", "{\u2026}"],
-    ["anotherNamed", "Getter"],
-    ["anotherNamed2", "Getter"],
-    ["anotherNamed3", "Getter"],
-    ["example", "(optimized away)"],
-    ["optimizedOut", "(optimized away)"],
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "webpack-modules-es6", { line: 20, column: 2 }, [
-    "Module",
-    ["aDefault", '"a-default"'],
-    ["aDefault2", '"a-default2"'],
-    ["aDefault3", '"a-default3"'],
-    ["anAliased", '"an-original"'],
-    ["anAliased2", '"an-original2"'],
-    ["anAliased3", '"an-original3"'],
-    ["aNamed", '"a-named"'],
-    ["aNamed2", '"a-named2"'],
-    ["aNamed3", '"a-named3"'],
-    ["aNamespace", "{\u2026}"],
-    ["aNamespace2", "{\u2026}"],
-    ["aNamespace3", "{\u2026}"],
-    ["anotherNamed", '"a-named"'],
-    ["anotherNamed2", '"a-named2"'],
-    ["anotherNamed3", '"a-named3"'],
-    ["example", "(optimized away)"],
-    ["optimizedOut", "(optimized away)"],
-    "root()"
-  ]);
-
-  await breakpointScopes(dbg, "webpack-standalone", { line: 11, column: 0 }, [
-    "Block",
-    ["<this>", '"this-value"'],
-    ["arg", '"arg-value"'],
-    ["arguments", "Arguments"],
-    ["inner", "undefined"],
-    "Block",
-    ["someName", "(optimized away)"],
-    "Block",
-    ["two", "2"],
-    "Block",
-    ["one", "1"],
-    "root",
-    ["arguments", "Arguments"],
-    "fn:someName()",
-    "webpackStandalone",
-    ["__webpack_exports__", "(optimized away)"],
-    ["__WEBPACK_IMPORTED_MODULE_0__src_mod1__", "{\u2026}"],
-    ["__webpack_require__", "(optimized away)"],
-    ["arguments", "(unavailable)"],
-    ["module", "(optimized away)"],
-    "root()"
-  ]);
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-stepping.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-// Tests for stepping through Babel's compile output.
-requestLongerTimeout(4);
-
-async function breakpointSteps(dbg, fixture, { line, column }, steps) {
-  const filename = `fixtures/${fixture}/input.js`;
-  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
-
-  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async source => {
-    await runSteps(dbg, source, steps);
-  });
-
-  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
-}
-
-async function runSteps(dbg, source, steps) {
-  const { selectors: { getVisibleSelectedFrame }, getState } = dbg;
-
-  for (const [i, [type, position]] of steps.entries()) {
-    switch (type) {
-      case "stepOver":
-        await stepOver(dbg);
-        break;
-      case "stepIn":
-        await stepIn(dbg);
-        break;
-      default:
-        throw new Error("Unknown stepping type");
-    }
-
-    const { location } = getVisibleSelectedFrame(getState());
-
-    is(location.sourceId, source.id, `Step ${i} has correct sourceId`);
-    is(location.line, position.line, `Step ${i} has correct line`);
-    is(location.column, position.column, `Step ${i} has correct column`);
-
-    assertPausedLocation(dbg);
-  }
-}
-
-function testStepOverForOf(dbg) {
-  return breakpointSteps(dbg, "step-over-for-of", { line: 4, column: 2 }, [
-    ["stepOver", { line: 6, column: 2 }],
-    ["stepOver", { line: 7, column: 4 }],
-    ["stepOver", { line: 6, column: 2 }],
-    ["stepOver", { line: 7, column: 4 }],
-    ["stepOver", { line: 6, column: 2 }],
-    ["stepOver", { line: 10, column: 2 }]
-  ]);
-}
-
-// This codifies the current behavior, but stepping twice over the for
-// header isn't ideal.
-function testStepOverForOfArray(dbg) {
-  return breakpointSteps(dbg, "step-over-for-of-array", { line: 3, column: 2 }, [
-    ["stepOver", { line: 5, column: 2 }],
-    ["stepOver", { line: 5, column: 7 }],
-    ["stepOver", { line: 6, column: 4 }],
-    ["stepOver", { line: 5, column: 2 }],
-    ["stepOver", { line: 5, column: 7 }],
-    ["stepOver", { line: 6, column: 4 }],
-    ["stepOver", { line: 5, column: 2 }],
-    ["stepOver", { line: 9, column: 2 }]
-  ]);
-}
-
-// The closure means it isn't actually possible to step into the for body,
-// and Babel doesn't map the _loop() call, so we step past it automatically.
-function testStepOveForOfClosure(dbg) {
-  return breakpointSteps(
-    dbg,
-    "step-over-for-of-closure",
-    { line: 6, column: 2 },
-    [
-      ["stepOver", { line: 8, column: 2 }],
-      ["stepOver", { line: 12, column: 2 }]
-    ]
-  );
-}
-
-// Same as the previous, not possible to step into the body. The less
-// complicated array logic makes it possible to step into the header at least,
-// but this does end up double-visiting the for head.
-function testStepOverForOfArrayClosure(dbg) {
-  return breakpointSteps(
-    dbg,
-    "step-over-for-of-array-closure",
-    { line: 3, column: 2 },
-    [
-      ["stepOver", { line: 5, column: 2 }],
-      ["stepOver", { line: 5, column: 7 }],
-      ["stepOver", { line: 5, column: 2 }],
-      ["stepOver", { line: 5, column: 7 }],
-      ["stepOver", { line: 5, column: 2 }],
-      ["stepOver", { line: 9, column: 2 }]
-    ]
-  );
-}
-
-function testStepOverFunctionParams(dbg) {
-  return breakpointSteps(
-    dbg,
-    "step-over-function-params",
-    { line: 6, column: 2 },
-    [["stepOver", { line: 7, column: 2 }], ["stepIn", { line: 2, column: 2 }]]
-  );
-}
-
-function testStepOverRegeneratorAwait(dbg) {
-  return breakpointSteps(
-    dbg,
-    "step-over-regenerator-await",
-    { line: 2, column: 2 },
-    [
-      // Won't work until a fix to regenerator lands and we rebuild.
-      // https://github.com/facebook/regenerator/issues/342
-      // ["stepOver", { line: 4, column: 2 }],
-    ]
-  );
-}
-
-add_task(async function() {
-  const dbg = await initDebugger("doc-babel.html");
-
-  await testStepOverForOf(dbg);
-  await testStepOverForOfArray(dbg);
-  await testStepOveForOfClosure(dbg);
-  await testStepOverForOfArrayClosure(dbg);
-  await testStepOverFunctionParams(dbg);
-  await testStepOverRegeneratorAwait(dbg);
-});
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg-preview-module.js
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-preview-module.js
@@ -17,13 +17,10 @@ add_task(async function() {
     {
       line: 1,
       column: 6,
       expression: "obj",
       fields: [["foo", "1"], ["bar", "2"]]
     }
   ]);
 
-  const tooltipPreviewed = waitForDispatch(dbg, "SET_PREVIEW");
-  hoverAtPos(dbg, { line: 2, ch: 7 });
-  await tooltipPreviewed;
-  await assertPreviewTooltip(dbg, { result: "3", expression: "func" });
+  await assertPreviewTooltip(dbg, 2, 7, { result: "3", expression: "func" });
 });
new file mode 100644
--- /dev/null
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemapped-breakpoint-console.js
@@ -0,0 +1,57 @@
+
+async function evalInConsoleAtPoint(dbg, fixture, { line, column }, statements) {
+  const filename = `fixtures/${fixture}/input.js`;
+  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
+
+  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
+    await assertConsoleEval(dbg, statements);
+  });
+
+  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
+}
+
+async function assertConsoleEval(dbg, statements) {
+  const jsterm = (await dbg.toolbox.selectTool("webconsole")).hud.jsterm;
+
+  for (const [index, statement] of statements.entries()) {
+    await dbg.client.evaluate(`
+      window.TEST_RESULT = false;
+    `);
+    await jsterm.execute(`
+      TEST_RESULT = ${statement};
+    `);
+
+    const result = await dbg.client.evaluate(`window.TEST_RESULT`);
+    is(result.result, true, `'${statement}' evaluates to true`);
+  }
+}
+
+add_task(async function() {
+  await pushPref("devtools.debugger.features.map-scopes", true);
+
+  const dbg = await initDebugger("doc-sourcemapped.html");
+
+  await evalInConsoleAtPoint(dbg, "babel-eval-maps", { line: 14, column: 4 }, [
+    "one === 1",
+    "two === 4",
+    "three === 5",
+  ]);
+
+  await evalInConsoleAtPoint(dbg, "babel-modules-cjs", { line: 20, column: 2 }, [
+    `aDefault === "a-default"`,
+    `anAliased === "an-original"`,
+    `aNamed === "a-named"`,
+    `aDefault2 === "a-default2"`,
+    `anAliased2 === "an-original2"`,
+    `aNamed2 === "a-named2"`,
+    `aDefault3 === "a-default3"`,
+    `anAliased3 === "an-original3"`,
+    `aNamed3 === "a-named3"`,
+  ]);
+
+  await evalInConsoleAtPoint(dbg, "babel-shadowed-vars", { line: 18, column: 6 }, [
+    `aVar === "var3"`,
+    `aLet === "let3"`,
+    `aConst === "const3"`,
+  ]);
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemapped-preview.js
@@ -0,0 +1,187 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Tests for preview through Babel's compile output.
+requestLongerTimeout(3);
+
+async function breakpointPreviews(dbg, fixture, { line, column }, previews) {
+  const filename = `fixtures/${fixture}/input.js`;
+  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
+
+  log(`Starting ${fixture} tests`);
+
+  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
+    await assertPreviews(dbg, previews);
+  });
+
+  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
+}
+
+function testForOf(dbg) {
+  return breakpointPreviews(dbg, "babel-for-of", { line: 5, column: 4 }, [
+    {
+      line: 5,
+      column: 7,
+      expression: "doThing",
+      result: "doThing(arg)",
+    },
+    {
+      line: 5,
+      column: 13,
+      expression: "x",
+      result: "1",
+    },
+    {
+      line: 8,
+      column: 16,
+      expression: "doThing",
+      result: "doThing(arg)",
+    },
+  ]);
+}
+
+function testShadowing(dbg) {
+  return breakpointPreviews(dbg, "babel-shadowed-vars", { line: 18, column: 6 }, [
+      // These aren't what the user would expect, but we test them anyway since
+      // they reflect what this actually returns. These shadowed bindings read
+      // the binding closest to the current frame's scope even though their
+      // actual value is different.
+      {
+        line: 2,
+        column: 9,
+        expression: "aVar",
+        result: '"var3"',
+      },
+      {
+        line: 3,
+        column: 9,
+        expression: "_aLet2;",
+        result: '"let3"',
+      },
+      {
+        line: 4,
+        column: 11,
+        expression: "_aConst2;",
+        result: '"const3"',
+      },
+      {
+        line: 10,
+        column: 11,
+        expression: "aVar",
+        result: '"var3"',
+      },
+      {
+        line: 11,
+        column: 11,
+        expression: "_aLet2;",
+        result: '"let3"',
+      },
+      {
+        line: 12,
+        column: 13,
+        expression: "_aConst2;",
+        result: '"const3"',
+      },
+
+      // These actually result in the values the user would expect.
+      {
+        line: 14,
+        column: 13,
+        expression: "aVar",
+        result: '"var3"',
+      },
+      {
+        line: 15,
+        column: 13,
+        expression: "_aLet2;",
+        result: '"let3"',
+      },
+      {
+        line: 16,
+        column: 13,
+        expression: "_aConst2;",
+        result: '"const3"',
+      },
+    ]);
+}
+
+function testImportedBindings(dbg) {
+  return breakpointPreviews(dbg, "babel-modules-cjs", { line: 20, column: 2 }, [
+   {
+     line: 22,
+     column: 16,
+     expression: "_mod2.default;",
+     result: '"a-default"',
+   },
+   {
+     line: 23,
+     column: 16,
+     expression: "_mod4.original;",
+     result: '"an-original"',
+   },
+   {
+     line: 24,
+     column: 16,
+     expression: "_mod3.aNamed;",
+     result: '"a-named"',
+   },
+   {
+     line: 25,
+     column: 16,
+     expression: "_mod3.aNamed;",
+     result: '"a-named"',
+   },
+   {
+     line: 26,
+     column: 16,
+     expression: "aNamespace",
+     fields: [
+       ['aNamed', 'a-named'],
+       ['default', 'a-default'],
+     ],
+   },
+   {
+     line: 31,
+     column: 20,
+     expression: "_mod7.default;",
+     result: '"a-default2"',
+   },
+   {
+     line: 32,
+     column: 20,
+     expression: "_mod9.original;",
+     result: '"an-original2"',
+   },
+   {
+     line: 33,
+     column: 20,
+     expression: "_mod8.aNamed2;",
+     result: '"a-named2"',
+   },
+   {
+     line: 34,
+     column: 20,
+     expression: "_mod8.aNamed2;",
+     result: '"a-named2"',
+   },
+   {
+     line: 35,
+     column: 20,
+     expression: "aNamespace2",
+     fields: [
+       ['aNamed', 'a-named2'],
+       ['default', 'a-default2'],
+     ],
+   },
+ ]);
+}
+
+
+add_task(async function() {
+  await pushPref("devtools.debugger.features.map-scopes", true);
+  const dbg = await initDebugger("doc-sourcemapped.html");
+
+  await testForOf(dbg)
+  await testShadowing(dbg)
+  await testImportedBindings(dbg)
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemapped-scopes.js
@@ -0,0 +1,377 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// This test can be really slow on debug platforms and should be split.
+requestLongerTimeout(6);
+
+// Tests loading sourcemapped sources for Babel's compile output.
+
+async function breakpointScopes(dbg, fixture, { line, column }, scopes) {
+  const filename = `fixtures/${fixture}/input.`;
+  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
+
+  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async () => {
+    await assertScopes(dbg, scopes);
+  });
+
+  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
+}
+
+add_task(async function() {
+  await pushPref("devtools.debugger.features.map-scopes", true);
+
+  const dbg = await initDebugger("doc-sourcemapped.html");
+
+  await breakpointScopes(dbg, "typescript-classes", { line: 50, column: 2 }, [
+    "Module",
+    "AnotherThing()",
+    "AppComponent()",
+    "decoratorFactory()",
+    "def()",
+    "ExportedOther()",
+    "ExpressionClass:Foo()",
+    "fn()",
+    ["ns", '{\u2026}'],
+    "SubDecl()",
+    "SubVar:SubExpr()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-eval-maps", { line: 14, column: 4 }, [
+    "Block",
+    ["three", "5"],
+    ["two", "4"],
+    "Block",
+    ["three", "3"],
+    ["two", "2"],
+    "root",
+    ["one", "1"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-for-of", { line: 5, column: 4 }, [
+    "For",
+    ["x", "1"],
+    "forOf",
+    "doThing()",
+    "Module",
+    "forOf",
+    "mod"
+  ]);
+
+  await breakpointScopes(dbg, "babel-shadowed-vars", { line: 18, column: 6 }, [
+    "Block",
+    ["aConst", '"const3"'],
+    ["aLet", '"let3"'],
+    "Block",
+    ["aConst", '"const2"'],
+    ["aLet", '"let2"'],
+    "Outer:_Outer()",
+    "Block",
+    ["aConst", '"const1"'],
+    ["aLet", '"let1"'],
+    "Outer()",
+    "default",
+    ["aVar", '"var3"']
+  ]);
+
+  await breakpointScopes(
+    dbg,
+    "babel-line-start-bindings-es6",
+    { line: 19, column: 4 },
+    [
+      "Block",
+      ["<this>", '{\u2026}'],
+      ["one", "1"],
+      ["two", "2"],
+      "root",
+      ["aFunc", "(optimized away)"],
+      "Module",
+      "root()"
+    ]
+  );
+
+  await breakpointScopes(
+    dbg,
+    "babel-this-arguments-bindings",
+    { line: 4, column: 4 },
+    [
+      "Block",
+      ["<this>", '"this-value"'],
+      ["arrow", "undefined"],
+      "fn",
+      ["arg", '"arg-value"'],
+      ["arguments", "Arguments"],
+      "root",
+      "fn()",
+      "Module",
+      "root()"
+    ]
+  );
+
+  await breakpointScopes(
+    dbg,
+    "babel-this-arguments-bindings",
+    { line: 8, column: 6 },
+    [
+      "arrow",
+      ["<this>", '"this-value"'],
+      ["argArrow", '"arrow-arg"'],
+      "Block",
+      "arrow()",
+      "fn",
+      ["arg", '"arg-value"'],
+      ["arguments", "Arguments"],
+      "root",
+      "fn()",
+      "Module",
+      "root()"
+    ]
+  );
+
+  await breakpointScopes(dbg, "babel-modules-cjs", { line: 20, column: 2 }, [
+    "Module",
+    ["aDefault", '"a-default"'],
+    ["aDefault2", '"a-default2"'],
+    ["aDefault3", '"a-default3"'],
+    ["anAliased", '"an-original"'],
+    ["anAliased2", '"an-original2"'],
+    ["anAliased3", '"an-original3"'],
+    ["aNamed", '"a-named"'],
+    ["aNamed2", '"a-named2"'],
+    ["aNamed3", '"a-named3"'],
+    ["aNamespace", "{\u2026}"],
+    ["aNamespace2", "{\u2026}"],
+    ["aNamespace3", "{\u2026}"],
+    ["anotherNamed", '"a-named"'],
+    ["anotherNamed2", '"a-named2"'],
+    ["anotherNamed3", '"a-named3"'],
+    ["example", "(optimized away)"],
+    ["optimizedOut", "(optimized away)"],
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-classes", { line: 12, column: 6 }, [
+    "Block",
+    ["three", "3"],
+    ["two", "2"],
+    "Class",
+    "Another()",
+    "Block",
+    "Another()",
+    ["one", "1"],
+    "Thing()",
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-for-loops", { line: 5, column: 4 }, [
+    "For",
+    ["i", "1"],
+    "Block",
+    ["i", "0"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-for-loops", { line: 9, column: 4 }, [
+    "For",
+    ["i", '"2"'],
+    "Block",
+    ["i", "0"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-for-loops", { line: 13, column: 4 }, [
+    "For",
+    ["i", "3"],
+    "Block",
+    ["i", "0"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-functions", { line: 6, column: 8 }, [
+    "arrow",
+    ["p3", "undefined"],
+    "Block",
+    "arrow()",
+    "inner",
+    ["p2", "undefined"],
+    "Function Expression",
+    "inner()",
+    "Block",
+    "inner()",
+    "decl",
+    ["p1", "undefined"],
+    "root",
+    "decl()",
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-type-module", { line: 7, column: 2 }, [
+    "Module",
+    ["alsoModuleScoped", "2"],
+    ["moduleScoped", "1"],
+    "thirdModuleScoped()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-type-script", { line: 7, column: 2 }, []);
+
+  await breakpointScopes(dbg, "babel-commonjs", { line: 7, column: 2 }, [
+    "Module",
+    ["alsoModuleScoped", "2"],
+    ["moduleScoped", "1"],
+    "thirdModuleScoped()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-out-of-order-declarations-cjs", { line: 8, column: 4 }, [
+    "callback",
+    "fn()",
+    ["val", "undefined"],
+    "root",
+    ["callback", "(optimized away)"],
+    ["fn", "(optimized away)"],
+    ["val", "(optimized away)"],
+    "Module",
+
+    // This value is currently optimized away, which isn't 100% accurate.
+    // Because import declarations is the last thing in the file, our current
+    // logic doesn't cover _both_ 'var' statements that it generates,
+    // making us use the first, optimized-out binding. Given that imports
+    // are almost never the last thing in a file though, this is probably not
+    // a huge deal for now.
+    ["aDefault", "(optimized away)"],
+    ["root", "(optimized away)"],
+    ["val", "(optimized away)"],
+  ]);
+  await breakpointScopes(dbg, "babel-flowtype-bindings", { line: 8, column: 2 }, [
+    "Module",
+    ["aConst", '"a-const"'],
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-switches", { line: 7, column: 6 }, [
+    "Switch",
+    ["val", "2"],
+    "Block",
+    ["val", "1"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-switches", { line: 10, column: 6 }, [
+    "Block",
+    ["val", "3"],
+    "Switch",
+    ["val", "2"],
+    "Block",
+    ["val", "1"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-try-catches", { line: 8, column: 4 }, [
+    "Block",
+    ["two", "2"],
+    "Catch",
+    ["err", '"AnError"'],
+    "Block",
+    ["one", "1"],
+    "Module",
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-modules-webpack", { line: 20, column: 2 }, [
+    "Module",
+    ["aDefault", '"a-default"'],
+    ["aDefault2", '"a-default2"'],
+    ["aDefault3", '"a-default3"'],
+    ["anAliased", "Getter"],
+    ["anAliased2", "Getter"],
+    ["anAliased3", "Getter"],
+    ["aNamed", "Getter"],
+    ["aNamed2", "Getter"],
+    ["aNamed3", "Getter"],
+    ["aNamespace", "{\u2026}"],
+    ["aNamespace2", "{\u2026}"],
+    ["aNamespace3", "{\u2026}"],
+    ["anotherNamed", "Getter"],
+    ["anotherNamed2", "Getter"],
+    ["anotherNamed3", "Getter"],
+    ["example", "(optimized away)"],
+    ["optimizedOut", "(optimized away)"],
+    "root()"
+  ]);
+
+  await breakpointScopes(dbg, "babel-modules-webpack-es6", { line: 20, column: 2 }, [
+    "Module",
+    ["aDefault", '"a-default"'],
+    ["aDefault2", '"a-default2"'],
+    ["aDefault3", '"a-default3"'],
+    ["anAliased", '"an-original"'],
+    ["anAliased2", '"an-original2"'],
+    ["anAliased3", '"an-original3"'],
+    ["aNamed", '"a-named"'],
+    ["aNamed2", '"a-named2"'],
+    ["aNamed3", '"a-named3"'],
+    ["aNamespace", "{\u2026}"],
+    ["aNamespace2", "{\u2026}"],
+    ["aNamespace3", "{\u2026}"],
+    ["anotherNamed", '"a-named"'],
+    ["anotherNamed2", '"a-named2"'],
+    ["anotherNamed3", '"a-named3"'],
+    ["example", "(optimized away)"],
+    ["optimizedOut", "(optimized away)"],
+    "root()"
+  ]);
+
+  await breakpointScopes(
+    dbg,
+    "webpack-line-mappings",
+    { line: 11, column: 0 },
+    [
+      "Block",
+      ["<this>", '"this-value"'],
+      ["arg", '"arg-value"'],
+      ["arguments", "Arguments"],
+      ["inner", "undefined"],
+      "Block",
+      ["someName", "(optimized away)"],
+      "Block",
+      ["two", "2"],
+      "Block",
+      ["one", "1"],
+      "root",
+      ["arguments", "Arguments"],
+      "fn:someName()",
+      "webpackLineMappings",
+      ["__webpack_exports__", "(optimized away)"],
+      ["__WEBPACK_IMPORTED_MODULE_0__src_mod1__", "{\u2026}"],
+      ["__webpack_require__", "(optimized away)"],
+      ["arguments", "(unavailable)"],
+      ["module", "(optimized away)"],
+      "root()"
+    ]
+  );
+
+  await breakpointScopes(
+    dbg,
+    "webpack-functions",
+    { line: 4, column: 0 },
+    [
+      "Block",
+      ["<this>", "{\u2026}"],
+      ["arguments", "Arguments"],
+      ["x", "4"],
+      "webpackFunctions",
+      ["__webpack_exports__", "(optimized away)"],
+      ["__webpack_require__", "(optimized away)"],
+      ["arguments", "(unavailable)"],
+      ["module", "{\u2026}"],
+      ["root", "(optimized away)"]
+    ]
+  );
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemapped-stepping.js
@@ -0,0 +1,133 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Tests for stepping through Babel's compile output.
+requestLongerTimeout(4);
+
+async function breakpointSteps(dbg, fixture, { line, column }, steps) {
+  const filename = `fixtures/${fixture}/input.js`;
+  const fnName = fixture.replace(/-([a-z])/g, (s, c) => c.toUpperCase());
+
+  await invokeWithBreakpoint(dbg, fnName, filename, { line, column }, async source => {
+    await runSteps(dbg, source, steps);
+  });
+
+  ok(true, `Ran tests for ${fixture} at line ${line} column ${column}`);
+}
+
+async function runSteps(dbg, source, steps) {
+  const { selectors: { getVisibleSelectedFrame }, getState } = dbg;
+
+  for (const [i, [type, position]] of steps.entries()) {
+    switch (type) {
+      case "stepOver":
+        await stepOver(dbg);
+        break;
+      case "stepIn":
+        await stepIn(dbg);
+        break;
+      default:
+        throw new Error("Unknown stepping type");
+    }
+
+    const { location } = getVisibleSelectedFrame(getState());
+
+    is(location.sourceId, source.id, `Step ${i} has correct sourceId`);
+    is(location.line, position.line, `Step ${i} has correct line`);
+    is(location.column, position.column, `Step ${i} has correct column`);
+
+    assertPausedLocation(dbg);
+  }
+}
+
+function testStepOverForOf(dbg) {
+  return breakpointSteps(dbg, "babel-step-over-for-of", { line: 4, column: 2 }, [
+    ["stepOver", { line: 6, column: 2 }],
+    ["stepOver", { line: 7, column: 4 }],
+    ["stepOver", { line: 6, column: 2 }],
+    ["stepOver", { line: 7, column: 4 }],
+    ["stepOver", { line: 6, column: 2 }],
+    ["stepOver", { line: 10, column: 2 }]
+  ]);
+}
+
+// This codifies the current behavior, but stepping twice over the for
+// header isn't ideal.
+function testStepOverForOfArray(dbg) {
+  return breakpointSteps(dbg, "babel-step-over-for-of-array", { line: 3, column: 2 }, [
+    ["stepOver", { line: 5, column: 2 }],
+    ["stepOver", { line: 5, column: 7 }],
+    ["stepOver", { line: 6, column: 4 }],
+    ["stepOver", { line: 5, column: 2 }],
+    ["stepOver", { line: 5, column: 7 }],
+    ["stepOver", { line: 6, column: 4 }],
+    ["stepOver", { line: 5, column: 2 }],
+    ["stepOver", { line: 9, column: 2 }]
+  ]);
+}
+
+// The closure means it isn't actually possible to step into the for body,
+// and Babel doesn't map the _loop() call, so we step past it automatically.
+function testStepOveForOfClosure(dbg) {
+  return breakpointSteps(
+    dbg,
+    "babel-step-over-for-of-closure",
+    { line: 6, column: 2 },
+    [
+      ["stepOver", { line: 8, column: 2 }],
+      ["stepOver", { line: 12, column: 2 }]
+    ]
+  );
+}
+
+// Same as the previous, not possible to step into the body. The less
+// complicated array logic makes it possible to step into the header at least,
+// but this does end up double-visiting the for head.
+function testStepOverForOfArrayClosure(dbg) {
+  return breakpointSteps(
+    dbg,
+    "babel-step-over-for-of-array-closure",
+    { line: 3, column: 2 },
+    [
+      ["stepOver", { line: 5, column: 2 }],
+      ["stepOver", { line: 5, column: 7 }],
+      ["stepOver", { line: 5, column: 2 }],
+      ["stepOver", { line: 5, column: 7 }],
+      ["stepOver", { line: 5, column: 2 }],
+      ["stepOver", { line: 9, column: 2 }]
+    ]
+  );
+}
+
+function testStepOverFunctionParams(dbg) {
+  return breakpointSteps(
+    dbg,
+    "babel-step-over-function-params",
+    { line: 6, column: 2 },
+    [["stepOver", { line: 7, column: 2 }], ["stepIn", { line: 2, column: 2 }]]
+  );
+}
+
+function testStepOverRegeneratorAwait(dbg) {
+  return breakpointSteps(
+    dbg,
+    "babel-step-over-regenerator-await",
+    { line: 2, column: 2 },
+    [
+      // Won't work until a fix to regenerator lands and we rebuild.
+      // https://github.com/facebook/regenerator/issues/342
+      // ["stepOver", { line: 4, column: 2 }],
+    ]
+  );
+}
+
+add_task(async function() {
+  const dbg = await initDebugger("doc-sourcemapped.html");
+
+  await testStepOverForOf(dbg);
+  await testStepOverForOfArray(dbg);
+  await testStepOveForOfClosure(dbg);
+  await testStepOverForOfArrayClosure(dbg);
+  await testStepOverFunctionParams(dbg);
+  await testStepOverRegeneratorAwait(dbg);
+});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/output.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var classes =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-exports.default = root;
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function root() {
-  var one = 1;
-
-  var Thing = function Thing() {
-    _classCallCheck(this, Thing);
-  };
-
-  var Another = function () {
-    function Another() {
-      _classCallCheck(this, Another);
-    }
-
-    _createClass(Another, [{
-      key: "method",
-      value: function method() {
-        var two = 2;
-
-        var three = 3;
-
-        console.log("pause here", Another, one, Thing, root);
-      }
-    }]);
-
-    return Another;
-  }();
-
-  new Another().method();
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/classes/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap ee4d5373eab7f7864b46","webpack:///./fixtures/classes/input.js"],"names":["root","one","Thing","Another","two","three","console","log","method"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;kBC7DwBA,I;;;;AAAT,SAASA,IAAT,GAAgB;AAC7B,MAAIC,MAAM,CAAV;;AAD6B,MAGvBC,KAHuB;AAAA;AAAA;;AAAA,MAKvBC,OALuB;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,+BAMlB;AACP,YAAIC,MAAM,CAAV;;AAEA,YAAMC,QAAQ,CAAd;;AAEAC,gBAAQC,GAAR,CAAY,YAAZ,EAA0BJ,OAA1B,EAAmCF,GAAnC,EAAwCC,KAAxC,EAA+CF,IAA/C;AACD;AAZ0B;;AAAA;AAAA;;AAe7B,MAAIG,OAAJ,GAAcK,MAAd;AACD","file":"fixtures/classes/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ee4d5373eab7f7864b46","export default function root() {\n  let one = 1;\n\n  class Thing {}\n\n  class Another {\n    method() {\n      let two = 2;\n\n      const three = 3;\n\n      console.log(\"pause here\", Another, one, Thing, root);\n    }\n  }\n\n  new Another().method();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/classes/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/input.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var moduleScoped = 1;
-let alsoModuleScoped = 2;
-
-function thirdModuleScoped() {}
-
-module.exports = function() {
-  console.log("pause here", moduleScoped, alsoModuleScoped, thirdModuleScoped);
-};
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/output.js
+++ /dev/null
@@ -1,85 +0,0 @@
-var commonjs =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var moduleScoped = 1;
-var alsoModuleScoped = 2;
-
-function thirdModuleScoped() {}
-
-module.exports = function () {
-  console.log("pause here", moduleScoped, alsoModuleScoped, thirdModuleScoped);
-};
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/commonjs/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap ffb963fac42d81060378","webpack:///./fixtures/commonjs/input.js"],"names":["moduleScoped","alsoModuleScoped","thirdModuleScoped","module","exports","console","log"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;AC7DA,IAAIA,eAAe,CAAnB;AACA,IAAIC,mBAAmB,CAAvB;;AAEA,SAASC,iBAAT,GAA6B,CAAE;;AAE/BC,OAAOC,OAAP,GAAiB,YAAW;AAC1BC,UAAQC,GAAR,CAAY,YAAZ,EAA0BN,YAA1B,EAAwCC,gBAAxC,EAA0DC,iBAA1D;AACD,CAFD,C","file":"fixtures/commonjs/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ffb963fac42d81060378","var moduleScoped = 1;\nlet alsoModuleScoped = 2;\n\nfunction thirdModuleScoped() {}\n\nmodule.exports = function() {\n  console.log(\"pause here\", moduleScoped, alsoModuleScoped, thirdModuleScoped);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/commonjs/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/eval-source-maps/output.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var evalSourceMaps =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = root;\nfunction root() {\n  var one = 1;\n  var two = 2;\n  var three = 3;\n\n  one;\n  two;\n\n  {\n    var _two = 4;\n    var _three = 5;\n\n    console.log(\"pause here\", one, _two, _three);\n  }\n}\nmodule.exports = exports[\"default\"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9maXh0dXJlcy9ldmFsLXNvdXJjZS1tYXBzL2lucHV0LmpzP2VkYzgiXSwibmFtZXMiOlsicm9vdCIsIm9uZSIsInR3byIsInRocmVlIiwiY29uc29sZSIsImxvZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBQ3dCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQjtBQUM3QixNQUFJQyxNQUFNLENBQVY7QUFDQSxNQUFJQyxNQUFNLENBQVY7QUFDQSxNQUFNQyxRQUFRLENBQWQ7O0FBRUFGO0FBQ0FDOztBQUVBO0FBQ0UsUUFBSUEsT0FBTSxDQUFWO0FBQ0EsUUFBTUMsU0FBUSxDQUFkOztBQUVBQyxZQUFRQyxHQUFSLENBQVksWUFBWixFQUEwQkosR0FBMUIsRUFBK0JDLElBQS9CLEVBQW9DQyxNQUFwQztBQUNEO0FBQ0YiLCJmaWxlIjoiMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm9vdCgpIHtcbiAgdmFyIG9uZSA9IDE7XG4gIGxldCB0d28gPSAyO1xuICBjb25zdCB0aHJlZSA9IDM7XG5cbiAgb25lO1xuICB0d287XG5cbiAge1xuICAgIGxldCB0d28gPSA0O1xuICAgIGNvbnN0IHRocmVlID0gNTtcblxuICAgIGNvbnNvbGUubG9nKFwicGF1c2UgaGVyZVwiLCBvbmUsIHR3bywgdGhyZWUpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9maXh0dXJlcy9ldmFsLXNvdXJjZS1tYXBzL2lucHV0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0\n");
-
-/***/ })
-/******/ ]);
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/output.js
+++ /dev/null
@@ -1,89 +0,0 @@
-var flowtypeBindings =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-
-
-var aConst = "a-const";
-
-function root() {
-  console.log("pause here", aConst, root);
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/flowtype-bindings/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 1fc1e80408151897b204","webpack:///./fixtures/flowtype-bindings/input.js"],"names":["root","aConst","console","log"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBCvDwBA,I;;;AAFxB,IAAMC,SAAS,SAAf;;AAEe,SAASD,IAAT,GAAgB;AAC7BE,UAAQC,GAAR,CAAY,YAAZ,EAA0BF,MAA1B,EAAkCD,IAAlC;AACD","file":"fixtures/flowtype-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1fc1e80408151897b204","import type { One, Two, Three } from \"./src/mod\";\n\ntype Other = {};\n\nconst aConst = \"a-const\";\n\nexport default function root() {\n  console.log(\"pause here\", aConst, root);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/flowtype-bindings/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-loops/output.js
+++ /dev/null
@@ -1,99 +0,0 @@
-var forLoops =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-function root() {
-  var i = 0;
-
-  for (var _i = 1; _i < 2; _i++) {
-    console.log("pause here", root);
-  }
-
-  for (var _i2 in { 2: "" }) {
-    console.log("pause here", root);
-  }
-
-  var _arr = [3];
-  for (var _i4 = 0; _i4 < _arr.length; _i4++) {
-    var _i3 = _arr[_i4];
-    console.log("pause here", root);
-  }
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-loops/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap eab8635500908123fac4","webpack:///./fixtures/for-loops/input.js"],"names":["root","i","console","log"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC7DwBA,I;AAAT,SAASA,IAAT,GAAgB;AAC7B,MAAIC,IAAI,CAAR;;AAEA,OAAK,IAAIA,KAAI,CAAb,EAAgBA,KAAI,CAApB,EAAuBA,IAAvB,EAA4B;AAC1BC,YAAQC,GAAR,CAAY,YAAZ,EAA0BH,IAA1B;AACD;;AAED,OAAK,IAAIC,GAAT,IAAc,EAAE,GAAG,EAAL,EAAd,EAAyB;AACvBC,YAAQC,GAAR,CAAY,YAAZ,EAA0BH,IAA1B;AACD;;AAT4B,aAWf,CAAC,CAAD,CAXe;AAW7B,8CAAmB;AAAd,QAAIC,eAAJ;AACHC,YAAQC,GAAR,CAAY,YAAZ,EAA0BH,IAA1B;AACD;AACF","file":"fixtures/for-loops/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap eab8635500908123fac4","export default function root() {\n  let i = 0;\n\n  for (let i = 1; i < 2; i++) {\n    console.log(\"pause here\", root);\n  }\n\n  for (let i in { 2: \"\" }) {\n    console.log(\"pause here\", root);\n  }\n\n  for (let i of [3]) {\n    console.log(\"pause here\", root);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/for-loops/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-of/output.js
+++ /dev/null
@@ -1,94 +0,0 @@
-var forOf =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = forOf;
-var mod = "module scoped";
-
-function forOf() {
-  var _arr = [1];
-
-  for (var _i = 0; _i < _arr.length; _i++) {
-    var x = _arr[_i];
-    doThing(x);
-  }
-
-  function doThing(arg) {}
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/for-of/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 531bdb05a2e8461e48b3","webpack:///./fixtures/for-of/input.js"],"names":["forOf","mod","x","doThing","arg"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3DwBA,K;AAFxB,IAAMC,MAAM,eAAZ;;AAEe,SAASD,KAAT,GAAiB;AAAA,aACd,CAAC,CAAD,CADc;;AAC9B,2CAAqB;AAAhB,QAAME,YAAN;AACHC,YAAQD,CAAR;AACD;;AAED,WAASC,OAAT,CAAiBC,GAAjB,EAAsB,CAAE;AACzB","file":"fixtures/for-of/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 531bdb05a2e8461e48b3","const mod = \"module scoped\";\n\nexport default function forOf() {\n  for (const x of [1]) {\n    doThing(x);\n  }\n\n  function doThing(arg) {}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/for-of/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/functions/output.js
+++ /dev/null
@@ -1,96 +0,0 @@
-var functions =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-function root() {
-
-  function decl(p1) {
-    var inner = function inner(p2) {
-      var arrow = function arrow(p3) {
-        console.log("pause here", p3, arrow, p2, inner, p1, decl, root);
-      };
-      arrow();
-    };
-    inner();
-  }
-
-  decl();
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/functions/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap bbb56a0ddd61e0c9076a","webpack:///./fixtures/functions/input.js"],"names":["root","decl","p1","inner","p2","arrow","p3","console","log"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC7DwBA,I;AAAT,SAASA,IAAT,GAAgB;;AAE7B,WAASC,IAAT,CAAcC,EAAd,EAAkB;AAChB,QAAMC,QAAQ,SAASA,KAAT,CAAeC,EAAf,EAAmB;AAC/B,UAAMC,QAAQ,SAARA,KAAQ,CAACC,EAAD,EAAQ;AACpBC,gBAAQC,GAAR,CAAY,YAAZ,EAA0BF,EAA1B,EAA8BD,KAA9B,EAAqCD,EAArC,EAAyCD,KAAzC,EAAgDD,EAAhD,EAAoDD,IAApD,EAA0DD,IAA1D;AACD,OAFD;AAGAK;AACD,KALD;AAMAF;AACD;;AAEDF;AACD","file":"fixtures/functions/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap bbb56a0ddd61e0c9076a","export default function root() {\n\n  function decl(p1) {\n    const inner = function inner(p2) {\n      const arrow = (p3) => {\n        console.log(\"pause here\", p3, arrow, p2, inner, p1, decl, root);\n      };\n      arrow();\n    };\n    inner();\n  }\n\n  decl();\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/functions/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/input.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import aDefault from "./src/mod1";
-import { aNamed, aNamed as anotherNamed } from "./src/mod2";
-import { original as anAliased } from "./src/mod3";
-import * as aNamespace from "./src/mod4";
-
-import aDefault2 from "./src/mod5";
-import { aNamed2, aNamed2 as anotherNamed2 } from "./src/mod6";
-import { original as anAliased2 } from "./src/mod7";
-import * as aNamespace2 from "./src/mod8";
-
-import aDefault3 from "./src/mod9";
-import { aNamed3, aNamed3 as anotherNamed3 } from "./src/mod10";
-import { original as anAliased3 } from "./src/mod11";
-import * as aNamespace3 from "./src/mod12";
-
-import optimizedOut from "./src/optimized-out";
-optimizedOut();
-
-export default function root() {
-  console.log("pause here", root);
-
-  console.log(aDefault);
-  console.log(anAliased);
-  console.log(aNamed);
-  console.log(anotherNamed);
-  console.log(aNamespace);
-
-  try {
-    // None of these are callable in this code, but we still want to make sure
-    // they map properly even if the only reference is in a call expressions.
-    console.log(aDefault2());
-    console.log(anAliased2());
-    console.log(aNamed2());
-    console.log(anotherNamed2());
-    console.log(aNamespace2());
-
-    console.log(new aDefault3());
-    console.log(new anAliased3());
-    console.log(new aNamed3());
-    console.log(new anotherNamed3());
-    console.log(new aNamespace3());
-  } catch (e) {}
-}
-
-export function example(){}
-
-// The build harness sets the wrong global, so just override it.
-Promise.resolve().then(() => {
-  window.importedBindings = root;
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js
+++ /dev/null
@@ -1,325 +0,0 @@
-var importedBindings =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-exports.example = example;
-
-var _mod = __webpack_require__(1);
-
-var _mod2 = _interopRequireDefault(_mod);
-
-var _mod3 = __webpack_require__(2);
-
-var _mod4 = __webpack_require__(3);
-
-var _mod5 = __webpack_require__(4);
-
-var aNamespace = _interopRequireWildcard(_mod5);
-
-var _mod6 = __webpack_require__(5);
-
-var _mod7 = _interopRequireDefault(_mod6);
-
-var _mod8 = __webpack_require__(6);
-
-var _mod9 = __webpack_require__(7);
-
-var _mod10 = __webpack_require__(8);
-
-var aNamespace2 = _interopRequireWildcard(_mod10);
-
-var _mod11 = __webpack_require__(9);
-
-var _mod12 = _interopRequireDefault(_mod11);
-
-var _mod13 = __webpack_require__(10);
-
-var _mod14 = __webpack_require__(11);
-
-var _mod15 = __webpack_require__(12);
-
-var aNamespace3 = _interopRequireWildcard(_mod15);
-
-var _optimizedOut = __webpack_require__(13);
-
-var _optimizedOut2 = _interopRequireDefault(_optimizedOut);
-
-function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-(0, _optimizedOut2.default)();
-
-function root() {
-  console.log("pause here", root);
-
-  console.log(_mod2.default);
-  console.log(_mod4.original);
-  console.log(_mod3.aNamed);
-  console.log(_mod3.aNamed);
-  console.log(aNamespace);
-
-  try {
-    // None of these are callable in this code, but we still want to make sure
-    // they map properly even if the only reference is in a call expressions.
-    console.log((0, _mod7.default)());
-    console.log((0, _mod9.original)());
-    console.log((0, _mod8.aNamed2)());
-    console.log((0, _mod8.aNamed2)());
-    console.log(aNamespace2());
-
-    console.log(new _mod12.default());
-    console.log(new _mod14.original());
-    console.log(new _mod13.aNamed3());
-    console.log(new _mod13.aNamed3());
-    console.log(new aNamespace3());
-  } catch (e) {}
-}
-
-function example() {}
-
-// The build harness sets the wrong global, so just override it.
-Promise.resolve().then(function () {
-  window.importedBindings = root;
-});
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default";
-module.exports = exports["default"];
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var aNamed = exports.aNamed = "a-named";
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var original = exports.original = "an-original";
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default";
-var aNamed = exports.aNamed = "a-named";
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default2";
-module.exports = exports["default"];
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var aNamed2 = exports.aNamed2 = "a-named2";
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var original = exports.original = "an-original2";
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default2";
-var aNamed = exports.aNamed = "a-named2";
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default3";
-module.exports = exports["default"];
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var aNamed3 = exports.aNamed3 = "a-named3";
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-var original = exports.original = "an-original3";
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default3";
-var aNamed = exports.aNamed = "a-named3";
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = optimizedOut;
-function optimizedOut() {}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap f26be9eca6f5710ed7aa","webpack:///./fixtures/imported-bindings/input.js","webpack:///./fixtures/imported-bindings/src/mod1.js","webpack:///./fixtures/imported-bindings/src/mod2.js","webpack:///./fixtures/imported-bindings/src/mod3.js","webpack:///./fixtures/imported-bindings/src/mod4.js","webpack:///./fixtures/imported-bindings/src/mod5.js","webpack:///./fixtures/imported-bindings/src/mod6.js","webpack:///./fixtures/imported-bindings/src/mod7.js","webpack:///./fixtures/imported-bindings/src/mod8.js","webpack:///./fixtures/imported-bindings/src/mod9.js","webpack:///./fixtures/imported-bindings/src/mod10.js","webpack:///./fixtures/imported-bindings/src/mod11.js","webpack:///./fixtures/imported-bindings/src/mod12.js","webpack:///./fixtures/imported-bindings/src/optimized-out.js"],"names":["root","example","aNamespace","aNamespace2","aNamespace3","console","log","aDefault","anAliased","aNamed","anotherNamed","aDefault3","anAliased3","aNamed3","anotherNamed3","e","Promise","resolve","then","window","importedBindings","original","aNamed2","optimizedOut"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3CwBA,I;QA0BRC,O,GAAAA,O;;AA5ChB;;;;AACA;;AACA;;AACA;;IAAYC,U;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;;;;;AACA;;AAEe,SAASJ,IAAT,GAAgB;AAC7BK,UAAQC,GAAR,CAAY,YAAZ,EAA0BN,IAA1B;;AAEAK,UAAQC,GAAR,CAAYC,aAAZ;AACAF,UAAQC,GAAR,CAAYE,cAAZ;AACAH,UAAQC,GAAR,CAAYG,YAAZ;AACAJ,UAAQC,GAAR,CAAYI,YAAZ;AACAL,UAAQC,GAAR,CAAYJ,UAAZ;;AAEA,MAAI;AACF;AACA;AACAG,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAYH,aAAZ;;AAEAE,YAAQC,GAAR,CAAY,IAAIK,cAAJ,EAAZ;AACAN,YAAQC,GAAR,CAAY,IAAIM,eAAJ,EAAZ;AACAP,YAAQC,GAAR,CAAY,IAAIO,cAAJ,EAAZ;AACAR,YAAQC,GAAR,CAAY,IAAIQ,cAAJ,EAAZ;AACAT,YAAQC,GAAR,CAAY,IAAIF,WAAJ,EAAZ;AACD,GAdD,CAcE,OAAOW,CAAP,EAAU,CAAE;AACf;;AAEM,SAASd,OAAT,GAAkB,CAAE;;AAE3B;AACAe,QAAQC,OAAR,GAAkBC,IAAlB,CAAuB,YAAM;AAC3BC,SAAOC,gBAAP,GAA0BpB,IAA1B;AACD,CAFD,E;;;;;;;;;;;;kBC/Ce,W;;;;;;;;;;;;;ACAR,IAAMS,0BAAS,SAAf,C;;;;;;;;;;;;ACAA,IAAMY,8BAAW,aAAjB,C;;;;;;;;;;;;kBCAQ,W;AACR,IAAMZ,0BAAS,SAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAMa,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMD,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMZ,0BAAS,UAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAMI,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMQ,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMZ,0BAAS,UAAf,C;;;;;;;;;;;;kBCDiBc,Y;AAAT,SAASA,YAAT,GAAwB,CAAE","file":"fixtures/imported-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f26be9eca6f5710ed7aa","import aDefault from \"./src/mod1\";\nimport { aNamed, aNamed as anotherNamed } from \"./src/mod2\";\nimport { original as anAliased } from \"./src/mod3\";\nimport * as aNamespace from \"./src/mod4\";\n\nimport aDefault2 from \"./src/mod5\";\nimport { aNamed2, aNamed2 as anotherNamed2 } from \"./src/mod6\";\nimport { original as anAliased2 } from \"./src/mod7\";\nimport * as aNamespace2 from \"./src/mod8\";\n\nimport aDefault3 from \"./src/mod9\";\nimport { aNamed3, aNamed3 as anotherNamed3 } from \"./src/mod10\";\nimport { original as anAliased3 } from \"./src/mod11\";\nimport * as aNamespace3 from \"./src/mod12\";\n\nimport optimizedOut from \"./src/optimized-out\";\noptimizedOut();\n\nexport default function root() {\n  console.log(\"pause here\", root);\n\n  console.log(aDefault);\n  console.log(anAliased);\n  console.log(aNamed);\n  console.log(anotherNamed);\n  console.log(aNamespace);\n\n  try {\n    // None of these are callable in this code, but we still want to make sure\n    // they map properly even if the only reference is in a call expressions.\n    console.log(aDefault2());\n    console.log(anAliased2());\n    console.log(aNamed2());\n    console.log(anotherNamed2());\n    console.log(aNamespace2());\n\n    console.log(new aDefault3());\n    console.log(new anAliased3());\n    console.log(new aNamed3());\n    console.log(new anotherNamed3());\n    console.log(new aNamespace3());\n  } catch (e) {}\n}\n\nexport function example(){}\n\n// The build harness sets the wrong global, so just override it.\nPromise.resolve().then(() => {\n  window.importedBindings = root;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod1.js","export const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod2.js","export const original = \"an-original\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod3.js","export default \"a-default\";\nexport const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod4.js","export default \"a-default2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod5.js","export const aNamed2 = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod6.js","export const original = \"an-original2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod7.js","export default \"a-default2\";\nexport const aNamed = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod8.js","export default \"a-default3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod9.js","export const aNamed3 = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod10.js","export const original = \"an-original3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod11.js","export default \"a-default3\";\nexport const aNamed = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod12.js","export default function optimizedOut() {}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/optimized-out.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/input.js
+++ /dev/null
@@ -1,29 +0,0 @@
-
-export default function root() {
-  function aFunc(){
-    // Since these bindings are on their own linem, the mappings will
-    // extend to the start of the line, rather than starting at the first
-    // character of the binding.
-    const {
-      one,
-      two
-    } = {
-      one: 1,
-      two: 2,
-    };
-
-    // The 'this' binding here is also its own line, so the comment above
-    // applies here too.
-    this.thing = 4;
-
-    console.log("pause here");
-  }
-
-  aFunc.call({ });
-}
-
-
-// The build harness sets the wrong global, so just override it.
-Promise.resolve().then(() => {
-  window.lineStartBindingsEs6 = root;
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/output.js
+++ /dev/null
@@ -1,105 +0,0 @@
-var lineStartBindingsEs6 =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
-/* harmony export (immutable) */ __webpack_exports__["default"] = root;
-
-function root() {
-  function aFunc() {
-    // Since these bindings are on their own linem, the mappings will
-    // extend to the start of the line, rather than starting at the first
-    // character of the binding.
-    const {
-      one,
-      two
-    } = {
-      one: 1,
-      two: 2
-    };
-
-    // The 'this' binding here is also its own line, so the comment above
-    // applies here too.
-    this.thing = 4;
-
-    console.log("pause here");
-  }
-
-  aFunc.call({});
-}
-
-// The build harness sets the wrong global, so just override it.
-Promise.resolve().then(() => {
-  window.lineStartBindingsEs6 = root;
-});
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/line-start-bindings-es6/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 3fee9e40469b3fb786b0","webpack:///./fixtures/line-start-bindings-es6/input.js"],"names":["root","aFunc","one","two","thing","console","log","call","Promise","resolve","then","window","lineStartBindingsEs6"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;AC5De,SAASA,IAAT,GAAgB;AAC7B,WAASC,KAAT,GAAgB;AACd;AACA;AACA;AACA,UAAM;AACJC,SADI;AAEJC;AAFI,QAGF;AACFD,WAAK,CADH;AAEFC,WAAK;AAFH,KAHJ;;AAQA;AACA;AACA,SAAKC,KAAL,GAAa,CAAb;;AAEAC,YAAQC,GAAR,CAAY,YAAZ;AACD;;AAEDL,QAAMM,IAAN,CAAW,EAAX;AACD;;AAGD;AACAC,QAAQC,OAAR,GAAkBC,IAAlB,CAAuB,MAAM;AAC3BC,SAAOC,oBAAP,GAA8BZ,IAA9B;AACD,CAFD,E","file":"fixtures/line-start-bindings-es6/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3fee9e40469b3fb786b0","\nexport default function root() {\n  function aFunc(){\n    // Since these bindings are on their own linem, the mappings will\n    // extend to the start of the line, rather than starting at the first\n    // character of the binding.\n    const {\n      one,\n      two\n    } = {\n      one: 1,\n      two: 2,\n    };\n\n    // The 'this' binding here is also its own line, so the comment above\n    // applies here too.\n    this.thing = 4;\n\n    console.log(\"pause here\");\n  }\n\n  aFunc.call({ });\n}\n\n\n// The build harness sets the wrong global, so just override it.\nPromise.resolve().then(() => {\n  window.lineStartBindingsEs6 = root;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/line-start-bindings-es6/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/modules/output.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var modules =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function () {
-  console.log("pause here", moduleScoped, alsoModuleScoped, thirdModuleScoped);
-};
-
-var moduleScoped = 1;
-var alsoModuleScoped = 2;
-
-function thirdModuleScoped() {}
-
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/modules/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 9b9a58c4024fd01afcf0","webpack:///./fixtures/modules/input.js"],"names":["console","log","moduleScoped","alsoModuleScoped","thirdModuleScoped"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;kBCxDe,YAAW;AACxBA,UAAQC,GAAR,CAAY,YAAZ,EAA0BC,YAA1B,EAAwCC,gBAAxC,EAA0DC,iBAA1D;AACD,C;;AAPD,IAAIF,eAAe,CAAnB;AACA,IAAIC,mBAAmB,CAAvB;;AAEA,SAASC,iBAAT,GAA6B,CAAE","file":"fixtures/modules/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9b9a58c4024fd01afcf0","var moduleScoped = 1;\nlet alsoModuleScoped = 2;\n\nfunction thirdModuleScoped() {}\n\nexport default function() {\n  console.log(\"pause here\", moduleScoped, alsoModuleScoped, thirdModuleScoped);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/modules/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/input.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var moduleScoped = 1;
-let alsoModuleScopes = 2;
-
-function thirdModuleScoped() {}
-
-function nonModules() {
-  console.log("pause here");
-}
-
-Promise.resolve().then(() => {
-  // Webpack sets this to undefined initially since this file
-  // doesn't export anything, so we overwrite it on the next tick.
-  window.nonModules = nonModules;
-});
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/output.js
+++ /dev/null
@@ -1,91 +0,0 @@
-var nonModules =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var moduleScoped = 1;
-var alsoModuleScopes = 2;
-
-function thirdModuleScoped() {}
-
-function nonModules() {
-  console.log("pause here");
-}
-
-Promise.resolve().then(function () {
-  // Webpack sets this to undefined initially since this file
-  // doesn't export anything, so we overwrite it on the next tick.
-  window.nonModules = nonModules;
-});
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/non-modules/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 043cfddbb224a4258f85","webpack:///./fixtures/non-modules/input.js"],"names":["moduleScoped","alsoModuleScopes","thirdModuleScoped","nonModules","console","log","Promise","resolve","then","window"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;AC7DA,IAAIA,eAAe,CAAnB;AACA,IAAIC,mBAAmB,CAAvB;;AAEA,SAASC,iBAAT,GAA6B,CAAE;;AAE/B,SAASC,UAAT,GAAsB;AACpBC,UAAQC,GAAR,CAAY,YAAZ;AACD;;AAEDC,QAAQC,OAAR,GAAkBC,IAAlB,CAAuB,YAAM;AAC3B;AACA;AACAC,SAAON,UAAP,GAAoBA,UAApB;AACD,CAJD,E","file":"fixtures/non-modules/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 043cfddbb224a4258f85","var moduleScoped = 1;\nlet alsoModuleScopes = 2;\n\nfunction thirdModuleScoped() {}\n\nfunction nonModules() {\n  console.log(\"pause here\");\n}\n\nPromise.resolve().then(() => {\n  // Webpack sets this to undefined initially since this file\n  // doesn't export anything, so we overwrite it on the next tick.\n  window.nonModules = nonModules;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/non-modules/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js
+++ /dev/null
@@ -1,118 +0,0 @@
-var outOfOrderDeclarations =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-
-var _mod = __webpack_require__(1);
-
-var _mod2 = _interopRequireDefault(_mod);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-var val = "outer-value";
-
-function root() {
-  var val = "middle-value";
-  var fn = function outerFn(outer) {};
-
-  function callback() {
-    console.log("pause here", val, _mod2.default, fn);
-
-    var val = "inner-value";
-    function fn(inner) {};
-  }
-
-  callback();
-}
-
-module.exports = exports["default"];
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = "a-default";
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 4f5a475903003c64fcaa","webpack:///./fixtures/out-of-order-declarations/input.js","webpack:///./fixtures/out-of-order-declarations/src/mod.js"],"names":["root","val","fn","outerFn","outer","callback","console","log","aDefault","inner"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3DwBA,I;;AAcxB;;;;;;AAhBA,IAAIC,MAAM,aAAV;;AAEe,SAASD,IAAT,GAAgB;AAC7B,MAAIC,MAAM,cAAV;AACA,MAAIC,KAAK,SAASC,OAAT,CAAiBC,KAAjB,EAAuB,CAAE,CAAlC;;AAEA,WAASC,QAAT,GAAoB;AAClBC,YAAQC,GAAR,CAAY,YAAZ,EAA0BN,GAA1B,EAA+BO,aAA/B,EAAyCN,EAAzC;;AAEA,QAAID,MAAM,aAAV;AACA,aAASC,EAAT,CAAYO,KAAZ,EAAkB,CAAE;AACrB;;AAEDJ;AACD;;;;;;;;;;;;;;kBCdc,W","file":"fixtures/out-of-order-declarations/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4f5a475903003c64fcaa","var val = \"outer-value\";\n\nexport default function root() {\n  var val = \"middle-value\";\n  var fn = function outerFn(outer){};\n\n  function callback() {\n    console.log(\"pause here\", val, aDefault, fn);\n\n    var val = \"inner-value\";\n    function fn(inner){};\n  }\n\n  callback();\n}\n\nimport aDefault from \"./src/mod\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/src/mod.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/shadowed-vars/output.js
+++ /dev/null
@@ -1,109 +0,0 @@
-var shadowedVars =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-
-exports.default = function () {
-  var aVar = "var1";
-  var aLet = "let1";
-  var aConst = "const1";
-
-  var Outer = function Outer() {
-    _classCallCheck(this, Outer);
-  };
-
-  {
-    var _Outer = function _Outer() {};
-
-    var aVar = "var2";
-    var _aLet = "let2";
-    var _aConst = "const2";
-    {
-      var aVar = "var3";
-      var _aLet2 = "let3";
-      var _aConst2 = "const3";
-
-      console.log("pause here");
-    }
-  }
-};
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/shadowed-vars/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 86e57a8486c00f04d181","webpack:///./fixtures/shadowed-vars/input.js"],"names":["aVar","aLet","aConst","Outer","console","log"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;kBC7De,YAAW;AACxB,MAAIA,OAAO,MAAX;AACA,MAAIC,OAAO,MAAX;AACA,MAAMC,SAAS,QAAf;;AAHwB,MAKlBC,KALkB;AAAA;AAAA;;AAMxB;AAAA,QACWA,MADX,GACE,SAASA,MAAT,GAAiB,CAAE,CADrB;;AAGE,QAAIH,OAAO,MAAX;AACA,QAAIC,QAAO,MAAX;AACA,QAAMC,UAAS,QAAf;AACA;AACE,UAAIF,OAAO,MAAX;AACA,UAAIC,SAAO,MAAX;AACA,UAAMC,WAAS,QAAf;;AAEAE,cAAQC,GAAR,CAAY,YAAZ;AACD;AACF;AACF,C","file":"fixtures/shadowed-vars/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 86e57a8486c00f04d181","export default function() {\n  var aVar = \"var1\";\n  let aLet = \"let1\";\n  const aConst = \"const1\";\n\n  class Outer {}\n  {\n    function Outer() {}\n\n    var aVar = \"var2\";\n    let aLet = \"let2\";\n    const aConst = \"const2\";\n    {\n      var aVar = \"var3\";\n      let aLet = \"let3\";\n      const aConst = \"const3\";\n\n      console.log(\"pause here\");\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/shadowed-vars/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array-closure/output.js
+++ /dev/null
@@ -1,100 +0,0 @@
-var stepOverForOfArrayClosure =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-// Babel will optimize this for..of because it call tell the value is an array.
-function root() {
-  console.log("pause here");
-
-  var _loop = function _loop(val) {
-    console.log("pause again", function () {
-      return val;
-    }());
-  };
-
-  var _arr = [1, 2];
-  for (var _i = 0; _i < _arr.length; _i++) {
-    var val = _arr[_i];
-    _loop(val);
-  }
-
-  console.log("done");
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array-closure/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 8007c2ba9751c074d10b","webpack:///./fixtures/step-over-for-of-array-closure/input.js"],"names":["root","console","log","val"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC5DwBA,I;AADxB;AACe,SAASA,IAAT,GAAgB;AAC7BC,UAAQC,GAAR,CAAY,YAAZ;;AAD6B,6BAGlBC,GAHkB;AAI3BF,YAAQC,GAAR,CAAY,aAAZ,EAA4B;AAAA,aAAMC,GAAN;AAAA,KAAD,EAA3B;AAJ2B;;AAAA,aAGX,CAAC,CAAD,EAAI,CAAJ,CAHW;AAG7B,2CAA0B;AAArB,QAAMA,cAAN;AAAqB,UAAfA,GAAe;AAEzB;;AAEDF,UAAQC,GAAR,CAAY,MAAZ;AACD","file":"fixtures/step-over-for-of-array-closure/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8007c2ba9751c074d10b","// Babel will optimize this for..of because it call tell the value is an array.\nexport default function root() {\n  console.log(\"pause here\");\n\n  for (const val of [1, 2]) {\n    console.log(\"pause again\", (() => val)());\n  }\n\n  console.log(\"done\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/step-over-for-of-array-closure/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array/output.js
+++ /dev/null
@@ -1,94 +0,0 @@
-var stepOverForOfArray =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-// Babel will optimize this for..of because it call tell the value is an array.
-function root() {
-  console.log("pause here");
-
-  var _arr = [1, 2];
-  for (var _i = 0; _i < _arr.length; _i++) {
-    var val = _arr[_i];
-    console.log("pause again", val);
-  }
-
-  console.log("done");
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-array/output.js.map
+++ /dev/null
@@ -1,1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 7b3f661ba4b415ad82ac","webpack:///./fixtures/step-over-for-of-array/input.js"],"names":["root","console","log","val"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC5DwBA,I;AADxB;AACe,SAASA,IAAT,GAAgB;AAC7BC,UAAQC,GAAR,CAAY,YAAZ;;AAD6B,aAGX,CAAC,CAAD,EAAI,CAAJ,CAHW;AAG7B,2CAA0B;AAArB,QAAMC,cAAN;AACHF,YAAQC,GAAR,CAAY,aAAZ,EAA2BC,GAA3B;AACD;;AAEDF,UAAQC,GAAR,CAAY,MAAZ;AACD","file":"fixtures/step-over-for-of-array/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7b3f661ba4b415ad82ac","// Babel will optimize this for..of because it call tell the value is an array.\nexport default function root() {\n  console.log(\"pause here\");\n\n  for (const val of [1, 2]) {\n    console.log(\"pause again\", val);\n  }\n\n  console.log(\"done\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/step-over-for-of-array/input.js"],"sourceRoot":""}
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-closure/output.js
+++ /dev/null
@@ -1,122 +0,0 @@
-var stepOverForOfClosure =
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-/******/
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-/******/
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId]) {
-/******/ 			return installedModules[moduleId].exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			i: moduleId,
-/******/ 			l: false,
-/******/ 			exports: {}
-/******/ 		};
-/******/
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ 		// Flag the module as loaded
-/******/ 		module.l = true;
-/******/
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/
-/******/
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-/******/
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-/******/
-/******/ 	// define getter function for harmony exports
-/******/ 	__webpack_require__.d = function(exports, name, getter) {
-/******/ 		if(!__webpack_require__.o(exports, name)) {
-/******/ 			Object.defineProperty(exports, name, {
-/******/ 				configurable: false,
-/******/ 				enumerable: true,
-/******/ 				get: getter
-/******/ 			});
-/******/ 		}
-/******/ 	};
-/******/
-/******/ 	// getDefaultExport function for compatibility with non-harmony modules
-/******/ 	__webpack_require__.n = function(module) {
-/******/ 		var getter = module && module.__esModule ?
-/******/ 			function getDefault() { return module['default']; } :
-/******/ 			function getModuleExports() { return module; };
-/******/ 		__webpack_require__.d(getter, 'a', getter);
-/******/ 		return getter;
-/******/ 	};
-/******/
-/******/ 	// Object.prototype.hasOwnProperty.call
-/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
-/******/
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-/******/
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = root;
-// Babel will convert the loop body to a function to handle the 'val' lexical
-// enclosure behavior.
-var vals = [1, 2];
-
-function root() {
-  console.log("pause here");
-
-  var _loop = function _loop(val) {
-    console.log("pause again", function () {
-      return val;
-    }());
-  };
-
-  var _iteratorNormalCompletion = true;
-  var _didIteratorError = false;
-  var _iteratorError = undefined;
-
-  try {
-    for (var _iterator = vals[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
-      var val = _step.value;
-
-      _loop(val);
-    }
-  } catch (err) {
-    _didIteratorError = true;
-    _iteratorError = err;
-  } finally {
-    try {
-      if (!_iteratorNormalCompletion && _iterator.return) {
-        _iterator.return();
-      }
-    } finally {
-      if (_didIteratorError) {
-        throw _iteratorError;
-      }
-    }
-  }
-
-  console.log("done");
-}
-module.exports = exports["default"];
-
-/***/ })
-/******/ ]);
-//# sourceMappingURL=output.js.map
\ No newline at end of file
deleted file mode 100644
--- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/step-over-for-of-closure/output.js.map
+++ /dev/null
@@