summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /devtools/client/debugger/test/mochitest/examples/sourcemaps-reload
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/debugger/test/mochitest/examples/sourcemaps-reload')
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/.babelrc3
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/README.md7
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload.html15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload2.html15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload3.html15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/package.json18
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js91
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js.map1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.js8
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js94
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js.map1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.js13
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js78
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js.map1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.js3
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/webpack.config.js26
16 files changed, 389 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/.babelrc b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/.babelrc
new file mode 100644
index 0000000000..0d67235e87
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/.babelrc
@@ -0,0 +1,3 @@
+{
+ "plugins": ["transform-async-to-generator"]
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/README.md b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/README.md
new file mode 100644
index 0000000000..217e9d8468
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/README.md
@@ -0,0 +1,7 @@
+### Steps to Rebuild
+
+1. make changes to v1.js, v2.js, v3.js
+2. run `yarn` to install webpack & babel
+3. run `webpack`
+4. change `sources` reference in `v2.bundle.js.map` to `v1.js`
+5. change `sources` reference in `v3.bundle.js.map` to `v1.js`
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload.html b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload.html
new file mode 100644
index 0000000000..0df5ea7d5c
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload.html
@@ -0,0 +1,15 @@
+<!-- Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ -->
+<!doctype html>
+
+<html>
+ <script src="v1.bundle.js"></script>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Empty test page 1</title>
+ </head>
+
+ <body>
+ </body>
+
+</html>
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload2.html b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload2.html
new file mode 100644
index 0000000000..c59f0f4edc
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload2.html
@@ -0,0 +1,15 @@
+<!-- Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ -->
+<!doctype html>
+
+<html>
+ <script src="v2.bundle.js"></script>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Empty test page 2</title>
+ </head>
+
+ <body>
+ </body>
+
+</html>
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload3.html b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload3.html
new file mode 100644
index 0000000000..01e3623bc4
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/doc-sourcemaps-reload3.html
@@ -0,0 +1,15 @@
+<!-- Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ -->
+<!doctype html>
+
+<html>
+ <script src="v3.bundle.js"></script>
+ <head>
+ <meta charset="utf-8"/>
+ <title>Empty test page 3</title>
+ </head>
+
+ <body>
+ </body>
+
+</html>
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/package.json b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/package.json
new file mode 100644
index 0000000000..5b1c353f37
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "sourcemaps-reload",
+ "version": "1.0.0",
+ "description": "Rebuild assets for sourcemaps-reload test, see README.md in the same folder",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "MPL-2.0",
+ "dependencies": {},
+ "devDependencies": {
+ "babel-core": "^6.26.0",
+ "babel-loader": "^7.1.2",
+ "babel-preset-es2015": "^6.24.1",
+ "webpack": "^3.7.1"
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js
new file mode 100644
index 0000000000..583f1b0bd2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js
@@ -0,0 +1,91 @@
+/******/ (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) {
+
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100));
+};
+
+window.foo = (() => {
+ var _ref = _asyncToGenerator(function* () {
+ yield bar();
+ console.log("YO");
+ });
+
+ function foo() {
+ return _ref.apply(this, arguments);
+ }
+
+ return foo;
+})();
+
+/***/ })
+/******/ ]);
+//# sourceMappingURL=v1.bundle.js.map \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js.map b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js.map
new file mode 100644
index 0000000000..a69673087f
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap 7f7d36c9c8ca0d417720","webpack:///./v1.js"],"names":["window","bar","Promise","resolve","setTimeout","foo","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;;;;;;;;;AC7DAA,OAAOC,GAAP,GAAa,SAASA,GAAT,GAAe;AAC1B,SAAO,IAAIC,OAAJ,CAAYC,WAAWC,WAAWD,OAAX,EAAoB,GAApB,CAAvB,CAAP;AACD,CAFD;;AAIAH,OAAOK,GAAP;AAAA,+BAAa,aAAqB;AAChC,UAAMJ,KAAN;AACAK,YAAQC,GAAR,CAAY,IAAZ;AACD,GAHD;;AAAA,WAA4BF,GAA5B;AAAA;AAAA;;AAAA,SAA4BA,GAA5B;AAAA,K","file":"v1.bundle.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 7f7d36c9c8ca0d417720","window.bar = function bar() {\n return new Promise(resolve => setTimeout(resolve, 100))\n}\n\nwindow.foo = async function foo() {\n await bar();\n console.log(\"YO\")\n}\n\n\n\n// WEBPACK FOOTER //\n// ./v1.js"],"sourceRoot":""} \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.js
new file mode 100644
index 0000000000..d649dd6013
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v1.js
@@ -0,0 +1,8 @@
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100))
+}
+
+window.foo = async function foo() {
+ await bar();
+ console.log("YO")
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js
new file mode 100644
index 0000000000..4b3d13e019
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js
@@ -0,0 +1,94 @@
+/******/ (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 = 1);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */,
+/* 1 */
+/***/ (function(module, exports) {
+
+function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
+
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100));
+};
+
+window.foo = (() => {
+ var _ref = _asyncToGenerator(function* () {
+ yield bar();
+ console.log("YO");
+ });
+
+ function foo() {
+ return _ref.apply(this, arguments);
+ }
+
+ return foo;
+})();
+
+console.log("HEY");
+
+/***/ })
+/******/ ]);
+//# sourceMappingURL=v2.bundle.js.map \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js.map b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js.map
new file mode 100644
index 0000000000..21c153599a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap 7f7d36c9c8ca0d417720","webpack:///./v1.js"],"names":["window","bar","Promise","resolve","setTimeout","foo","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;;;;;;;;;;AC7DAA,OAAOC,GAAP,GAAa,SAASA,GAAT,GAAe;AAC1B,SAAO,IAAIC,OAAJ,CAAYC,WAAWC,WAAWD,OAAX,EAAoB,GAApB,CAAvB,CAAP;AACD,CAFD;;AAOAH,OAAOK,GAAP;AAAA,+BAAa,aAAqB;AAChC,UAAMJ,KAAN;AACAK,YAAQC,GAAR,CAAY,IAAZ;AACD,GAHD;;AAAA,WAA4BF,GAA5B;AAAA;AAAA;;AAAA,SAA4BA,GAA5B;AAAA;;AAKAC,QAAQC,GAAR,CAAY,KAAZ,E","file":"v2.bundle.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 = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7f7d36c9c8ca0d417720","window.bar = function bar() {\n return new Promise(resolve => setTimeout(resolve, 100))\n}\n\n\n\n\nwindow.foo = async function foo() {\n await bar();\n console.log(\"YO\")\n}\n\nconsole.log(\"HEY\")\n\n\n\n// WEBPACK FOOTER //\n// ./v2.js"],"sourceRoot":""} \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.js
new file mode 100644
index 0000000000..1694a9f319
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v2.js
@@ -0,0 +1,13 @@
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100))
+}
+
+
+
+
+window.foo = async function foo() {
+ await bar();
+ console.log("YO")
+}
+
+console.log("HEY")
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js
new file mode 100644
index 0000000000..210195140b
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js
@@ -0,0 +1,78 @@
+/******/ (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 = 2);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 2:
+/***/ (function(module, exports) {
+
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100));
+};
+
+/***/ })
+
+/******/ });
+//# sourceMappingURL=v3.bundle.js.map \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js.map b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js.map
new file mode 100644
index 0000000000..2d83e0eb3d
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap 7f7d36c9c8ca0d417720","webpack:///./v1.js"],"names":["window","bar","Promise","resolve","setTimeout"],"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;;;;;;;;AC7DAA,OAAOC,GAAP,GAAa,SAASA,GAAT,GAAe;AAC1B,SAAO,IAAIC,OAAJ,CAAYC,WAAWC,WAAWD,OAAX,EAAoB,GAApB,CAAvB,CAAP;AACD,CAFD,C","file":"v3.bundle.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 = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 7f7d36c9c8ca0d417720","window.bar = function bar() {\n return new Promise(resolve => setTimeout(resolve, 100))\n}\n\n\n\n// WEBPACK FOOTER //\n// ./v3.js"],"sourceRoot":""} \ No newline at end of file
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.js
new file mode 100644
index 0000000000..2268b51134
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/v3.js
@@ -0,0 +1,3 @@
+window.bar = function bar() {
+ return new Promise(resolve => setTimeout(resolve, 100))
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/webpack.config.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/webpack.config.js
new file mode 100644
index 0000000000..45192b8b6e
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload/webpack.config.js
@@ -0,0 +1,26 @@
+const path = require("path");
+const webpack = require("webpack");
+
+module.exports = {
+ entry: {
+ v1: "./v1.js",
+ v2: "./v2.js",
+ v3: "./v3.js"
+ },
+ output: {
+ path: __dirname,
+ filename: "[name].bundle.js"
+ },
+ devtool: "sourcemap",
+ module: {
+ loaders: [
+ {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ loader: "babel-loader"
+ }
+ ]
+ },
+ plugins: [
+ ]
+};