See Also
Quick Nav
Escript Native API
Components
Ejs | Ejsript Interperter Management. |
EjsArray | Array class. |
EjsBlock | Block class. |
EjsBoolean | Boolean class. |
EjsByteArray | ByteArray class. |
EjsDate | Date class. |
EjsError | Error classes. |
EjsFile | File class. |
EjsFileSystem | FileSystem class. |
EjsFunction | Function class. |
EjsGlobal | EjsGlobal cass. |
EjsHttp | Http Class. |
EjsIterator | Iterator Class. |
EjsName | Qualified name structure. |
EjsNamespace | Namespace Class. |
EjsNull | Null Class. |
EjsNumber | Number class. |
EjsObject | Object Type. |
EjsPath | Path class. |
EjsRegExp | RegExp Class. |
EjsString | String Class. |
EjsTimer | Timer Class. |
EjsType | Type class. |
EjsVar | Foundation Variable Interface. |
EjsVm | Virtual Machine Execution Frame. |
EjsVoid | Void class. |
Functions
int | ejsCopyToByteArray(Ejs *ejs, EjsByteArray *ap, int offset, char *data, int length) |
Copy data into a byte array. | |
Ejs* | ejsCreate(MprCtx ctx, struct Ejs *master, cchar *searchPath, int flags) |
Create an ejs interpreter. | |
EjsArray* | ejsCreateArray(Ejs *ejs, int size) |
Create an array. | |
EjsString* | ejsCreateBareString(Ejs *ejs, int len) |
Create an empty string object. | |
EjsBoolean* | ejsCreateBoolean(Ejs *ejs, int value) |
Create a boolean. | |
EjsByteArray* | ejsCreateByteArray(Ejs *ejs, int size) |
Create a byte array. | |
EjsDate* | ejsCreateDate(Ejs *ejs, MprTime value) |
Create a new date instance. | |
EjsFile* | ejsCreateFile(Ejs *ejs, cchar *filename) |
Create a File object. | |
EjsFileSystem* | ejsCreateFileSystem(Ejs *ejs, cchar *path) |
Create a FileSystem object. | |
EjsFunction* | ejsCreateFunction(Ejs *ejs, const uchar *code, int codeLen, int numArgs, int numExceptions, EjsType *returnType, int attributes, struct EjsConst *constants, EjsBlock *scope, int lang) |
Create a function object. | |
EjsHttp* | ejsCreateHttp(Ejs *ejs) |
Create a new Http object. | |
EjsVar* | ejsCreateInstance(Ejs *ejs, struct EjsType *type, int argc, EjsVar **argv) |
Create a new variable instance. | |
EjsIterator* | ejsCreateIterator(Ejs *ejs, EjsVar *target, EjsNativeFunction next, bool deep, EjsArray *namespaces) |
Create an iterator object. | |
EjsNamespace* | ejsCreateNamespace(Ejs *ejs, cchar *name, cchar *uri) |
Create a namespace object. | |
EjsNumber* | ejsCreateNumber(Ejs *ejs, MprNumber value) |
Create a number object. | |
EjsObject* | ejsCreateObject(Ejs *ejs, struct EjsType *type, int size) |
Create an object instance of the specified type. | |
EjsObject* | ejsCreateObjectEx(Ejs *ejs, struct EjsType *type, int size, bool dynamic) |
Create an object instance of the specified type. | |
EjsPath* | ejsCreatePath(Ejs *ejs, cchar *path) |
Create a Path object. | |
EjsRegExp* | ejsCreateRegExp(Ejs *ejs, cchar *pattern) |
Create a new regular expression object. | |
EjsService* | ejsCreateService(MprCtx ctx) |
Open the Ejscript service. | |
EjsObject* | ejsCreateSimpleObject(Ejs *ejs) |
Create a simple object. | |
EjsString* | ejsCreateString(Ejs *ejs, cchar *value) |
Create a string object. | |
EjsString* | ejsCreateStringAndFree(Ejs *ejs, char *value) |
Create a string object and free the argument. | |
EjsString* | ejsCreateStringWithLength(Ejs *ejs, cchar *value, int len) |
Create a string and reserve extra room. | |
EjsType* | ejsCreateType(Ejs *ejs, EjsName *name, struct EjsModule *up, EjsType *baseType, int size, int slotNum, int numTypeProp, int numInstanceProp, int attributes, void *data) |
Create a new type object. | |
EjsVar* | ejsCreateVar(Ejs *ejs, struct EjsType *type, int numSlots) |
Create a variable. | |
int | ejsDefineGlobalFunction(Ejs *ejs, cchar *name, EjsNativeFunction fn) |
Define a global function. | |
int | ejsDefineInstanceProperty(Ejs *ejs, EjsType *type, int slotNum, EjsName *name, EjsType *propType, int attributes, EjsVar *value) |
Define an instance property. | |
int | ejsDefineProperty(Ejs *ejs, EjsVar *vp, int slotNum, EjsName *qname, struct EjsType *type, int attributes, EjsVar *value) |
Define a property. | |
int | ejsDeleteProperty(Ejs *ejs, EjsVar *vp, int slotNum) |
Delete a property. | |
int | ejsDeletePropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Delete a property by name. | |
void | ejsDestroyVar(Ejs *ejs, EjsVar *vp) |
Destroy a variable. | |
EjsString* | ejsDupString(Ejs *ejs, EjsString *sp) |
Duplicate a string object. | |
int | ejsEvalFile(cchar *path) |
Evaluate a file. | |
int | ejsEvalModule(cchar *path) |
Evaluate a module. | |
int | ejsEvalScript(cchar *script) |
Evaluate a script. | |
void | ejsExit(Ejs *ejs, int status) |
Instruct the interpreter to exit. | |
void | ejsFinalizeVar(Ejs *ejs, EjsVar *vp) |
Finalize a variable before destroying. | |
char* | ejsFormatStack(Ejs *ejs) |
Format the stack backtrace. | |
void | ejsFreeVar(Ejs *ejs, EjsVar *vp) |
Free a new variable. | |
bool | ejsGetBoolean(EjsVar *vp) |
Get the C boolean value from a boolean object. | |
int | ejsGetDouble(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
char* | ejsGetErrorMsg(Ejs *ejs, int withStack) |
Get the interpreter error message. | |
void* | ejsGetHandle(Ejs *ejs) |
Get the hosting handle. | |
int | ejsGetInt(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
MprNumber | ejsGetNumber(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
EjsVar* | ejsGetProperty(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a property. | |
EjsVar* | ejsGetPropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Get a property by name. | |
int | ejsGetPropertyCount(Ejs *ejs, EjsVar *vp) |
Get a count of properties in a variable. | |
EjsName | ejsGetPropertyName(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a variable property's name. | |
struct EjsTrait* | ejsGetPropertyTrait(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a property's traits. | |
EjsType* | ejsGetType(Ejs *ejs, int slotNum) |
Get a type. | |
EjsType* | ejsGetVarType(EjsVar *vp) |
Get a variables type. | |
int | ejsGrowObject(Ejs *ejs, EjsObject *obj, int size) |
Grow an object. | |
bool | ejsHasException(Ejs *ejs) |
Determine if an exception has been thrown. | |
EjsVar* | ejsInvokeOperator(Ejs *ejs, EjsVar *vp, int opCode, EjsVar *rhs) |
Invoke an opcode on a native type. | |
bool | ejsIsA(Ejs *ejs, EjsVar *target, EjsType *type) |
Test if an variable is an instance of a given type. | |
bool | ejsIsArray(EjsVar *vp) |
Determine if a variable is an array. | |
bool | ejsIsBlock(EjsVar *vp) |
Determine if a variable is a block. | |
bool | ejsIsBoolean(EjsVar *vp) |
Determine if a variable is a boolean. | |
bool | ejsIsByteArray(EjsVar *vp) |
Determine if a variable is a byte array. | |
bool | ejsIsDate(EjsVar *vp) |
Determine if a variable is a Date. | |
bool | ejsIsFile(EjsVar *vp) |
Determine if a variable is a File. | |
bool | ejsIsFileSystem(EjsVar *vp) |
Determine if a variable is a Path. | |
bool | ejsIsFunction(EjsVar *vp) |
Determine if a variable is a function. | |
bool | ejsIsInitializer(EjsVar *vp) |
Determine if the function is an initializer. | |
bool | ejsIsInstanceBlock(EjsVar *vp) |
Determine if a variable is an instance block. | |
bool | ejsIsNamespace(EjsVar *vp),extern,EjsNamespace,*ejsDefineReservedNamespace(Ejs,*ejs |
Determine if a variable is a namespace. | |
bool | ejsIsNativeFunction(EjsVar *vp) |
Determine if the function is a native function. | |
bool | ejsIsNumber(EjsVar *vp) |
Determine if a variable is a number. | |
bool | ejsIsObject(EjsVar *vp) |
Determine if a variable is an EjsObject. | |
bool | ejsIsPath(EjsVar *vp) |
Determine if a variable is a Path. | |
bool | ejsIsRegExp(EjsVar *vp) |
Determine if the variable is a regular expression. | |
bool | ejsIsType(EjsVar *vp) |
Determine if a variable is an type. | |
bool | ejsIsTypeSubType(Ejs *ejs, EjsType *target, EjsType *baseType) |
Test if a type is a derived type of a given base type. | |
int | ejsLookupProperty(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Lookup a property by name. | |
void | ejsMarkObject(Ejs *ejs, EjsVar *parent, EjsObject *obj) |
Mark an object as currently in use. | |
void | ejsMarkVar(Ejs *ejs, EjsVar *parent, EjsVar *vp) |
Mark a variable as currently in use. | |
EjsName* | ejsName(struct EjsName *qname, cchar *space, cchar *name) |
Initialize a Qualified Name structure. | |
void | ejsReportError(Ejs *ejs, char *fmt, ...) |
Report an error message using the MprLog error channel. | |
int | ejsRun(Ejs *ejs) |
Run a script. | |
EjsVar* | ejsRunFunction(Ejs *ejs, EjsFunction *fn, EjsVar *obj, int argc, EjsVar **argv) |
Run a function. | |
EjsVar* | ejsRunFunctionBySlot(Ejs *ejs, EjsVar *obj, int slotNum, int argc, EjsVar **argv) |
Run a function by slot number. | |
EjsVar* | ejsRunInitializer(Ejs *ejs, struct EjsModule *module) |
Run the initializer for a module. | |
EjsVar* | ejsSerialize(Ejs *ejs, EjsVar *value, int maxDepth, bool showAll, bool showBase) |
Serialize a variable. | |
void | ejsSetByteArrayPositions(Ejs *ejs, EjsByteArray *ap, int readPosition, int writePosition) |
Set the I/O byte array positions. | |
int | ejsSetProperty(Ejs *ejs, EjsVar *vp, int slotNum, EjsVar *value) |
Set a property's value. | |
int | ejsSetPropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname, EjsVar *value) |
Set a property's value. | |
int | ejsSetPropertyName(Ejs *ejs, EjsVar *vp, int slotNum, EjsName *qname) |
Set a property's name. | |
int | ejsSetPropertyTrait(Ejs *ejs, EjsVar *vp, int slotNum, struct EjsType *type, int attributes) |
Set a property's traits. | |
void | ejsSetSearchPath(Ejs *ejs, cchar *ejsPath) |
Set the module search path. | |
EjsVar* | ejsThrowArgError(Ejs *ejs, cchar *fmt, ...) |
Throw an argument exception. | |
EjsVar* | ejsThrowArithmeticError(Ejs *ejs, cchar *fmt, ...) |
Throw an math exception. | |
EjsVar* | ejsThrowAssertError(Ejs *ejs, cchar *fmt, ...) |
Throw an assertion exception. | |
EjsVar* | ejsThrowError(Ejs *ejs, cchar *fmt, ...) |
Throw an general error exception. | |
struct EjsVar* | ejsThrowException(Ejs *ejs, struct EjsVar *error) |
Throw an exception. | |
EjsVar* | ejsThrowInstructionError(Ejs *ejs, cchar *fmt, ...) |
Throw an instruction code exception. | |
EjsVar* | ejsThrowInternalError(Ejs *ejs, cchar *fmt, ...) |
Throw an internal error exception. | |
EjsVar* | ejsThrowIOError(Ejs *ejs, cchar *fmt, ...) |
Throw an IO exception. | |
EjsVar* | ejsThrowMemoryError(Ejs *ejs) |
Throw an Memory depletion exception. | |
EjsVar* | ejsThrowOutOfBoundsError(Ejs *ejs, cchar *fmt, ...) |
Throw an out of bounds exception. | |
EjsVar* | ejsThrowReferenceError(Ejs *ejs, cchar *fmt, ...) |
Throw an reference exception. | |
EjsVar* | ejsThrowResourceError(Ejs *ejs, cchar *fmt, ...) |
Throw an resource exception. | |
EjsVar* | ejsThrowStateError(Ejs *ejs, cchar *fmt, ...) |
Throw an state exception. | |
EjsVar* | ejsThrowStopIteration(Ejs *ejs) |
Throw an stop iteration exception. | |
EjsVar* | ejsThrowSyntaxError(Ejs *ejs, cchar *fmt, ...) |
Throw an syntax error exception. | |
EjsVar* | ejsThrowTypeError(Ejs *ejs, cchar *fmt, ...) |
Throw an type error exception. | |
EjsBoolean* | ejsToBoolean(Ejs *ejs, EjsVar *vp) |
Cast a variable to a boolean. | |
struct EjsNumber* | ejsToNumber(Ejs *ejs, EjsVar *vp) |
Cast a variable to a number. | |
EjsString* | ejsToString(Ejs *ejs, EjsVar *vp) |
Cast a variable to a string. | |
Ejs* | ejsCreate(MprCtx ctx, struct Ejs *master, cchar *searchPath, int flags) |
Create an ejs interpreter. | |
EjsService* | ejsCreateService(MprCtx ctx) |
Open the Ejscript service. | |
int | ejsEvalFile(cchar *path) |
Evaluate a file. | |
int | ejsEvalModule(cchar *path) |
Evaluate a module. | |
int | ejsEvalScript(cchar *script) |
Evaluate a script. | |
void | ejsExit(Ejs *ejs, int status) |
Instruct the interpreter to exit. | |
void* | ejsGetHandle(Ejs *ejs) |
Get the hosting handle. | |
void | ejsReportError(Ejs *ejs, char *fmt, ...) |
Report an error message using the MprLog error channel. | |
void | ejsSetSearchPath(Ejs *ejs, cchar *ejsPath) |
Set the module search path. | |
struct EjsVar* | ejsThrowException(Ejs *ejs, struct EjsVar *error) |
Throw an exception. | |
EjsArray* | ejsCreateArray(Ejs *ejs, int size) |
Create an array. | |
bool | ejsIsArray(EjsVar *vp) |
Determine if a variable is an array. | |
bool | ejsIsBlock(EjsVar *vp) |
Determine if a variable is a block. | |
EjsBoolean* | ejsCreateBoolean(Ejs *ejs, int value) |
Create a boolean. | |
bool | ejsGetBoolean(EjsVar *vp) |
Get the C boolean value from a boolean object. | |
bool | ejsIsBoolean(EjsVar *vp) |
Determine if a variable is a boolean. | |
EjsBoolean* | ejsToBoolean(Ejs *ejs, EjsVar *vp) |
Cast a variable to a boolean. | |
EjsByteArray* | ejsCreateByteArray(Ejs *ejs, int size) |
Create a byte array. | |
bool | ejsIsByteArray(EjsVar *vp) |
Determine if a variable is a byte array. | |
void | ejsSetByteArrayPositions(Ejs *ejs, EjsByteArray *ap, int readPosition, int writePosition) |
Set the I/O byte array positions. | |
EjsDate* | ejsCreateDate(Ejs *ejs, MprTime value) |
Create a new date instance. | |
bool | ejsIsDate(EjsVar *vp) |
Determine if a variable is a Date. | |
char* | ejsFormatStack(Ejs *ejs) |
Format the stack backtrace. | |
char* | ejsGetErrorMsg(Ejs *ejs, int withStack) |
Get the interpreter error message. | |
bool | ejsHasException(Ejs *ejs) |
Determine if an exception has been thrown. | |
EjsVar* | ejsThrowArgError(Ejs *ejs, cchar *fmt, ...) |
Throw an argument exception. | |
EjsVar* | ejsThrowArithmeticError(Ejs *ejs, cchar *fmt, ...) |
Throw an math exception. | |
EjsVar* | ejsThrowAssertError(Ejs *ejs, cchar *fmt, ...) |
Throw an assertion exception. | |
EjsVar* | ejsThrowError(Ejs *ejs, cchar *fmt, ...) |
Throw an general error exception. | |
EjsVar* | ejsThrowInstructionError(Ejs *ejs, cchar *fmt, ...) |
Throw an instruction code exception. | |
EjsVar* | ejsThrowInternalError(Ejs *ejs, cchar *fmt, ...) |
Throw an internal error exception. | |
EjsVar* | ejsThrowIOError(Ejs *ejs, cchar *fmt, ...) |
Throw an IO exception. | |
EjsVar* | ejsThrowMemoryError(Ejs *ejs) |
Throw an Memory depletion exception. | |
EjsVar* | ejsThrowOutOfBoundsError(Ejs *ejs, cchar *fmt, ...) |
Throw an out of bounds exception. | |
EjsVar* | ejsThrowReferenceError(Ejs *ejs, cchar *fmt, ...) |
Throw an reference exception. | |
EjsVar* | ejsThrowResourceError(Ejs *ejs, cchar *fmt, ...) |
Throw an resource exception. | |
EjsVar* | ejsThrowStateError(Ejs *ejs, cchar *fmt, ...) |
Throw an state exception. | |
EjsVar* | ejsThrowStopIteration(Ejs *ejs) |
Throw an stop iteration exception. | |
EjsVar* | ejsThrowSyntaxError(Ejs *ejs, cchar *fmt, ...) |
Throw an syntax error exception. | |
EjsVar* | ejsThrowTypeError(Ejs *ejs, cchar *fmt, ...) |
Throw an type error exception. | |
EjsFile* | ejsCreateFile(Ejs *ejs, cchar *filename) |
Create a File object. | |
bool | ejsIsFileSystem(EjsVar *vp) |
Determine if a variable is a Path. | |
EjsFunction* | ejsCreateFunction(Ejs *ejs, const uchar *code, int codeLen, int numArgs, int numExceptions, EjsType *returnType, int attributes, struct EjsConst *constants, EjsBlock *scope, int lang) |
Create a function object. | |
bool | ejsIsFunction(EjsVar *vp) |
Determine if a variable is a function. | |
bool | ejsIsInitializer(EjsVar *vp) |
Determine if the function is an initializer. | |
bool | ejsIsNativeFunction(EjsVar *vp) |
Determine if the function is a native function. | |
EjsVar* | ejsRunFunction(Ejs *ejs, EjsFunction *fn, EjsVar *obj, int argc, EjsVar **argv) |
Run a function. | |
EjsVar* | ejsRunFunctionBySlot(Ejs *ejs, EjsVar *obj, int slotNum, int argc, EjsVar **argv) |
Run a function by slot number. | |
EjsVar* | ejsRunInitializer(Ejs *ejs, struct EjsModule *module) |
Run the initializer for a module. | |
EjsHttp* | ejsCreateHttp(Ejs *ejs) |
Create a new Http object. | |
EjsIterator* | ejsCreateIterator(Ejs *ejs, EjsVar *target, EjsNativeFunction next, bool deep, EjsArray *namespaces) |
Create an iterator object. | |
EjsName* | ejsAllocName(MprCtx ctx, cchar *space, cchar *name) |
Allocate and Initialize a Qualified Name structure. | |
EjsName* | ejsName(struct EjsName *qname, cchar *space, cchar *name) |
Initialize a Qualified Name structure. | |
EjsNamespace* | ejsCreateNamespace(Ejs *ejs, cchar *name, cchar *uri) |
Create a namespace object. | |
bool | ejsIsNamespace(EjsVar *vp),extern,EjsNamespace,*ejsDefineReservedNamespace(Ejs,*ejs |
Determine if a variable is a namespace. | |
EjsNumber* | ejsCreateNumber(Ejs *ejs, MprNumber value) |
Create a number object. | |
int | ejsGetDouble(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
int | ejsGetInt(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
MprNumber | ejsGetNumber(EjsVar *vp) |
Get the numeric value stored in a EjsNumber object. | |
bool | ejsIsNumber(EjsVar *vp) |
Determine if a variable is a number. | |
struct EjsNumber* | ejsToNumber(Ejs *ejs, EjsVar *vp) |
Cast a variable to a number. | |
EjsObject* | ejsCreateObject(Ejs *ejs, struct EjsType *type, int size) |
Create an object instance of the specified type. | |
EjsObject* | ejsCreateObjectEx(Ejs *ejs, struct EjsType *type, int size, bool dynamic) |
Create an object instance of the specified type. | |
EjsObject* | ejsCreateSimpleObject(Ejs *ejs) |
Create a simple object. | |
int | ejsGrowObject(Ejs *ejs, EjsObject *obj, int size) |
Grow an object. | |
bool | ejsIsObject(EjsVar *vp) |
Determine if a variable is an EjsObject. | |
void | ejsMarkObject(Ejs *ejs, EjsVar *parent, EjsObject *obj) |
Mark an object as currently in use. | |
EjsFileSystem* | ejsCreateFileSystem(Ejs *ejs, cchar *path) |
Create a FileSystem object. | |
EjsPath* | ejsCreatePath(Ejs *ejs, cchar *path) |
Create a Path object. | |
bool | ejsIsPath(EjsVar *vp) |
Determine if a variable is a Path. | |
EjsRegExp* | ejsCreateRegExp(Ejs *ejs, cchar *pattern) |
Create a new regular expression object. | |
bool | ejsIsRegExp(EjsVar *vp) |
Determine if the variable is a regular expression. | |
EjsString* | ejsCreateBareString(Ejs *ejs, int len) |
Create an empty string object. | |
EjsString* | ejsCreateString(Ejs *ejs, cchar *value) |
Create a string object. | |
EjsString* | ejsCreateStringAndFree(Ejs *ejs, char *value) |
Create a string object and free the argument. | |
EjsString* | ejsCreateStringWithLength(Ejs *ejs, cchar *value, int len) |
Create a string and reserve extra room. | |
EjsString* | ejsDupString(Ejs *ejs, EjsString *sp) |
Duplicate a string object. | |
EjsString* | ejsToString(Ejs *ejs, EjsVar *vp) |
Cast a variable to a string. | |
int | ejsBindFunction(Ejs *ejs, EjsBlock *block, int slotNum, EjsNativeFunction fn) |
Bind a native C function to a function property. | |
int | ejsBindMethod(Ejs *ejs, EjsType *type, int slotNum, EjsNativeFunction fn) |
Bind a native C function to a method property. | |
EjsType* | ejsCreateType(Ejs *ejs, EjsName *name, struct EjsModule *up, EjsType *baseType, int size, int slotNum, int numTypeProp, int numInstanceProp, int attributes, void *data) |
Create a new type object. | |
int | ejsDefineGlobalFunction(Ejs *ejs, cchar *name, EjsNativeFunction fn) |
Define a global function. | |
int | ejsDefineInstanceProperty(Ejs *ejs, EjsType *type, int slotNum, EjsName *name, EjsType *propType, int attributes, EjsVar *value) |
Define an instance property. | |
EjsType* | ejsGetType(Ejs *ejs, int slotNum) |
Get a type. | |
bool | ejsIsA(Ejs *ejs, EjsVar *target, EjsType *type) |
Test if an variable is an instance of a given type. | |
bool | ejsIsInstanceBlock(EjsVar *vp) |
Determine if a variable is an instance block. | |
bool | ejsIsType(EjsVar *vp) |
Determine if a variable is an type. | |
bool | ejsIsTypeSubType(Ejs *ejs, EjsType *target, EjsType *baseType) |
Test if a type is a derived type of a given base type. | |
EjsVar* | ejsAllocVar(Ejs *ejs, struct EjsType *type, int size) |
Allocate a new variable. | |
EjsVar* | ejsCastVar(Ejs *ejs, EjsVar *vp, struct EjsType *type) |
Cast a variable to a new type. | |
EjsVar* | ejsCloneVar(Ejs *ejs, EjsVar *vp, bool deep) |
Clone a variable. | |
EjsObject* | ejsCopyObject(Ejs *ejs, EjsObject *src, bool deep) |
Copy an object. | |
EjsVar* | ejsCreateInstance(Ejs *ejs, struct EjsType *type, int argc, EjsVar **argv) |
Create a new variable instance. | |
EjsVar* | ejsCreateVar(Ejs *ejs, struct EjsType *type, int numSlots) |
Create a variable. | |
int | ejsDefineProperty(Ejs *ejs, EjsVar *vp, int slotNum, EjsName *qname, struct EjsType *type, int attributes, EjsVar *value) |
Define a property. | |
int | ejsDeleteProperty(Ejs *ejs, EjsVar *vp, int slotNum) |
Delete a property. | |
int | ejsDeletePropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Delete a property by name. | |
void | ejsDestroyVar(Ejs *ejs, EjsVar *vp) |
Destroy a variable. | |
void | ejsFinalizeVar(Ejs *ejs, EjsVar *vp) |
Finalize a variable before destroying. | |
void | ejsFreeVar(Ejs *ejs, EjsVar *vp) |
Free a new variable. | |
EjsVar* | ejsGetProperty(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a property. | |
EjsVar* | ejsGetPropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Get a property by name. | |
int | ejsGetPropertyCount(Ejs *ejs, EjsVar *vp) |
Get a count of properties in a variable. | |
EjsName | ejsGetPropertyName(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a variable property's name. | |
struct EjsTrait* | ejsGetPropertyTrait(Ejs *ejs, EjsVar *vp, int slotNum) |
Get a property's traits. | |
EjsType* | ejsGetVarType(EjsVar *vp) |
Get a variables type. | |
EjsVar* | ejsInvokeOperator(Ejs *ejs, EjsVar *vp, int opCode, EjsVar *rhs) |
Invoke an opcode on a native type. | |
int | ejsLookupProperty(Ejs *ejs, EjsVar *vp, EjsName *qname) |
Lookup a property by name. | |
void | ejsMarkVar(Ejs *ejs, EjsVar *parent, EjsVar *vp) |
Mark a variable as currently in use. | |
EjsVar* | ejsSerialize(Ejs *ejs, EjsVar *value, int maxDepth, bool showAll, bool showBase) |
Serialize a variable. | |
int | ejsSetProperty(Ejs *ejs, EjsVar *vp, int slotNum, EjsVar *value) |
Set a property's value. | |
int | ejsSetPropertyByName(Ejs *ejs, EjsVar *vp, EjsName *qname, EjsVar *value) |
Set a property's value. | |
int | ejsSetPropertyName(Ejs *ejs, EjsVar *vp, int slotNum, EjsName *qname) |
Set a property's name. | |
int | ejsSetPropertyTrait(Ejs *ejs, EjsVar *vp, int slotNum, struct EjsType *type, int attributes) |
Set a property's traits. |
Typedefs
MprNumber | Configured numeric type. |
EjsCode | Byte code. |
EjsEx | Exception Handler Record. |
EjsHashEntry | Hash entry for a property. |
EjsList | List type. |
EjsLookup | Lookup State. |
EjsNames | Property Names. |
EjsService | Ejscript Service structure. |
EjsStack | Evaluation stack. |
EjsTrait | Property traits. |
EjsTypeHelpers | Type Helpers. |
Defines
#define | _h_EJS_BYTECODETABLE_H 1 |
ejsByteCodeTable.h - Master Byte Code Table. | |
#define | _h_EJS_WEB_h 1 |
ejsWeb.h -- Header for the Ejscript Web Framework. | |
#define | EJS_ATTR_BLOCK_HELPERS (1 << 7) |
Use block helper methods. | |
#define | EJS_ATTR_BUILTIN (1 << 12) |
Type is builtin. | |
#define | EJS_ATTR_CALLS_SUPER (1 << 11) |
Constructor calls super(). | |
#define | EJS_ATTR_CONST (1 << 16) |
Property is constant after first assignment. | |
#define | EJS_ATTR_CONSTRUCTOR (1 << 26) |
Method is a constructor. | |
#define | EJS_ATTR_DYNAMIC_INSTANCE (1 << 17) |
Instances are not sealed. | |
#define | EJS_ATTR_ENUMERABLE (1 << 19) |
Property is visible. | |
#define | EJS_ATTR_FINAL (1 << 14) |
Type can't be subclassed. | |
#define | EJS_ATTR_FULL_SCOPE (1 << 28) |
Function needs closure when defined. | |
#define | EJS_ATTR_GETTER (1 << 20) |
Property is a getter. | |
#define | EJS_ATTR_HAS_CONSTRUCTOR (1 << 4) |
Type has a constructor. | |
#define | EJS_ATTR_HAS_INITIALIZER (1 << 9) |
Type has an initializer. | |
#define | EJS_ATTR_HAS_RETURN (1 << 29) |
Function has a return statement. | |
#define | EJS_ATTR_HAS_STATIC_INITIALIZER (1 << 10) |
Type has an initializer. | |
#define | EJS_ATTR_HAS_VALUE (1 << 31) |
Property has a value record. | |
#define | EJS_ATTR_INITIALIZER (1 << 3) |
Initializer code. | |
#define | EJS_ATTR_INTERFACE (1 << 30) |
Class is an interface. | |
#define | EJS_ATTR_LITERAL_GETTER (1 << 21) |
Property is a getter in object literal. | |
#define | EJS_ATTR_NATIVE (1 << 1) |
Property is builtin. | |
#define | EJS_ATTR_NO_BIND (1 << 13) |
Type properties are never bound. | |
#define | EJS_ATTR_OBJECT (1 << 18) |
Instances are based on EjsObject. | |
#define | EJS_ATTR_OBJECT_HELPERS (1 << 6) |
Use object helper methods. | |
#define | EJS_ATTR_OPER_OVERLOAD (1 << 5) |
Type overloaded operators. | |
#define | EJS_ATTR_OPERATOR (1 << 22) |
Operator. | |
#define | EJS_ATTR_OVERRIDE (1 << 15) |
Override base type. | |
#define | EJS_ATTR_PROTOTYPE (1 << 2) |
TODO - not supported yet (KEEP). | |
#define | EJS_ATTR_READONLY (1 << 23) |
Readonly outside class. | |
#define | EJS_ATTR_REST (1 << 27) |
Parameter is a "..." rest. | |
#define | EJS_ATTR_SETTER (1 << 24) |
Property is a settter. | |
#define | EJS_ATTR_SLOTS_NEED_FIXUP (1 << 8) |
Missing inherited slots. | |
#define | EJS_ATTR_STATIC (1 << 25) |
Class static property. | |
#define | EJS_FLAG_COMPILER 0x4 |
Running inside the compiler. | |
#define | EJS_FLAG_DOC 0x40 |
Load documentation from modules. | |
#define | EJS_FLAG_EMPTY 0x2 |
Create an empty interpreter without native elements. | |
#define | EJS_FLAG_EVENT 0x1 |
Event pending. | |
#define | EJS_FLAG_EXIT 0x80 |
Interpreter should exit. | |
#define | EJS_FLAG_LOADING 0x100 |
Loading a module. | |
#define | EJS_FLAG_MASTER 0x20 |
Create a master interpreter. | |
#define | EJS_FLAG_NO_EXE 0x8 |
VM will not execute code. | |
#define | EJS_FLAG_NOEXIT 0x200 |
App should service events and not exit. | |
#define | EJS_FLAGS_ENUM_ALL 0x2 |
Enumerate non-enumerable and fixture properties. | |
#define | EJS_FLAGS_ENUM_INHERITED 0x1 |
Enumerate inherited base classes. | |
#define | EJS_GC_IN_USE 0xe801e2ec |
Magic number when allocated. | |
#define | EJS_GC_WORK_QUOTA 512 |
Allocations required before garbage colllection. | |
#define | EJS_HASH_MIN_PROP 8 |
Min props to hash. | |
#define | EJS_LOTSA_PROP 256 |
Object with lots of properties. | |
#define | EJS_MAX_TYPE 256 |
Maximum number of types. | |
#define | EJS_NUM_GLOBAL 256 |
Number of globals slots to pre-create. | |
#define | EJS_NUM_PROP 8 |
Default object number of properties. | |
#define | EJS_SPEC_ECMA 0 |
Run in strict ECMA-262 compliance mode. | |
#define | EJS_SPEC_FIXED 2 |
Run with ECMA-262 plus enhancements and add breaking fixes. | |
#define | EJS_SPEC_PLUS 1 |
Run in enhanced ECMA-262 with non-breaking changes. | |
#define | ejsIsNull ejsIs(vp, ES_Null) |
Determine if a variable is a null. | |
#define | ejsIsNull ejsIs(vp, ES_Null) |
Determine if a variable is a null. |
Ejs
Ejsript Interperter Management.
- Description:
- The Ejs structure contains the state for a single interpreter. The ejsCreate routine may be used to create multiple interpreters and returns a reference to be used in subsequent Ejscript API calls.
- API Stability:
- Prototype.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
- Fields:
-
Create an ejs interpreter.
- Description:
- Create an interpreter object to evalute Ejscript programs. Ejscript supports multiple interpreters. One interpreter can be designated as a master interpreter and then it can be cloned by supplying the master interpreter to this call. A master interpreter provides the standard system types and clone interpreters can quickly be created an utilize the master interpreter's types. This saves memory and speeds initialization.
- Parameters:
-
ctx Any memory context returned by mprAlloc. master Optional master interpreter to clone. searchPath Module search path to use. Set to NULL for the default search path. flags Optional flags to modify the interpreter behavior. Valid flags are: - EJS_FLAG_COMPILER - Interpreter will compile code from source
- EJS_FLAG_NO_EXE - Don't execute any code. Just compile.
- EJS_FLAG_MASTER - Create a master interpreter
- EJS_FLAG_DOC - Load documentation from modules
- EJS_FLAG_NOEXIT - App should service events and not exit unless explicitly instructed
- Returns:
- A new interpreter.
- See Also:
- ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
Open the Ejscript service.
- Description:
- One Ejscript service object is required per application. From this service, interpreters can be created.
- Parameters:
-
ctx Any memory context returned by mprAlloc.
- Returns:
- An ejs service object.
- See Also:
- ejsCreate, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
Evaluate a file.
- Description:
- Evaluate a file containing an Ejscript. This requires linking with the Ejscript compiler library (libec).
- Parameters:
-
path Filename of the script to evaluate.
- Returns:
- Return zero on success. Otherwise return a negative Mpr error code.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalScript, ejsExit, ejsSetSearchPath
Evaluate a module.
- Description:
- Evaluate a module containing compiled Ejscript.
- Parameters:
-
path Filename of the module to evaluate.
- Returns:
- Return zero on success. Otherwise return a negative Mpr error code.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
Evaluate a script.
- Description:
- Evaluate a script. This requires linking with the Ejscript compiler library (libec).
- Parameters:
-
script Script to evaluate.
- Returns:
- Return zero on success. Otherwise return a negative Mpr error code.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsExit, ejsSetSearchPath
Instruct the interpreter to exit.
- Description:
- This will instruct the interpreter to cease interpreting any further script code.
- Parameters:
-
ejs Interpeter object returned from ejsCreate. status Reserved and ignored.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsSetSearchPath
Get the hosting handle.
- Description:
- The interpreter can store a hosting handle. This is typically a web server object if hosted inside a web server.
- Parameters:
-
ejs Interpeter object returned from ejsCreate.
- Returns:
- Hosting handle.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
Report an error message using the MprLog error channel.
- Description:
- This will emit an error message of the format:
- program:line:errorCode:SEVERITY: message
- Parameters:
-
ejs Interpeter object returned from ejsCreate. fmt Is an alternate printf style format to emit if the interpreter has no valid error message. ... Arguments for fmt.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
Set the module search path.
- Description:
- Set the ejs module search path. The search path is by default set to the value of the EJSPATH environment directory. Ejsript will search for modules by name. The search strategy is: Given a name "a.b.c", scan for:
- File named a.b.c
- File named a/b/c
- File named a.b.c in EJSPATH
- File named a/b/c in EJSPATH
- File named c in EJSPATH
- Parameters:
-
ejs Ejs interpreter. ejsPath Search path. This is a colon (or semicolon on Windows) separated string of directories.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit
Throw an exception.
- Description:
- Throw an exception object.
- Parameters:
-
ejs Interpeter object returned from ejsCreate. error Exception argument object.
- Returns:
- The exception argument for chaining.
- See Also:
- ejsCreate, ejsCreateService, ejsEvalFile, ejsEvalScript, ejsExit, ejsSetSearchPath
EjsArray
Array class.
- Description:
- Arrays provide a growable, integer indexed, in-memory store for objects. An array can be treated as a stack (FIFO or LIFO) or a list (ordered). Insertions can be done at the beginning or end of the stack or at an indexed location within a list. The Array class can store objects with numerical indicies and can also store any named properties. The named properties are stored in the obj field, whereas the numeric indexed values are stored in the data field. Array extends EjsObject and has all the capabilities of EjsObject.
- API Stability:
- Evolving.
- See Also:
- ejsCreateArray, ejsIsArray
- Fields:
-
EjsVar ** data Array elements. int length Array length property. EjsObject obj Extends Object.
Create an array.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. size Initial size of the array.
- Returns:
- A new array object.
- See Also:
- EjsArray, ejsIsArray
Determine if a variable is an array.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is an array.
- See Also:
- EjsArray, ejsCreateArray
EjsBlock
Block class.
- Description:
- The block class is the base class for all program block scope objects. This is an internal class and not exposed to the script programmer. Blocks (including types) may describe their properties via traits. The traits store the property type and access attributes and are stored in EjsBlock which is a sub class of EjsObject. See ejsBlock.c for details.
- API Stability:
- Evolving.
- See Also:
- ejsBindFunction, ejsIsBlock
- Fields:
-
uint hasScriptFunctions Block has non-native functions requiring namespaces. cchar * name Block name. EjsList namespaces Current list of namespaces open in this block of properties. int numInherited Number of inherited traits. int numTraits Number of allocated traits. EjsObject obj Extends Object - Property storage. struct EjsBlock * scopeChain Lexical scope chain for this block. int sizeTraits Size of traits. EjsTrait * traits Actual property traits.
Determine if a variable is a block.
- Description:
- This call tests if the variable is a block.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is based on EjsBlock.
- See Also:
- EjsBlock, ejsBindFunction
EjsBoolean
Boolean class.
- Description:
- The Boolean class provides the base class for the boolean values "true" and "false". EjsBoolean is a primitive native type and extends EjsVar. It is still logically an Object, but implements Object properties and methods itself. Only two instances of the boolean class are ever created created these are referenced as ejs->trueValue and ejs->falseValue.
- API Stability:
- Evolving.
- See Also:
- ejsCreateBoolean, ejsGetBoolean, ejsIsBoolean
- Fields:
-
bool value Boolean value. EjsVar var Logically extends Object.
Create a boolean.
- Description:
- Create a boolean value. This will not actually create a new boolean instance as there can only ever be two boolean instances (true and false). Boolean properties are immutable in Ejscript and so this routine will simply return the appropriate pre-created true or false boolean value.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. value Desired boolean value. Set to 1 for true and zero for false.
- See Also:
- EjsBoolean, ejsGetBoolean, ejsIsBoolean
Get the C boolean value from a boolean object.
- Parameters:
-
vp Boolean variable to access.
- Returns:
- True or false.
- See Also:
- EjsBoolean, ejsCreateBoolean, ejsIsBoolean
Determine if a variable is a boolean.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a boolean.
- See Also:
- EjsBoolean, ejsCreateBoolean, ejsGetBoolean
Cast a variable to a boolean.
- Description:
- Parameters:
-
ejs Ejs reference returned from ejsCreate. vp Variable to cast.
- Returns:
- A new boolean object.
- See Also:
- EjsBoolean, ejsCreateBoolean, ejsGetBoolean, ejsIsBoolean
EjsByteArray
ByteArray class.
- Description:
- ByteArrays provide a growable, integer indexed, in-memory store for bytes. ByteArrays are a powerful data type that can be used as a simple array to store and encode data as bytes or it can be used as a Stream implementing the Stream interface.
When used as a simple byte array, the ByteArray class offers a low level set of methods to insert and extract bytes. The index operator [] can be used to access individual bytes and the copyIn and copyOut methods can be used to get and put blocks of data. In this mode, the read and write position properties are ignored. Accesses to the byte array are from index zero up to the size defined by the length property. When constructed, the ByteArray can be designated as growable, in which case the initial size will grow as required to accomodate data and the length property will be updated accordingly.
When used as a Stream, the byte array offers various read and write methods which store data at the location specified by the write position property and they read data from the read position. The available method indicates how much data is available between the read and write position pointers. The flush method will reset the pointers to the start of the array. The length property is unchanged in behavior from when used as a simple byte array and it specifies the overall storage capacity of the byte array. As numeric values are read or written, they will be encoded according to the value of the endian property which can be set to either LittleEndian or BigEndian. When used with for/in, ByteArrays will iterate or enumerate over the available data between the read and write pointers.
In Stream mode ByteArrays can be configured with input and output callbacks to provide or consume data to other streams or components. These callbacks will automatically be invoked as required when the various read/write methods are called.
Unlike the Array class, ByteArray can only store data in numeric indicies. It is much efficient than EjsByteArray is a primitive native type and extends EjsVar. It is still logically an Object, but implements Object properties and methods itself. Only two instances of the boolean class are ever created created these are referenced as ejs->trueValue and ejs->falseValue.
- API Stability:
- Evolving.
- See Also:
- ejsCreateByteArray, ejsIsByteArray, ejsSetByteArrayPositions
- Fields:
-
int endian Endian encoding. bool growable Aray is growable. int growInc Current read position. EjsFunction * input Input callback function to get more data. int length Length property. EjsFunction * output Output callback function send data. int readPosition Current read position. int swap I/O must swap bytes due to endian byte ordering. uchar * value Data bytes in the array. EjsVar var Logically extends Object. int writePosition Current write position.
Create a byte array.
- Description:
- Create a new byte array instance.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. size Initial size of the byte array.
- Returns:
- A new byte array instance.
- See Also:
- EjsByteArray, ejsIsByteArray, ejsSetByteArrayPositions
Determine if a variable is a byte array.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a byte array.
- See Also:
- EjsByteArray, ejsCreateByteArray, ejsSetByteArrayPositions
Set the I/O byte array positions.
- Description:
- Set the read and/or write positions into the byte array. ByteArrays implement the Stream interface and support sequential and random access reading and writing of data in the array. The byte array maintains read and write positions that are automatically updated as data is read or written from or to the array.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. ap Byte array object. readPosition New read position to set. writePosition New write position to set.
- See Also:
- EjsByteArray, ejsCreateByteArray, ejsIsByteArray
EjsDate
Date class.
- Description:
- The Date class is a general purpose class for working with dates and times. is a a primitive native type and extends EjsVar. It is still logically an Object, but implements Object properties and methods itself.
- API Stability:
- Evolving.
- See Also:
- ejsCreateDate
- Fields:
-
MprTime value Time in milliseconds since "1970/01/01 GMT". EjsVar var Logically extends Object.
Determine if a variable is a Date.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a date.
- See Also:
- EjsDate, ejsCreateDate
EjsError
Error classes.
- Description:
- Base class for error exception objects. Exception objects are created by programs and by the system as part of changing the normal flow of execution when some error condition occurs. When an exception is created and acted upon ("thrown"), the system transfers the flow of control to a pre-defined instruction stream (the handler or "catch" code). The handler may return processing to the point at which the exception was thrown or not. It may re-throw the exception or pass control up the call stack.
- API Stability:
- Evolving.
- Fields:
-
int code Unique error lookup code. char * message Exception message. EjsObject obj Extends Object. char * stack Execution stack back trace.
Format the stack backtrace.
- Description:
- Return a string containing the current interpreter stack backtrace.
- Parameters:
-
ejs Ejs reference returned from ejsCreate.
- Returns:
- A string containing the stack backtrace. The caller must free.
- See Also:
Get the interpreter error message.
- Description:
- Return a string containing the current interpreter error message.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. withStack Set to 1 to include a stack backtrace in the error message.
- Returns:
- A string containing the error message. The caller must free.
- See Also:
Determine if an exception has been thrown.
- Parameters:
-
ejs Ejs reference returned from ejsCreate.
- Returns:
- True if an exception has been thrown.
- See Also:
Throw an argument exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an math exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an assertion exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an general error exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an instruction code exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an internal error exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an IO exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an Memory depletion exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate.
- See Also:
Throw an out of bounds exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an reference exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an resource exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an state exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an syntax error exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
Throw an type error exception.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fmt Printf style format string to use for the error message. ... Message arguments.
- See Also:
EjsFile
File class.
- Description:
- The File class provides a foundation of I/O services to interact with physical files and directories. Each File object represents a single file or directory and provides methods for creating, opening, reading, writing and deleting files, and for accessing and modifying information about the file.
- API Stability:
- Prototype.
- See Also:
- ejsCreateFile
- Fields:
-
MprFile * file Open file handle. MprPath info Cached file info. int mode Current open mode. char * modeString User supplied mode string. EjsObject obj Extends Object. char * path Filename path. int perms Posix permissions mask.
EjsFileSystem
FileSystem class.
- Description:
- The FileSystem class provides file system services.
- API Stability:
- Prototype.
- See Also:
- EjsFile, ejsCreateFile
- Fields:
-
MprFileSystem * fs MPR file system object. EjsObject obj Extends Object. char * path Filename path.
Determine if a variable is a Path.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a FileSystem.
- See Also:
- EjsFile, ejsCreateFile
EjsFunction
Function class.
- Description:
- The Function type is used to represent closures, function expressions and class methods. It contains a reference to the code to execute, the execution scope and possibly a bound "this" reference.
- API Stability:
- Evolving.
- See Also:
- ejsCreateFunction, ejsIsFunction, ejsIsInitializer, ejsIsNativeFunction, ejsRunFunction, ejsRunFunctionBySlot, ejsRunInitializer
- Fields:
-
EjsBlock block Base block. Only used for closures. EjsCode code Byte code. uint constructor Function is a constructor. uint fullScope Closures must capture full scope. uint getter Function is a getter. uint hasReturn Function has a return stmt. uint isInitializer Function is an initializer function. uint lang Language compliance level: ecma|plus|fixed. uint literalGetter Function is in an object literal. int nextSlot Next multimethod or getter/setter. uint numArgs Count of parameters. uint numDefault Count of parameters with default initializers. EjsObject * obj Function.properties. Demand created. uint override Function overrides a base class method. EjsVar * owner Back reference to original owning block. EjsNativeFunction proc Native function pointer. EjsType * prototype Function.prototype. Demand created. uint rest Function has a "..." rest of args parameter. struct EjsType * resultType Return type of method. uint setter Function is a setter. int slotNum Slot number in owner for this function. uint staticMethod Function is a static method. EjsVar * thisObj Bound "this" for closures.
Create a function object.
- Description:
- This creates a function object and optionally associates byte code with the function.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. code Pointer to the byte code. The byte code is not copied so this must be a persistent pointer. codeLen Length of the code. numArgs Number of formal arguments to the function. numExceptions Number of exception handlers. returnType Return type of the function. Set to NULL for no defined type. attributes Integer mask of access attributes. constants Reference to the module constant pool. Some byte code opcodes contain references into the constant pool. scope Reference to the chain of blocks that that comprises the lexical scope chain for this function. lang Language level (ecma|plus|fixed). Use constants EJS_SPEC_ECMA, EJS_SPEC_PLUS, EJS_SPEC_FIXED.
- Returns:
- An initialized function object.
Determine if a variable is a function.
This will return true if the variable is a function of any kind, including methods, native and script functions or initializers- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a function.
Determine if the function is an initializer.
Initializers are special functions created by the compiler to do static and instance initialization of classes during construction- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is an initializer.
Determine if the function is a native function.
Functions can be either native - meaning the implementation is via a C function, or can be scripted- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a native function.
Run a function.
- Description:
- Run a function with the given actual parameters.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. fn Function object to run. obj Object to use as the "this" object when running the function. argc Count of actual parameters. argv Vector of actual parameters.
- Returns:
- The return value from the function. If an exception is thrown, NULL will be returned and ejs->exception will be set to the exception object.
Run a function by slot number.
- Description:
- Run a function identified by slot number with the given actual parameters. This will run the function stored at slotNum in the obj variable.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. obj Object that holds the function at its "slotNum" slot. Also use this object as the "this" object when running the function. slotNum Slot number in obj that contains the function to run. argc Count of actual parameters. argv Vector of actual parameters.
- Returns:
- The return value from the function. If an exception is thrown, NULL will be returned and ejs->exception will be set to the exception object.
Run the initializer for a module.
- Description:
- A module's initializer runs global code defined in the module.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. module Module object reference.
- Returns:
- The last expression result of global code executed.
EjsGlobal
EjsHttp
Http Class.
- Description:
- API Stability:
- Prototype.
- See Also:
- ejsCreateHttp
- Fields:
-
EjsFunction * callback Async callback function. char * certFile SSL certificate file. MprBuf * content Response data. int contentLength Expected content length for post/put data. Ejs * ejs Convenience access to ejs interpreter instance. uint followRedirects Transparently follow 30X redirects. uint gotResponse Request has been sent and response headers have been received. MprHttp * http Underlying MPR http object. char * keyFile SSL key file. char * method HTTP method. EjsObject obj Extends Object. char * postData Post data supplied via post() method. int readOffset Read response I/O ptr. uint requestStarted Request started and connection to server is open. char * uri Target uri.
EjsIterator
Iterator Class.
- Description:
- Iterator is a helper class to implement iterators in other native classes.
- API Stability:
- Prototype.
- See Also:
- ejsCreateIterator
- Fields:
-
bool deep Iterator deep (recursively over all properties). int index Current index. EjsVar * indexVar Reference to current item. EjsArray * namespaces Namespaces to consider in iteration. EjsNativeFunction nativeNext Native next function. EjsVar * target Object to be enumerated. EjsVar var Logically extends Object.
Create an iterator object.
- Description:
- The EjsIterator object is a helper class for native types to implement iteration and enumeration.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. target Target variable to iterate or enumerate. next Function to invoke to step to the next element. deep Set to true to do a deep iteration/enumeration. namespaces Reserved and not used. Supply NULL.
- Returns:
- A new EjsIterator object.
- See Also:
- EjsIterator
EjsName
Qualified name structure.
- Description:
- All names in Ejscript consist of a property name and a name space. Namespaces provide discrete spaces to manage and minimize name conflicts. These names will soon be converted to unicode.
- API Stability:
- Prototype.
- See Also:
- ejsAllocName, ejsName
- Fields:
-
cchar * name Property name. cchar * space Property namespace.
Allocate and Initialize a Qualified Name structure.
- Description:
- Create and initialize a qualified name structure using a name and namespace.
- Parameters:
-
ctx Any memory context returned by mprAlloc. space Namespace string. name Name string.
- Returns:
- A reference to an allocated EjsName structure. Caller must free.
Initialize a Qualified Name structure.
- Description:
- Initialize the statically allocated qualified name structure using a name and namespace.
- Parameters:
-
qname Reference to an existing, uninitialized EjsName structure. space Namespace string. name Name string.
- Returns:
- A reference to the qname structure.
- See Also:
- EjsName, ejsAllocName
EjsNamespace
Namespace Class.
- Description:
- Namespaces are used to qualify names into discrete spaces.
- API Stability:
- Evolving.
- See Also:
- ejsCreateNamespace, ejsIsNamespace
- Description:
- The Reflect class permits introspection into the type and attributes of objects and properties.
- API Stability:
- Evolving.
- See Also:
- Fields:
-
int flags Fast comparison flags. char * name Textual name of the namespace. char * uri Optional uri definition. EjsVar var Logically extends Object.
Create a namespace object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. name Space name to use for the namespace. uri URI to associate with the namespace.
- Returns:
- A new namespace object.
- See Also:
Determine if a variable is a namespace.
- Returns:
- True if the variable is a namespace.
- See Also:
EjsNull
EjsNumber
Number class.
- Description:
- The Number class provide the base class for all numeric values. The primitive number storage data type may be set via the configure program to be either double, float, int or int64.
- API Stability:
- Evolving.
- See Also:
- ejsCreateNumber, ejsGetDouble, ejsGetInt, ejsGetNumber, ejsIsNumber, ejsToNumber
- Fields:
-
MprNumber value Numeric value. EjsVar var Logically extends Object.
Create a number object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. value Numeric value to initialize the number object.
- Returns:
- A number object.
- See Also:
- EjsNumber, ejsGetDouble, ejsGetInt, ejsGetNumber, ejsIsNumber, ejsToNumber
Get the numeric value stored in a EjsNumber object.
- Parameters:
-
vp Variable to examine.
- Returns:
- A double value.
- See Also:
- EjsNumber, ejsCreateNumber, ejsGetInt, ejsGetNumber, ejsIsNumber, ejsToNumber
Get the numeric value stored in a EjsNumber object.
- Parameters:
-
vp Variable to examine.
- Returns:
- An integer value.
- See Also:
- EjsNumber, ejsCreateNumber, ejsGetDouble, ejsGetNumber, ejsIsNumber, ejsToNumber
Get the numeric value stored in a EjsNumber object.
- Parameters:
-
vp Variable to examine.
- Returns:
- A numeric value.
- See Also:
- EjsNumber, ejsCreateNumber, ejsGetDouble, ejsGetInt, ejsIsNumber, ejsToNumber
Determine if a variable is a number.
- Parameters:
-
vp Variable to examine.
- Returns:
- True if the variable is a number.
- See Also:
- EjsNumber, ejsCreateNumber, ejsGetDouble, ejsGetInt, ejsGetNumber, ejsToNumber
Cast a variable to a number.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. vp Variable to cast.
- Returns:
- A number object.
- See Also:
- EjsNumber, ejsCreateNumber, ejsGetDouble, ejsGetInt, ejsGetNumber, ejsIsNumber
EjsObject
Object Type.
- Description:
- The EjsObject type is used as the foundation for types, blocks, functions and all scripted classes. It implements the EjsVar interface and provides storage and hashed lookup for properties. It supports dynamic objects that can grow the number of properties they store.
Note that native classes may or may not be based on EjsObject. Some native classes may implement the EjsVar interface so they can optimally store their properties - often as native types themselves. Numbers are such a case.
- API Stability:
- Evolving.
- See Also:
- ejsCopyObject, ejsCreateObject, ejsCreateObjectEx, ejsCreateSimpleObject, ejsGrowObject, ejsIsObject, ejsMarkObject
- Fields:
-
int capacity Current capacity for properties. EjsNames * names Hash table of property names. int numProp Number of properties. EjsVar ** slots Vector of slots containing var references. EjsVar var Implement EjsVar interface.
Create an object instance of the specified type.
- Description:
- Create a new object using the specified type as a base class. Note: the constructor is not called. If you require the constructor to be invoked, use ejsCreateInstance.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Base type to use when creating the object instance. size Number of extra slots to allocate when creating the object.
- Returns:
- A new object instance.
Create an object instance of the specified type.
- Description:
- Create a new object using the specified type as a base class. Note: the constructor is not called. If you require the constructor to be invoked, use ejsCreateInstance.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Base type to use when creating the object instance. size Number of extra slots to allocate when creating the object. dynamic Set to true to make the object as being dynamic. Dynamic objects can create new properties and grow at any time.
- Returns:
- A new object instance.
Create a simple object.
- Description:
- Create a simple object using Object as its base type.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate.
- Returns:
- A new object instance.
Grow an object.
- Description:
- Grow the slot storage for an object. Object properties are stored in slots. To store more properties, you need to grow the slots.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. obj Object reference to grow. size New minimum count of properties. If size is less than the current number of properties, the call will be ignored, i.e. it will not shrink objects.
- Returns:
- A new object instance.
Determine if a variable is an EjsObject.
- Description:
- This call tests if the variable is based on EjsObject. Note that all variables are logically objects in that they implement the EjsVar interface. However, only those that are composed of EjsObject will return true for this call. Types, Blocks, Functions and all scripted classes are based on EjsObject and will test true.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is based on EjsObject.
Mark an object as currently in use.
- Description:
- Mark an object as currently active so the garbage collector will preserve it. This routine should be called by native types that extend EjsObject in their markVar helper.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. parent Owning variable for the property. obj Object to mark as currently being used.
EjsPath
Path class.
- Description:
- The Path class provides file path name services.
- API Stability:
- Prototype.
- See Also:
- EjsFile, ejsCreatePath, ejsIsPath
- Fields:
-
MprList * files File list for enumeration. MprPath info Cached file info. EjsObject obj Extends Object. char * path Filename path.
Create a FileSystem object.
- Description:
- Create a file system object associated with the given pathname.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. path Path to describe the file system. Can be any path in the file system.
- Returns:
- A new file system object.
- See Also:
- EjsFile, ejsCreatePath, ejsIsPath
Determine if a variable is a Path.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a Path.
- See Also:
- EjsFile, ejsCreatePath
EjsRegExp
RegExp Class.
- Description:
- The regular expression class provides string pattern matching and substitution.
- API Stability:
- Evolving.
- See Also:
- ejsCreateRegExp, ejsIsRegExp
- Fields:
-
void * compiled Compiled pattern. int endLastMatch End of the last match (one past end). bool global Search for pattern globally (multiple times). bool ignoreCase Do case insensitive matching. struct EjsString * matched Last matched component. bool multiline Match patterns over multiple lines. char * pattern Pattern to match with. int startLastMatch Start of the last match. EjsVar var Logically extends Object.
Create a new regular expression object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. pattern Regular expression pattern string.
- Returns:
- A EjsRegExp object.
- See Also:
- EjsRegExp, ejsIsRegExp
Determine if the variable is a regular expression.
- Returns:
- True if the variable is a regular expression.
- See Also:
- EjsRegExp, ejsCreateRegExp
EjsString
String Class.
- Description:
- The String class provides the base class for all strings. Each String object represents a single immutable linear sequence of characters. Strings have operators for: comparison, concatenation, copying, searching, conversion, matching, replacement, and, subsetting.
Strings are currently sequences of UTF-8 characters. They will soon be upgraded to UTF-16.
- API Stability:
- Evolving.
- See Also:
- ejsCreateBareString, ejsCreateString, ejsCreateStringWithLength, ejsDupString, ejsToString
- Fields:
-
int length String length (sans null). char * value String value. Currently UTF-8. Will upgrade to UTF-16 soon. EjsVar var Logically extentends Object.
Create an empty string object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. len Length of space to reserve for future string data.
- Returns:
- A string object.
- See Also:
- EjsString, ejsCreateString, ejsCreateStringWithLength, ejsDupString, ejsToString
Create a string object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. value C string value to define for the string object. Note: this will soon be changed to unicode.
- API Stability:
- Prototype.
- Returns:
- A string object.
Create a string object and free the argument.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. value C string value to define for the string object. Note: this will soon be changed to unicode.
- API Stability:
- Prototype.
- Returns:
- A string object.
Create a string and reserve extra room.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. value C string value to define for the string object. Note: this will soon be changed to unicode. len Length of the string storage to allocate.
- Returns:
- A string object.
- See Also:
- EjsString, ejsCreateBareString, ejsCreateString, ejsDupString, ejsToString
Duplicate a string object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. sp String value to copy.
- Returns:
- A string object.
Cast a variable to a string.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. vp Variable to cast.
- Returns:
- A string object.
EjsTimer
Timer Class.
- Description:
- Timers manage the scheduling and execution of Ejscript functions. Timers run repeatedly until stopped by calling the stop method and are scheduled with a granularity of 1 millisecond.
- API Stability:
- Evolving.
- See Also:
- Fields:
-
EjsFunction * callback Callback function. int drift Event is allowed to drift. Ejs * ejs Need interpreter reference in callback. MprEvent * event MPR event for the timer. EjsObject obj Extends Object. int period Time in msec between invocations.
EjsType
Type class.
- Description:
- Classes in Ejscript are represented by instances of an EjsType. Types are templates for creating instances of the given type, but they are also are runtime accessible objects. Types contain the static properties and methods for objects and store these in their object slots array. They store the instance properties in the type->instance object. EjsType inherits from EjsBlock, EjsObject and EjsVar.
- API Stability:
- Evolving.
- See Also:
- ejsBindMethod, ejsCreateType, ejsDefineInstanceProperty, ejsGetType, ejsIsA, ejsIsInstanceBlock, ejsIsType, ejsIsTypeSubType
- Fields:
-
struct EjsType * baseType Base class. EjsBlock block Type properties (functions and static properties). uint callsSuper Constructor calls super(). uint dynamicInstance Instances may add properties. uint final Type is final. uint fixupDone Slot fixup performed. uint hasBaseConstructors Base types has constructors. uint hasBaseInitializers Base types have initializers. uint hasBaseStaticInitializers Base types have initializers. uint hasConstructor Type has a constructor. uint hasFinalizer Instances need finalization. uint hasInitializer Type has instance level initialization code. uint hasObject Type based on EjsObject. uint hasStaticInitializer Type has static level initialization code. struct EjsTypeHelpers * helpers Type helper methods. short id Unique type id. MprList * implements List of implemented interfaces. uint initialized Static initializer has run. EjsBlock * instanceBlock Instance properties template. ushort instanceSize Size of instances in bytes. uint isInterface Interface vs class. struct EjsModule * module Module owning the type - stores the constant pool. uint needFixup Slots need fixup. uint nobind Don't bind properties for this type to slots. uint numAlloc Allocation chunking increment. uint numericIndicies Instances support direct numeric indicies. uint operatorOverload Using overloaded operators - TODO not used. EjsName qname Qualified name of the type. Type name and namespace. uint separateInstanceSlots Instances slots allocated separately to object. uint skipScope Skip examining this object when searching the scope chain. uint subTypeCount Length of baseType chain Governed by EJS_MAX_BASE_CLASS. void * typeData Type specific data.
Bind a native C function to a function property.
- Description:
- Bind a native C function to an existing javascript function. Functions are typically created by compiling a script file of native function definitions into a mod file. When loaded, this mod file will create the function properties. This routine will then bind the specified C function to the function property.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. block Block containing the function property to bind. slotNum Slot number of the method property. fn Native C function to bind.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
Bind a native C function to a method property.
- Description:
- Bind a native C function to an existing javascript method. Method functions are typically created by compiling a script file of native method definitions into a mod file. When loaded, this mod file will create the method properties. This routine will then bind the specified C function to the method property.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Type containing the function property to bind. slotNum Slot number of the method property. fn Native C function to bind.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
Create a new type object.
- Description:
- Create a new type object.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. name Qualified name to give the type. This name is merely referenced by the type and must be persistent. This name is not used to define the type as a global property. up Reference to a module that will own the type. Set to null if not owned by any module. baseType Base type for this type. size Size of instances. This is the size in bytes of an instance object. slotNum Slot number that the type will be installed at. This is used by core types to define a unique type ID. For non-core types, set to -1. numTypeProp Number of type (class) properties for the type. These include static properties and methods. numInstanceProp Number of instance properties. attributes Attribute mask to modify how the type is initialized. Valid values include: - EJS_ATTR_BLOCK_HELPERS - Type uses EjsBlock helpers
- EJS_ATTR_CALLS_SUPER - Type calls super()
- EJS_ATTR_DYNAMIC_INSTANCE - Instance objects are dynamic
- EJS_ATTR_FINAL - Type will be a final class
- EJS_ATTR_INTERFACE - Type is an interface
- EJS_ATTR_HAS_CONSTRUCTOR - Type has a constructor to call
- EJS_ATTR_HAS_INITIALIZER - Type has an initializer
- EJS_ATTR_HAS_STATIC_INITIALIZER - Type has a static initializer
- EJS_ATTR_NO_BIND - Instruct the compiler to never bind any property references to slots
- EJS_ATTR_OBJECT - Type instances are based on EjsObject
- EJS_ATTR_OPER_OVERLOAD - Type uses operator overload
- EJS_ATTR_OBJECT_HELPERS - Type uses EjsObject helpers
- EJS_ATTR_SLOT_NEEDS_FIXUP - Slots will need fixup. Typically because the base type is unknown
data
Define a global function.
- Description:
- Define a global public function and bind it to the C native function. This is a simple one liner to define a public global function. The more typical paradigm to define functions is to create a script file of native method definitions and and compile it. This results in a mod file that can be loaded which will create the function/method definitions. Then use ejsBindMethod to associate a C function with a property.
Define an instance property.
- Description:
- Define an instance property on a type. This routine should not normally be called manually. Instance properties are best created by creating a script file of native property definitions and then loading the resultant mod file.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Type in which to create the instance property. slotNum Instance slot number in the type that will hold the property. Set to -1 to allocate the next available free slot. name Qualified name for the property including namespace and name. propType Type of the instance property. attributes Integer mask of access attributes. value Initial value of the instance property.
- Returns:
- The slot number used for the property.
- See Also:
- EjsType, ejsBindMethod, ejsCreateType, ejsGetType, ejsIsA, ejsIsInstanceBlock, ejsIsType, ejsIsTypeSubType
Get a type.
- Description:
- Get the type installed at the given slot number. All core-types are installed a specific global slots. When Ejscript is built, these slots are converted into C program defines of the form: ES_TYPE where TYPE is the name of the type concerned. For example, you can get the String type object via:.
- EjsGetType(ejs, ES_String).
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. slotNum Slot number of the type to retrieve. Use ES_TYPE defines.
- Returns:
- A type object if successful or zero if the type could not be found.
Test if an variable is an instance of a given type.
- Description:
- Perform an "is a" test. This tests if a variable is a direct instance or subclass of a given base type.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. target Target variable to test. type Type to compare with the target.
- Returns:
- True if target is an instance of "type" or an instance of a subclass of "type".
Determine if a variable is an instance block.
Types store the template for instance properties in an instance block object- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is an instance block object.
Determine if a variable is an type.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a type.
Test if a type is a derived type of a given base type.
- Description:
- Test if a type subclasses a base type.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. target Target type to test. baseType Base class to see if the target subclasses it.
- Returns:
- True if target is a "baseType" or a subclass of "baseType".
EjsVar
Foundation Variable Interface.
- Description:
- The EjsVar variable interface forms the most basic contract between Ejscript variables and the virtual machine. It defines the essential attributes, base type and state for managing a variable. Ejscript variables can have properties and methods and participate as full objects in Ejscript programs. All Ejscript data types implement the EjsVar interface either directly or indirectly. Primitive types will implement EjsVar by including it as the first field in their structure. They often don't need a property hash and by implementing EjsVar directly, they can save memory space. Class that do require property hashes will typically implement this interface by composing EjsObject which is a concrete implementation of EjsVar.
- API Stability:
- Evolving.
- See Also:
- ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
- Fields:
-
uint builtin Property is always present. uint dynamic Object may add properties. Derrived from type. uint generation GC generation for this var. uint hasGetterSetter Class has getter/setter functions. uint hidden Not enumerable via for/in. uint isFrame Is a frame (stack-based var). uint isFunction Instance is a function. uint isInstanceBlock Object is a type instance block object. uint isObject Instance is an Object. uint isType Instance is a type object (TODO Could do without this bit). uint jsonVisited JSON traversal. uint marked GC marked in use. uint native Native property backed by C/Java implementation. uint nativeProc Method has native proc. struct EjsVar * next GC linkage. uint permanent Object is immune from GC. uint refLinks Cross generational reference mask. uint rootLinks Cross generational root mask. uint survived Object has survived one GC pass. struct EjsType * type Type of this object (not base type). ie. type for Object is EjsType. uint visited Has been traversed.
Allocate a new variable.
- Description:
- This will allocate space for a bare variable. This routine should only be called by type factories when implementing the createVar helper.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Type object from which to create an object instance. size Size of extra property slots to reserve. This is used for dynamic objects.
- Returns:
- A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Cast a variable to a new type.
- Description:
- Cast a variable and return a new variable of the required type.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to cast. type Type to cast to.
- Returns:
- A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Clone a variable.
- Description:
- Copy a variable and create a new copy. This may do a shallow or deep copy. A shallow copy will not copy the property instances, rather it will only duplicate the property reference. A deep copy will recursively clone all the properties of the variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to clone. deep Set to true to do a deep copy.
- Returns:
- A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Copy an object.
- Description:
- Copy an object create a new instance. This may do a shallow or deep copy depending on the value of deep. A shallow copy will not copy the property instances, rather it will only duplicate the property reference. A deep copy will recursively clone all the properties of the variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. src Source object to copy. deep Set to true to do a deep copy.
- Returns:
- A newly allocated object. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Create a new variable instance.
- Description:
- Create a new variable instance and invoke any required constructors with the given arguments.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Type from which to create a new instance. argc Count of args in argv. argv Vector of arguments. Each arg is an EjsVar.
- Returns:
- A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Create a variable.
- Description:
- Create a variable of the required type. This invokes the createVar helper method for the specified type.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. type Type to cast to. numSlots Size of extra property slots to reserve. This is used for dynamic objects.
- Returns:
- A newly allocated variable of the requested type. Caller must not free as the GC will manage the lifecycle of the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Define a property.
- Description:
- Define a property in a variable and give it a name, base type, attributes and default value.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable in which to define a property. slotNum Slot number in the variable for the property. Slots are numbered sequentially from zero. Set to -1 to request the next available slot number. qname Qualified name containing a name and a namespace. type Base type of the property. Set to ejs->voidType to leave as untyped. attributes Attribute traits. Useful attributes include: - EJS_ATTR_OVERRIDE
- EJS_ATTR_CONST
- EJS_ATTR_ENUMERABLE
value Initial value of the property.
- Returns:
- A postitive slot number or a negative MPR error code.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Delete a property.
- Description:
- Delete a variable's property and set its slot to null. The slot is not reclaimed and subsequent properties are not compacted.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable in which to delete the property. slotNum Slot number in the variable for the property to delete.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Delete a property by name.
- Description:
- Delete a variable's property by name and set its slot to null. The property is resolved by using ejsLookupProperty with the specified name. Once deleted, the slot is not reclaimed and subsequent properties are not compacted.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable in which to delete the property. qname Qualified name for the property including name and namespace.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Destroy a variable.
- Description:
- Destroy a variable of the required type. This invokes the destroyVar helper method for the specified type. The default action for the destroyVar helper is to simply invoke ejsFreeVar which will return the variable storage to a type pool or return the memory to the heap.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Varaible to destroy.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Finalize a variable before destroying.
- Description:
- Finalize a variable. Variables can have finalization routines to release any acquired resources before being destroyed.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to cast.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Free a new variable.
- Description:
- This should typically only be called by the destroyVar type helper which is invoked by the GC when a variable is no longer needed. It should not be called by normal code.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to free.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a property.
- Description:
- Get a property from a variable at a given slot.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number for the requested property.
- Returns:
- The variable property stored at the nominated slot.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a property by name.
- Description:
- Get a property from a variable by name.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. qname Qualified name specifying both a namespace and name.
- Returns:
- The variable property stored at the nominated slot.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a count of properties in a variable.
- Description:
- Get a property from a variable at a given slot.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine.
- Returns:
- A positive integer count of the properties stored by the variable.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a variable property's name.
- Description:
- Get a property name for the property at a given slot in the variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number for the requested property.
- Returns:
- The qualified property name including namespace and name. Caller must not free.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a property's traits.
- Description:
- Get a property's trait description. The property traits define the properties base type, and access attributes.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number for the requested property.
- Returns:
- A trait structure reference for the property.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Get a variables type.
- Description:
- Get the base type for a variable.
- Parameters:
-
vp Variable reference.
- Returns:
- A reference to the variables type object.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Invoke an opcode on a native type.
- Description:
- Invoke an Ejscript byte code operator on the specified variable given the expression right hand side. Native types would normally implement the invokeOperator helper function to respond to this function call.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. opCode Byte ope code to execute. rhs Expression right hand side for binary expression op codes. May be null for other op codes.
- Returns:
- The result of the op code or NULL if the opcode does not require a result.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Lookup a property by name.
- Description:
- Search for a property by name in the given variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. qname Qualified name of the property to search for.
- Returns:
- The slot number containing the property. Then use ejsGetProperty to retrieve the property or alternatively use ejsGetPropertyByName to lookup and retrieve in one step.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Mark a variable as currently in use.
- Description:
- Mark a variables as currently active so the garbage collector will preserve it. This routine should be called by native types in their markVar helper.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. parent Owning variable for the property. vp Variable to mark as currently being used.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Serialize a variable.
- Description:
- Serialize a variable into a JSON string representation.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Set a property's value.
- Description:
- Set a value for a property at a given slot in the specified variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number for the requested property. value Reference to a value to store.
- Returns:
- The slot number of the property updated.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetPropertyByName, ejsSetPropertyName, ejsSetPropertyTrait
Set a property's value.
- Description:
- Set a value for a property. The property is located by name in the specified variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. qname Qualified property name. value Reference to a value to store.
- Returns:
- The slot number of the property updated.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyName, ejsSetPropertyTrait
Set a property's name.
- Description:
- Set a qualified name for a property at the specified slot in the variable. The qualified name consists of a namespace and name - both of which must be persistent. A typical paradigm is for these name strings to be owned by the memory context of the variable.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number of the property in the variable. qname Qualified property name.
- Returns:
- The slot number of the property updated.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyTrait
Set a property's traits.
- Description:
- Set the traits describing a property. These include the property's base type and access attributes.
- Parameters:
-
ejs Interpreter instance returned from ejsCreate. vp Variable to examine. slotNum Slot number of the property in the variable. type Base type for the property. Set to NULL for an untyped property. attributes Integer mask of access attributes.
- Returns:
- The slot number of the property updated.
- See Also:
- EjsVar, ejsAllocVar, ejsCastVar, ejsCloneVar, ejsCreateInstance, ejsCreateVar, ejsDefineProperty, ejsDeleteProperty, ejsDeletePropertyByName, ejsDestroyVar, ejsFinalizeVar, ejsFreeVar, ejsGetProperty, ejsGetVarType, ejsLookupProperty, ejsMarkVar, ejsSerialize, ejsSerialize, ejsSetProperty, ejsSetPropertyByName, ejsSetPropertyName
EjsVm
EjsVoid
Functions
Copy data into a byte array.
- Description:
- Copy data into a byte array at a specified offset.
- Parameters:
-
ejs Ejs reference returned from ejsCreate. ap Byte array object. offset Offset in the byte array to which to copy the data. data Pointer to the source data. length Length of the data to copy.
- Returns:
- Zero if successful, otherwise a negative MPR error code.
Determine if a variable is a File.
- Parameters:
-
vp Variable to test.
- Returns:
- True if the variable is a File.
Run a script.
- Description:
- Run a script that has previously ben compiled by ecCompile.
- Parameters:
-
ejs Interpeter object returned from ejsCreate.
- Returns:
- Zero if successful, otherwise a non-zero Mpr error code.
Typedefs
Configured numeric type.
The configure program will define BLD_FEATURE_NUM_TYPE to be either double, float, int or int64Byte code.
- Description:
- This structure describes a sequence of byte code for a function. It also defines a set of execption handlers pertaining to this byte code.
- Fields:
-
uchar * byteCode Byte code. int codeLen Byte code length. struct EjsConst * constants Constant pool. Reference to module constant pool. int finallyIndex Index in handlers for finally handler. struct EjsEx ** handlers Exception handlers. int numHandlers Number of exception handlers. int sizeHandlers Size of handlers array.
Exception Handler Record.
- Description:
- Each exception handler has an exception handler record allocated that describes it.
- Fields:
-
struct EjsType * catchType Type of error to catch. uint flags Exception flags. uint handlerEnd Ptr to one past the end. uint handlerStart Ptr to start of catch block. uint tryEnd Ptr to one past the end. uint tryStart Ptr to start of try block.
Hash entry for a property.
- Description:
- Properties are indexed by hash entries. These store the property name and a reference to the next slot in the hash collision chain.
- Fields:
-
int nextSlot Next property in hash chain. EjsName qname Property name.
List type.
- Description:
- The MprList is a dynamic growable array suitable for storing pointers to arbitrary objects.
- Fields:
-
- API Stability:
- Prototype.
- See Also:
Lookup State.
- Description:
- Location information returned when looking up properties.
- Fields:
-
Property Names.
- Description:
- This structure stores the names of all the properties in an object and holds the hash table state.
- Fields:
-
int * buckets Hash buckets and head of link chains. EjsHashEntry * entries Hash entries. int sizeBuckets Size of buckets. int sizeEntries Size of entries array in elements.
Ejscript Service structure.
- Description:
- The Ejscript service manages the overall language runtime. It is the factory that creates interpreter instances via ejsCreate.
- Fields:
-
Evaluation stack.
- Fields:
-
Property traits.
- Description:
- Property traits describe the type and access attributes of a property. The Trait structure is used by EjsBlock to describe the attributes of properties defined within a block. Note: These traits apply to a property definition and not to the referenced object. ie. two property definitions may have different traits but will refer to the same object.
- Fields:
-
int attributes Property attributes. struct EjsType * type Property type.
- API Stability:
- Evolving.
Type Helpers.
- Description:
- The type helpers interface defines the set of primitive operations a type must support to interact with the virtual machine.
- Fields:
-