1
0
Fork 0
firefox/devtools/client/debugger/test/mochitest/examples/preview.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

133 lines
2.5 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
function empties() {
const a = "";
const b = false;
const c = undefined;
const d = null;
debugger;
}
function smalls() {
const a = "...";
const b = true;
const c = 1;
const d = [];
const e = {};
debugger;
}
function objects() {
const obj = {
foo: 1,
};
const empty = Object.create(null);
const foo = obj?.foo;
debugger;
}
function largeArray() {
const bs = [];
for (let i = 0; i <= 100; i++) {
bs.push({ a: 2, b: { c: 3 } });
}
debugger;
}
function classPreview() {
class Foo {
x = 1;
#privateVar = 2;
static #privateStatic = { first: "a", second: "b" };
#privateMethod() {
return this.#privateVar;
}
breakFn() {
let i = this.x * this.#privateVar + Foo.#privateStatic;
if (#privateVar in this && this.#privateVar !== 0) {
i = i * 2;
}
const y = {
hello: {
foo: "foo",
bar: "bar"
},
};
y;
debugger;
}
}
const foo = new Foo();
foo.breakFn();
}
function invalidTargets() {
"a";
false;
undefined;
null;
42;
const myVar = "foo";
debugger;
return myVar;
}
function multipleTokens() {
var foo = {bar: { baz: "bloop"}}, blip = {boom: 0};
foo || blip
foo.bar;
foo.bar.baz;
foo || blip.boom;
debugger;
}
function thisProperties() {
new(class {
constructor() {
this.myProperty = {
x: "this-myProperty-x",
y: "this-myProperty-y",
z: "this-myProperty-z",
};
this.myProperty.x;
const propertyName = "myProperty";
this[propertyName].y;
this?.[propertyName].z;
debugger;
}
});
}
function valueOfExpression() {
function a(value) {
b(value).catch(console.error);
debugger;
};
function b() {
return new Promise(() => {});
}
a("foo")
}
const workers = [];
let worker = null;
// This is scenario is used to test `editor.getInScopeLines`
function spawnWorker() {
worker = new Worker("worker.js?id=123");
workers.push(worker);
// Asserts that `worker` token on line 126 is detected as part of the outer scope
// so tooltip previews should be displayed for it.
worker.onmessage = function (e) {
console.log("Message received in main script, from ", e);
};
worker.onerror = function (e) {
debugger;
};
}