MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / workerDeliverConnect

Function workerDeliverConnect

modules/base/worker/modWorker.c:446–468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

444}
445
446void workerDeliverConnect(xsMachine *the, modWorker worker, uint8_t *message, uint16_t messageLength)
447{
448 xsBeginHost(the);
449
450 xsmcVars(4);
451
452 xsVar(0) = xsmcNewArray(0); // ports = []
453 xsVar(1) = xsNewHostObject(xs_emptyworker_destructor); // port = {}
454 xsmcSetHostData(xsVar(1), worker);
455 worker->workerPort = xsVar(1);
456 xsRemember(worker->workerPort);
457 xsCall1(xsVar(0), xsID_push, xsVar(1));
458
459 xsVar(2) = xsmcNewObject(); // e = {}
460 xsmcSet(xsVar(2), xsID_ports, xsVar(0)); // e.ports = ports
461
462 xsVar(3) = xsNewHostFunction(xs_worker_postfromworker, 1); // postMessage
463 xsmcSet(xsVar(1), xsID_postMessage, xsVar(3)); // port.postMessage = postMessage
464 xsCall1(xsGlobal, xsID_onconnect, xsVar(2)); // onconnect(e)
465
466 //@@ this eats any exception in onconnect... should be propagated?
467 xsEndHost(the);
468}
469
470int workerStart(modWorker worker)
471{

Callers 1

workerStartFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected