Allow booting an actor into an existing ActorSpace

This commit is contained in:
Tony Garnock-Jones 2023-12-01 15:03:32 +01:00
parent c6eef34736
commit 2671033b07
1 changed files with 10 additions and 2 deletions

View File

@ -101,8 +101,16 @@ export class Actor {
exitReason: ExitReason = null;
readonly exitHooks: Array<LocalAction> = [];
static boot(bootProc: LocalAction, initialAssertions: OutboundMap = new Map()): Actor {
const newActor = new Actor(new ActorSpace(), initialAssertions);
static boot(bootProc: LocalAction, space: ActorSpace, initialAssertions?: OutboundMap): Actor;
static boot(bootProc: LocalAction, initialAssertions?: OutboundMap): Actor;
static boot(bootProc: LocalAction, spaceOrInitialAssertions?: ActorSpace | OutboundMap, initialAssertions0?: OutboundMap): Actor {
const space: ActorSpace = (spaceOrInitialAssertions && !Map.isMap(spaceOrInitialAssertions))
? spaceOrInitialAssertions
: new ActorSpace();
const initialAssertions: OutboundMap | undefined = (spaceOrInitialAssertions && Map.isMap(spaceOrInitialAssertions))
? spaceOrInitialAssertions
: (spaceOrInitialAssertions ? initialAssertions0 : void 0);
const newActor = new Actor(space, initialAssertions);
newActor._boot(bootProc);
return newActor;
}