shithub: libmujs

ref: ffc82eabd78042d4020776af64baf6a32de3a8d2
dir: /jsobject.c/

View raw version
#include "js.h"
#include "jsobject.h"
#include "jsstate.h"

js_Object *jsR_newfunction(js_State *J, js_Function *function, js_Environment *scope)
{
	js_Object *obj = jsR_newobject(J, JS_CFUNCTION, J->Function_prototype);
	obj->function = function;
	obj->scope = scope;
	return obj;
}

js_Object *jsR_newscript(js_State *J, js_Function *function)
{
	js_Object *obj = jsR_newobject(J, JS_CSCRIPT, NULL);
	obj->function = function;
	return obj;
}

js_Object *jsR_newcfunction(js_State *J, js_CFunction cfunction)
{
	js_Object *obj = jsR_newobject(J, JS_CCFUNCTION, NULL);
	obj->cfunction = cfunction;
	obj->cconstructor = NULL;
	return obj;
}

js_Object *jsR_newcconstructor(js_State *J, js_CFunction cfunction, js_CFunction cconstructor)
{
	js_Object *obj = jsR_newobject(J, JS_CCFUNCTION, NULL);
	obj->cfunction = cfunction;
	obj->cconstructor = cconstructor;
	return obj;
}

js_Object *jsR_newboolean(js_State *J, int v)
{
	js_Object *obj = jsR_newobject(J, JS_CBOOLEAN, J->Boolean_prototype);
	obj->primitive.boolean = v;
	return obj;
}

js_Object *jsR_newnumber(js_State *J, double v)
{
	js_Object *obj = jsR_newobject(J, JS_CNUMBER, J->Number_prototype);
	obj->primitive.number = v;
	return obj;
}

js_Object *jsR_newstring(js_State *J, const char *v)
{
	js_Object *obj = jsR_newobject(J, JS_CSTRING, J->String_prototype);
	obj->primitive.string = v;
	return obj;
}