Use a dedicated ScriptDeath type to signal script termination instead of WorkerScript

Problem with throwing WorkerScript is that the termination signal object can pass
through user code, which permits user to modify that object and all parts of the
game state accessible through it.
This commit is contained in:
Heikki Aitakangas
2022-02-06 02:15:42 +02:00
parent 1ed1f78222
commit a578763b89
6 changed files with 92 additions and 51 deletions
-3
View File
@@ -637,9 +637,6 @@ export function NetscriptCorporation(
const office = getOffice(divisionName, cityName);
if (!Object.values(EmployeePositions).includes(job)) throw new Error(`'${job}' is not a valid job.`);
return netscriptDelay(1000, workerScript).then(function () {
if (workerScript.env.stopFlag) {
return Promise.reject(workerScript);
}
return Promise.resolve(office.setEmployeeToJob(job, amount));
});
},