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

Function fxRunProgramFileInCompartment

xs/tools/xst262.c:1460–1481  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1458}
1459
1460void fxRunProgramFileInCompartment(txMachine* the, txString path, txUnsigned flags)
1461{
1462 xsVar(1) = xsNewObject();
1463 fxBuildCompartmentGlobals(the);
1464 xsSet(xsVar(1), xsID("globals"), xsResult);
1465
1466 xsVar(2) = xsNewHostFunction(fxLoadHook, 1);
1467 xsSet(xsVar(1), xsID("loadHook"), xsVar(2));
1468 xsVar(2) = xsNew1(xsGlobal, xsID("Compartment"), xsVar(1));
1469 {
1470 txSlot* module = mxVarv(2)->value.reference;
1471 txSlot* realm = mxModuleInstanceInternal(module)->value.module.realm;
1472 txScript* script = fxLoadScript(the, path, flags);
1473
1474 xsVar(1) = xsGet(xsGlobal, xsID("$262"));
1475 xsVar(1) = xsGet(xsVar(1), xsID("evalScript"));
1476 mxFunctionInstanceHome(mxVarv(1)->value.reference)->value.home.module = module;
1477
1478 mxModuleInstanceInternal(module)->value.module.id = fxID(the, path);
1479 fxRunScript(the, script, mxRealmGlobal(realm), C_NULL, mxRealmClosures(realm)->value.reference, C_NULL, module);
1480 }
1481}
1482
1483
1484

Callers 1

fxRunTestCaseFunction · 0.85

Calls 4

fxIDFunction · 0.85
fxRunScriptFunction · 0.85
fxLoadScriptFunction · 0.70

Tested by

no test coverage detected