60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
/* eslint-disable no-shadow, max-nested-callbacks */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Check that requesting a thread-lifetime actor twice for the same
|
|
* value returns the same actor.
|
|
*/
|
|
|
|
var gDebuggee;
|
|
var gClient;
|
|
var gThreadFront;
|
|
|
|
add_task(
|
|
threadFrontTest(
|
|
async ({ threadFront, debuggee, client }) => {
|
|
gThreadFront = threadFront;
|
|
gClient = client;
|
|
gDebuggee = debuggee;
|
|
test_thread_lifetime();
|
|
},
|
|
{ waitForFinish: true }
|
|
)
|
|
);
|
|
|
|
function test_thread_lifetime() {
|
|
gThreadFront.once("paused", async function (packet) {
|
|
const pauseGrip = packet.frame.arguments[0];
|
|
|
|
const response = await gClient.request({
|
|
to: pauseGrip.actor,
|
|
type: "threadGrip",
|
|
});
|
|
const threadGrip1 = response.from;
|
|
|
|
const response2 = await gClient.request({
|
|
to: pauseGrip.actor,
|
|
type: "threadGrip",
|
|
});
|
|
Assert.equal(threadGrip1, response2.from);
|
|
await gThreadFront.resume();
|
|
|
|
threadFrontTestFinished();
|
|
});
|
|
|
|
gDebuggee.eval(
|
|
"(" +
|
|
function () {
|
|
// These arguments are tested.
|
|
// eslint-disable-next-line no-unused-vars
|
|
function stopMe(arg1) {
|
|
debugger;
|
|
}
|
|
stopMe({ obj: true });
|
|
} +
|
|
")()"
|
|
);
|
|
}
|