PUBLIC void ejsConfigureWorkerType(Ejs *ejs) { EjsType *type; EjsPot *prototype; if ((type = ejsFinalizeScriptType(ejs, N("ejs", "Worker"), sizeof(EjsWorker), manageWorker, EJS_TYPE_POT | EJS_TYPE_MUTABLE_INSTANCES)) == 0) { return; } prototype = type->prototype; ejsBindConstructor(ejs, type, workerConstructor); ejsBindMethod(ejs, type, ES_Worker_exit, workerExit); ejsBindMethod(ejs, type, ES_Worker_join, workerJoin); ejsBindMethod(ejs, type, ES_Worker_lookup, workerLookup); ejsBindMethod(ejs, type, ES_Worker_fork, workerFork); ejsBindMethod(ejs, prototype, ES_Worker_clone, workerClone); ejsBindMethod(ejs, prototype, ES_Worker_eval, workerEval); ejsBindMethod(ejs, prototype, ES_Worker_load, workerLoad); ejsBindMethod(ejs, prototype, ES_Worker_preload, workerPreload); ejsBindMethod(ejs, prototype, ES_Worker_preeval, workerPreeval); ejsBindMethod(ejs, prototype, ES_Worker_postMessage, workerPostMessage); ejsBindMethod(ejs, prototype, ES_Worker_terminate, workerTerminate); ejsBindMethod(ejs, prototype, ES_Worker_waitForMessage, workerWaitForMessage); ejsAddImmutable(ejs, S_Event, N("ejs", "Event"), ejsGetTypeByName(ejs, N("ejs", "Event"))); ejsAddImmutable(ejs, S_ErrorEvent, N("ejs", "ErrorEvent"), ejsGetTypeByName(ejs, N("ejs", "ErrorEvent"))); }
PUBLIC void ejsCreateArrayType(Ejs *ejs) { EjsType *type; EjsHelpers *helpers; type = ejsCreateCoreType(ejs, N("ejs", "Array"), sizeof(EjsArray), S_Array, ES_Array_NUM_CLASS_PROP, manageArray, EJS_TYPE_POT | EJS_TYPE_NUMERIC_INDICIES | EJS_TYPE_VIRTUAL_SLOTS | EJS_TYPE_MUTABLE_INSTANCES | EJS_TYPE_DYNAMIC_INSTANCES); helpers = &type->helpers; helpers->cast = (EjsCastHelper) castArray; helpers->clone = (EjsCloneHelper) ejsCloneArray; helpers->create = (EjsCreateHelper) createArray; helpers->getProperty = (EjsGetPropertyHelper) getArrayProperty; helpers->getPropertyCount = (EjsGetPropertyCountHelper) getArrayPropertyCount; helpers->getPropertyByName = (EjsGetPropertyByNameHelper) getArrayPropertyByName; helpers->deleteProperty = (EjsDeletePropertyHelper) deleteArrayProperty; helpers->deletePropertyByName = (EjsDeletePropertyByNameHelper) deleteArrayPropertyByName; helpers->invokeOperator = (EjsInvokeOperatorHelper) invokeArrayOperator; helpers->lookupProperty = (EjsLookupPropertyHelper) lookupArrayProperty; helpers->setProperty = (EjsSetPropertyHelper) setArrayProperty; helpers->setPropertyByName = (EjsSetPropertyByNameHelper) setArrayPropertyByName; ejsAddImmutable(ejs, S_length, EN("length"), ejsCreateStringFromAsc(ejs, "length")); }
PUBLIC void ejsCreateVoidType(Ejs *ejs) { EjsType *type; type = ejsCreateCoreType(ejs, N("ejs", "Void"), sizeof(EjsVoid), S_Void, ES_Void_NUM_CLASS_PROP, NULL, EJS_TYPE_OBJ); type->helpers.cast = (EjsCastHelper) castVoid; type->helpers.invokeOperator = (EjsInvokeOperatorHelper) invokeVoidOperator; type->helpers.getProperty = (EjsGetPropertyHelper) getVoidProperty; ejsAddImmutable(ejs, ES_undefined, EN("undefined"), ejsCreateObj(ejs, type, 0)); mprSetName(ESV(undefined), "undefined"); }