summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures')
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/src/mod.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-classes/input.js15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/src/mod.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/classes/input.js22
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/input.js41
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod1.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod10.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod11.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod12.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod2.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod3.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod4.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod5.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod6.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod7.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod8.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod9.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/optimized-out.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/input.js41
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod1.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod10.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod11.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod12.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod2.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod3.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod4.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod5.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod6.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod7.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod8.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod9.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/optimized-out.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/input.js41
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod1.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod10.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod11.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod12.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod2.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod3.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod4.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod5.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod6.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod7.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod8.js2
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod9.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/optimized-out.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/eval-maps/input.js16
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-loops/input.js15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-of/input.js12
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/functions/input.js14
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/lex-and-nonlex/input.js9
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/line-start-bindings-es6/input.js23
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/modules-cjs/input.js8
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/input.js17
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/src/mod.js1
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/shadowed-vars/input.js21
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array-closure/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-closure/input.js13
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of/input.js11
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-function-params/input.js8
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-regenerator-await/input.js15
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/switches/input.js13
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/this-arguments-bindings/input.js14
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/try-catches/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-module/input.js8
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-script-cjs/input.js10
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/input.ts51
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/src/mod.ts8
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-functions/input.js12
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/input.js18
-rw-r--r--devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/src/mod1.js1
74 files changed, 579 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/input.js
new file mode 100644
index 0000000000..378781d0d9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/input.js
@@ -0,0 +1,10 @@
+// Webpack doesn't map import declarations well, so doing this forces binding
+// processing to only process the binding being cast when searching for
+// matches. That way we can properly test if the flow cast causes problems.
+import { aNamed } from "./src/mod";
+
+export default function root() {
+ var value = (aNamed: Array<string>);
+
+ console.log("pause here", root, value);
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/src/mod.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/src/mod.js
new file mode 100644
index 0000000000..1b2adae4c2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-bindings-with-flow/src/mod.js
@@ -0,0 +1 @@
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-classes/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-classes/input.js
new file mode 100644
index 0000000000..a28b281645
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-classes/input.js
@@ -0,0 +1,15 @@
+export default function root() {
+ class Another {
+ bound = () => {
+ return this;
+ }
+
+ method() {
+ let two = 2;
+
+ console.log("pause here", Another, root);
+ }
+ }
+
+ new Another().method();
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/input.js
new file mode 100644
index 0000000000..867f0c1312
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/input.js
@@ -0,0 +1,10 @@
+import type { One, Two, Three } from "./src/mod";
+import { Four, type Five, typeof Six } from "./src/mod";
+
+type Other = {};
+
+const aConst = "a-const";
+
+export default function root() {
+ console.log("pause here", aConst, Four, root);
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/src/mod.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/src/mod.js
new file mode 100644
index 0000000000..c5f96ab664
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/babel-flowtype-bindings/src/mod.js
@@ -0,0 +1,2 @@
+export default "a-default";
+export const Four = "one";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/classes/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/classes/input.js
new file mode 100644
index 0000000000..3fcc8859b3
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/classes/input.js
@@ -0,0 +1,22 @@
+export default function root() {
+ let one = 1;
+
+ class Thing {
+ one() {
+ console.log("pause here");
+ }
+ }
+
+ class Another {
+ method() {
+ let two = 2;
+
+ const three = 3;
+
+ console.log("pause here", Another, one, Thing, root);
+ }
+ }
+
+ new Another().method();
+ new Thing().one();
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/input.js
new file mode 100644
index 0000000000..240d844162
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/input.js
@@ -0,0 +1,41 @@
+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 aDefault3 from "./src/mod9";
+import { aNamed3, aNamed3 as anotherNamed3 } from "./src/mod10";
+import { original as anAliased3 } from "./src/mod11";
+
+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(new aDefault3());
+ console.log(new anAliased3());
+ console.log(new aNamed3());
+ console.log(new anotherNamed3());
+ } catch (e) {}
+}
+
+export function example(){}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod1.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod1.js
new file mode 100644
index 0000000000..7ef4555146
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod1.js
@@ -0,0 +1 @@
+export default "a-default";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod10.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod10.js
new file mode 100644
index 0000000000..95c6aea486
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod10.js
@@ -0,0 +1 @@
+export const aNamed3 = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod11.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod11.js
new file mode 100644
index 0000000000..0436002e07
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod11.js
@@ -0,0 +1 @@
+export const original = "an-original3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod12.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod12.js
new file mode 100644
index 0000000000..51a4d2889a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod12.js
@@ -0,0 +1,2 @@
+export default "a-default3";
+export const aNamed = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod2.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod2.js
new file mode 100644
index 0000000000..1b2adae4c2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod2.js
@@ -0,0 +1 @@
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod3.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod3.js
new file mode 100644
index 0000000000..3432a8fb23
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod3.js
@@ -0,0 +1 @@
+export const original = "an-original";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod4.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod4.js
new file mode 100644
index 0000000000..8ae4b58dfb
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod4.js
@@ -0,0 +1,2 @@
+export default "a-default";
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod5.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod5.js
new file mode 100644
index 0000000000..fae2f9e6b9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod5.js
@@ -0,0 +1 @@
+export default "a-default2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod6.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod6.js
new file mode 100644
index 0000000000..bca6172ca6
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod6.js
@@ -0,0 +1 @@
+export const aNamed2 = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod7.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod7.js
new file mode 100644
index 0000000000..5e7085eaa0
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod7.js
@@ -0,0 +1 @@
+export const original = "an-original2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod8.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod8.js
new file mode 100644
index 0000000000..adbd8a9ae4
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod8.js
@@ -0,0 +1,2 @@
+export default "a-default2";
+export const aNamed = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod9.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod9.js
new file mode 100644
index 0000000000..089f470268
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/mod9.js
@@ -0,0 +1 @@
+export default "a-default3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/optimized-out.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/optimized-out.js
new file mode 100644
index 0000000000..ba5844e2df
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-cjs/src/optimized-out.js
@@ -0,0 +1 @@
+export default function optimizedOut() {}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/input.js
new file mode 100644
index 0000000000..240d844162
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/input.js
@@ -0,0 +1,41 @@
+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 aDefault3 from "./src/mod9";
+import { aNamed3, aNamed3 as anotherNamed3 } from "./src/mod10";
+import { original as anAliased3 } from "./src/mod11";
+
+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(new aDefault3());
+ console.log(new anAliased3());
+ console.log(new aNamed3());
+ console.log(new anotherNamed3());
+ } catch (e) {}
+}
+
+export function example(){}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod1.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod1.js
new file mode 100644
index 0000000000..7ef4555146
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod1.js
@@ -0,0 +1 @@
+export default "a-default";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod10.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod10.js
new file mode 100644
index 0000000000..95c6aea486
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod10.js
@@ -0,0 +1 @@
+export const aNamed3 = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod11.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod11.js
new file mode 100644
index 0000000000..0436002e07
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod11.js
@@ -0,0 +1 @@
+export const original = "an-original3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod12.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod12.js
new file mode 100644
index 0000000000..51a4d2889a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod12.js
@@ -0,0 +1,2 @@
+export default "a-default3";
+export const aNamed = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod2.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod2.js
new file mode 100644
index 0000000000..1b2adae4c2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod2.js
@@ -0,0 +1 @@
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod3.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod3.js
new file mode 100644
index 0000000000..3432a8fb23
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod3.js
@@ -0,0 +1 @@
+export const original = "an-original";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod4.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod4.js
new file mode 100644
index 0000000000..8ae4b58dfb
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod4.js
@@ -0,0 +1,2 @@
+export default "a-default";
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod5.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod5.js
new file mode 100644
index 0000000000..fae2f9e6b9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod5.js
@@ -0,0 +1 @@
+export default "a-default2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod6.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod6.js
new file mode 100644
index 0000000000..bca6172ca6
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod6.js
@@ -0,0 +1 @@
+export const aNamed2 = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod7.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod7.js
new file mode 100644
index 0000000000..5e7085eaa0
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod7.js
@@ -0,0 +1 @@
+export const original = "an-original2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod8.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod8.js
new file mode 100644
index 0000000000..adbd8a9ae4
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod8.js
@@ -0,0 +1,2 @@
+export default "a-default2";
+export const aNamed = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod9.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod9.js
new file mode 100644
index 0000000000..089f470268
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/mod9.js
@@ -0,0 +1 @@
+export default "a-default3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/optimized-out.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/optimized-out.js
new file mode 100644
index 0000000000..ba5844e2df
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules-es6/src/optimized-out.js
@@ -0,0 +1 @@
+export default function optimizedOut() {}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/input.js
new file mode 100644
index 0000000000..240d844162
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/input.js
@@ -0,0 +1,41 @@
+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 aDefault3 from "./src/mod9";
+import { aNamed3, aNamed3 as anotherNamed3 } from "./src/mod10";
+import { original as anAliased3 } from "./src/mod11";
+
+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(new aDefault3());
+ console.log(new anAliased3());
+ console.log(new aNamed3());
+ console.log(new anotherNamed3());
+ } catch (e) {}
+}
+
+export function example(){}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod1.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod1.js
new file mode 100644
index 0000000000..7ef4555146
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod1.js
@@ -0,0 +1 @@
+export default "a-default";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod10.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod10.js
new file mode 100644
index 0000000000..95c6aea486
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod10.js
@@ -0,0 +1 @@
+export const aNamed3 = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod11.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod11.js
new file mode 100644
index 0000000000..0436002e07
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod11.js
@@ -0,0 +1 @@
+export const original = "an-original3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod12.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod12.js
new file mode 100644
index 0000000000..51a4d2889a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod12.js
@@ -0,0 +1,2 @@
+export default "a-default3";
+export const aNamed = "a-named3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod2.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod2.js
new file mode 100644
index 0000000000..1b2adae4c2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod2.js
@@ -0,0 +1 @@
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod3.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod3.js
new file mode 100644
index 0000000000..3432a8fb23
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod3.js
@@ -0,0 +1 @@
+export const original = "an-original";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod4.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod4.js
new file mode 100644
index 0000000000..8ae4b58dfb
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod4.js
@@ -0,0 +1,2 @@
+export default "a-default";
+export const aNamed = "a-named";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod5.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod5.js
new file mode 100644
index 0000000000..fae2f9e6b9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod5.js
@@ -0,0 +1 @@
+export default "a-default2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod6.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod6.js
new file mode 100644
index 0000000000..bca6172ca6
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod6.js
@@ -0,0 +1 @@
+export const aNamed2 = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod7.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod7.js
new file mode 100644
index 0000000000..5e7085eaa0
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod7.js
@@ -0,0 +1 @@
+export const original = "an-original2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod8.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod8.js
new file mode 100644
index 0000000000..adbd8a9ae4
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod8.js
@@ -0,0 +1,2 @@
+export default "a-default2";
+export const aNamed = "a-named2";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod9.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod9.js
new file mode 100644
index 0000000000..089f470268
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/mod9.js
@@ -0,0 +1 @@
+export default "a-default3";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/optimized-out.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/optimized-out.js
new file mode 100644
index 0000000000..ba5844e2df
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/esmodules/src/optimized-out.js
@@ -0,0 +1 @@
+export default function optimizedOut() {}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/eval-maps/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/eval-maps/input.js
new file mode 100644
index 0000000000..c2cf5ac8cf
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/eval-maps/input.js
@@ -0,0 +1,16 @@
+
+export default function root() {
+ var one = 1;
+ let two = 2;
+ const three = 3;
+
+ one;
+ two;
+
+ {
+ let two = 4;
+ const three = 5;
+
+ console.log("pause here", one, two, three);
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-loops/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-loops/input.js
new file mode 100644
index 0000000000..9cf3bfd0dc
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-loops/input.js
@@ -0,0 +1,15 @@
+export default function root() {
+ let i = 0;
+
+ for (let i = 1; i < 2; i++) {
+ console.log("pause here", root);
+ }
+
+ for (let i in { 2: "" }) {
+ console.log("pause here", root);
+ }
+
+ for (let i of [3]) {
+ console.log("pause here", root);
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-of/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-of/input.js
new file mode 100644
index 0000000000..f6a9df426b
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/for-of/input.js
@@ -0,0 +1,12 @@
+const mod = "module scoped";
+
+export default function forOf() {
+ for (const x of [1]) {
+ doThing(x);
+ }
+
+ function doThing(arg) {
+ // Avoid optimize out
+ window.console;
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/functions/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/functions/input.js
new file mode 100644
index 0000000000..70e7b2cfb9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/functions/input.js
@@ -0,0 +1,14 @@
+export default function root() {
+
+ function decl(p1) {
+ const inner = function inner(p2) {
+ const arrow = (p3) => {
+ console.log("pause here", p3, arrow, p2, inner, p1, decl, root);
+ };
+ arrow();
+ };
+ inner();
+ }
+
+ decl();
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/lex-and-nonlex/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/lex-and-nonlex/input.js
new file mode 100644
index 0000000000..5704081677
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/lex-and-nonlex/input.js
@@ -0,0 +1,9 @@
+export default function root() {
+ function someHelper(){
+ console.log("pause here", root, Thing);
+ }
+
+ class Thing {}
+
+ someHelper();
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/line-start-bindings-es6/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/line-start-bindings-es6/input.js
new file mode 100644
index 0000000000..27947833e2
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/line-start-bindings-es6/input.js
@@ -0,0 +1,23 @@
+
+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", root);
+ }
+
+ aFunc.call({ });
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/modules-cjs/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/modules-cjs/input.js
new file mode 100644
index 0000000000..daf9c6213d
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/modules-cjs/input.js
@@ -0,0 +1,8 @@
+var moduleScoped = 1;
+let alsoModuleScoped = 2;
+
+function thirdModuleScoped() {}
+
+exports.default = function() {
+ console.log("pause here", moduleScoped, alsoModuleScoped, thirdModuleScoped);
+};
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/input.js
new file mode 100644
index 0000000000..cb54ba8bd3
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/input.js
@@ -0,0 +1,17 @@
+var val = "outer-value";
+
+export default function root() {
+ var val = "middle-value";
+ var fn = function outerFn(outer){};
+
+ function callback() {
+ console.log("pause here", val, aDefault, fn);
+
+ var val = "inner-value";
+ function fn(inner){};
+ }
+
+ callback();
+}
+
+import aDefault from "./src/mod";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/src/mod.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/src/mod.js
new file mode 100644
index 0000000000..7ef4555146
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/out-of-order-declarations-cjs/src/mod.js
@@ -0,0 +1 @@
+export default "a-default";
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/shadowed-vars/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/shadowed-vars/input.js
new file mode 100644
index 0000000000..abafae5f97
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/shadowed-vars/input.js
@@ -0,0 +1,21 @@
+export default function() {
+ var aVar = "var1";
+ let aLet = "let1";
+ const aConst = "const1";
+
+ class Outer {}
+ {
+ function Outer() {}
+
+ var aVar = "var2";
+ let aLet = "let2";
+ const aConst = "const2";
+ {
+ var aVar = "var3";
+ let aLet = "let3";
+ const aConst = "const3";
+
+ console.log("pause here");
+ }
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array-closure/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array-closure/input.js
new file mode 100644
index 0000000000..b708464367
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array-closure/input.js
@@ -0,0 +1,10 @@
+// Babel will optimize this for..of because it call tell the value is an array.
+export default function root() {
+ console.log("pause here");
+
+ for (const val of [1, 2]) {
+ console.log("pause again", (() => val)());
+ }
+
+ console.log("done");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array/input.js
new file mode 100644
index 0000000000..c703059b07
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-array/input.js
@@ -0,0 +1,10 @@
+// Babel will optimize this for..of because it call tell the value is an array.
+export default function root() {
+ console.log("pause here");
+
+ for (const val of [1, 2]) {
+ console.log("pause again", val);
+ }
+
+ console.log("done");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-closure/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-closure/input.js
new file mode 100644
index 0000000000..abe1e361b9
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of-closure/input.js
@@ -0,0 +1,13 @@
+// Babel will convert the loop body to a function to handle the 'val' lexical
+// enclosure behavior.
+const vals = [1, 2];
+
+export default function root() {
+ console.log("pause here");
+
+ for (const val of vals) {
+ console.log("pause again", (() => val)());
+ }
+
+ console.log("done");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of/input.js
new file mode 100644
index 0000000000..a0aca4135c
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-for-of/input.js
@@ -0,0 +1,11 @@
+const vals = [1, 2];
+
+export default function root() {
+ console.log("pause here");
+
+ for (const val of vals) {
+ console.log("pause again", val);
+ }
+
+ console.log("done");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-function-params/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-function-params/input.js
new file mode 100644
index 0000000000..1cbd8c8180
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-function-params/input.js
@@ -0,0 +1,8 @@
+function test(a1, a2 = 45, { a3, a4, a5: { a6: a7 } = {} } = {}) {
+ console.log("pause next here");
+}
+
+export default function fn() {
+ console.log("pause here");
+ test("1", undefined, { a3: "3", a4: "4", a5: { a6: "7" } });
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-regenerator-await/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-regenerator-await/input.js
new file mode 100644
index 0000000000..2afb29bcf7
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/step-over-regenerator-await/input.js
@@ -0,0 +1,15 @@
+var fn = async function fn() {
+ console.log("pause here");
+
+ await doAsync();
+
+ console.log("stopped here");
+};
+
+function doAsync() {
+ return Promise.resolve();
+}
+
+export default function root() {
+ fn();
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/switches/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/switches/input.js
new file mode 100644
index 0000000000..873b268fc1
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/switches/input.js
@@ -0,0 +1,13 @@
+export default function root() {
+ let val = 1;
+
+ switch (true) {
+ case true:
+ let val = 2;
+ console.log("pause here", root);
+ default: {
+ let val = 3;
+ console.log("pause here", root);
+ }
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/this-arguments-bindings/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/this-arguments-bindings/input.js
new file mode 100644
index 0000000000..3db6ea720c
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/this-arguments-bindings/input.js
@@ -0,0 +1,14 @@
+export default function root() {
+ function fn(arg) {
+ console.log(this, arguments);
+ console.log("pause here", fn, root);
+
+ const arrow = argArrow => {
+ console.log(this, arguments);
+ console.log("pause here", fn, root);
+ };
+ arrow("arrow-arg");
+ }
+
+ fn.call("this-value", "arg-value");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/try-catches/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/try-catches/input.js
new file mode 100644
index 0000000000..2e557e5870
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/try-catches/input.js
@@ -0,0 +1,10 @@
+export default function root() {
+ const one = 1;
+
+ try {
+ throw "AnError";
+ } catch (err) {
+ let two = 2;
+ console.log("pause here", root);
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-module/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-module/input.js
new file mode 100644
index 0000000000..058577e13c
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-module/input.js
@@ -0,0 +1,8 @@
+var moduleScoped = 1;
+let alsoModuleScoped = 2;
+
+function thirdModuleScoped() {}
+
+export default function() {
+ console.log("pause here", moduleScoped, alsoModuleScoped, thirdModuleScoped);
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-script-cjs/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-script-cjs/input.js
new file mode 100644
index 0000000000..6032b04036
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/type-script-cjs/input.js
@@ -0,0 +1,10 @@
+var moduleScoped = 1;
+let alsoModuleScopes = 2;
+
+function thirdModuleScoped() {}
+
+function nonModules() {
+ console.log("pause here");
+}
+
+exports.default = nonModules;
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/input.ts b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/input.ts
new file mode 100644
index 0000000000..d125c7328c
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/input.ts
@@ -0,0 +1,51 @@
+// This file essentially reproduces an example Angular component to map testing,
+// among other typescript edge cases.
+
+import def, { decoratorFactory } from './src/mod.ts';
+
+import * as ns from './src/mod.ts';
+
+@decoratorFactory({
+ selector: 'app-root',
+})
+export class AppComponent {
+ title = 'app';
+}
+
+const fn = arg => {
+ console.log("here");
+};
+fn("arg");
+
+// Un-decorated exported classes present a mapping challege because
+// the class name is mapped to an unhelpful export assignment.
+export class ExportedOther {
+ title = 'app';
+}
+
+class AnotherThing {
+ prop = 4;
+}
+
+const ExpressionClass = class Foo {
+ prop = 4;
+};
+
+class SubDecl extends AnotherThing {
+ prop = 4;
+}
+
+let SubVar = class SubExpr extends AnotherThing {
+ prop = 4;
+};
+
+ns;
+
+export default function(){
+ // This file is specifically for testing the mappings of classes and things
+ // above, which means we don't want to include _other_ references to then.
+ // To avoid having them be optimized out, we include a no-op eval.
+ eval("");
+
+ console.log("pause here");
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/src/mod.ts b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/src/mod.ts
new file mode 100644
index 0000000000..4a0cb8326a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/typescript-classes/src/mod.ts
@@ -0,0 +1,8 @@
+
+export function decoratorFactory(opts: { selector: string }) {
+ return function decorator(target) {
+ return <any>target;
+ };
+}
+
+export default function def() {}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-functions/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-functions/input.js
new file mode 100644
index 0000000000..001c02da86
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-functions/input.js
@@ -0,0 +1,12 @@
+var module = {};
+
+module.exports = function(x) {
+ return x * 2;
+};
+
+
+export default function root() {
+ // This example is structures to look like CommonJS in order to replicate
+ // a previously-encountered bug.
+ module.exports(4);
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/input.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/input.js
new file mode 100644
index 0000000000..62ba478aec
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/input.js
@@ -0,0 +1,18 @@
+import aDefault from "./src/mod1";
+
+export default function root() {
+ let one = 1;
+
+ {
+ const two = 2;
+
+ var fn = function someName(arg) {
+ console.log(this, arguments);
+ console.log("pause here", aDefault, one, two, fn, arg);
+
+ var inner = (arg) => { var body = "42"; console.log("pause here", body, root); };
+ inner();
+ };
+ fn.call("this-value", "arg-value");
+ }
+}
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/src/mod1.js b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/src/mod1.js
new file mode 100644
index 0000000000..7ef4555146
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemapped/fixtures/webpack-line-mappings/src/mod1.js
@@ -0,0 +1 @@
+export default "a-default";