#define XP_WIN
#define JSFILE
#include "jsstddef.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "jstypes.h"
#include "jsarena.h"
#include "jsutil.h"
#include "jsprf.h"
#include "jsapi.h"
#include "jsatom.h"
#include "jscntxt.h"
#include "jsdbgapi.h"
#include "jsemit.h"
#include "jsfun.h"
#include "jsgc.h"
#include "jslock.h"
#include "jsobj.h"
#include "jsparse.h"
#include "jsscope.h"
#include "jsscript.h"
global_class = { "global", 0, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub };
int main(int argc, char* argv[])
{
JSRuntime *rt;
JSContext *cx;
JSObject *globalObj;
jsval rval;
char *source = "5.0 * 3";
rt = JS_NewRuntime(64L * 1024L * 1024L);
if( rt == NULL )
return 1;
cx = JS_NewContext(rt, 8192);
if( cx == NULL )
return 1;
globalObj = JS_NewObject(cx, &global_class, 0, 0);
JS_SetGlobalObject(cx, globalObj);
if( JS_EvaluateScript(cx, globalObj, source, strlen(source), "sample.js", 0, &rval) )
{
jsdouble d;
if( JS_ValueToNumber(cx, rval, &d) )
printf( "%lf\n", d );
}
JS_DestroyContext(cx);
JS_DestroyRuntime(rt);
JS_ShutDown();
return 0;
}
|