зеркало из https://github.com/mozilla/gecko-dev.git
56 строки
1.3 KiB
JavaScript
56 строки
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Test out of scope objects with async functions.
|
|
*/
|
|
|
|
var gDebuggee;
|
|
var gThreadFront;
|
|
|
|
add_task(
|
|
threadFrontTest(async ({ threadFront, debuggee }) => {
|
|
gThreadFront = threadFront;
|
|
gDebuggee = debuggee;
|
|
await testObjectGroup();
|
|
})
|
|
);
|
|
|
|
function evalCode() {
|
|
evalCallback(gDebuggee, function runTest() {
|
|
const ugh = [];
|
|
let i = 0;
|
|
|
|
function foo() {
|
|
ugh.push(i++);
|
|
debugger;
|
|
}
|
|
|
|
Promise.resolve()
|
|
.then(foo)
|
|
.then(foo);
|
|
});
|
|
}
|
|
|
|
const testObjectGroup = async function() {
|
|
let packet = await executeOnNextTickAndWaitForPause(evalCode, gThreadFront);
|
|
|
|
const environment = await packet.frame.getEnvironment();
|
|
const ugh = environment.parent.bindings.variables.ugh;
|
|
const ughClient = await gThreadFront.pauseGrip(ugh.value);
|
|
|
|
packet = await getPrototypeAndProperties(ughClient);
|
|
|
|
packet = await resumeAndWaitForPause(gThreadFront);
|
|
const environment2 = await packet.frame.getEnvironment();
|
|
const ugh2 = environment2.parent.bindings.variables.ugh;
|
|
const ugh2Client = gThreadFront.pauseGrip(ugh2.value);
|
|
|
|
packet = await getPrototypeAndProperties(ugh2Client);
|
|
Assert.equal(packet.ownProperties.length.value, 2);
|
|
|
|
await resume(gThreadFront);
|
|
};
|