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

Function fxNewModule

xs/sources/xsModule.c:1906–1946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1904
1905
1906void fxNewModule(txMachine* the, txSlot* realm, txID moduleID, txFlag moduleFlag, txSlot* module)
1907{
1908 txSlot* slot;
1909
1910 mxPush(mxModulePrototype);
1911 slot = fxNewObjectInstance(the);
1912 slot->flag |= XS_EXOTIC_FLAG | XS_DONT_PATCH_FLAG;
1913 /* HOST */
1914 slot = slot->next = fxNewSlot(the);
1915 slot->ID = XS_MODULE_BEHAVIOR;
1916 slot->flag = XS_INTERNAL_FLAG | moduleFlag;
1917 slot->kind = XS_MODULE_KIND;
1918 slot->value.module.realm = realm;
1919 slot->value.module.id = moduleID;
1920 /* EXPORTS */
1921 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1922 /* STUFF */
1923 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1924 /* META */
1925 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1926 /* TRANSFERS */
1927 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1928 /* INITIALIZE */
1929 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1930 /* FUNCTION */
1931 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1932 /* HOSTS */
1933 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1934 /* LOADER */
1935 slot = fxNextNullProperty(the, slot, XS_NO_ID, XS_INTERNAL_FLAG);
1936 slot->flag = XS_INTERNAL_FLAG | moduleFlag;
1937 slot->kind = XS_MODULE_KIND;
1938 slot->value.module.realm = realm;
1939 slot->value.module.id = moduleID;
1940 module->kind = the->stack->kind;
1941 module->value = the->stack->value;
1942 mxPop();
1943#if mxInstrument
1944 the->loadedModulesCount++;
1945#endif
1946}
1947
1948void fxOrderModule(txMachine* the, txSlot* queue, txSlot* order, txSlot* module)
1949{

Callers 4

fxLoadModulesFromFunction · 0.85
fxMapModuleDescriptorFunction · 0.85
fxRunImportAuxFunction · 0.85
fxImportModuleStuffFunction · 0.85

Calls 3

fxNewObjectInstanceFunction · 0.85
fxNewSlotFunction · 0.85
fxNextNullPropertyFunction · 0.85

Tested by

no test coverage detected