| Index: src/xml/SkJS.cpp
|
| diff --git a/src/xml/SkJS.cpp b/src/xml/SkJS.cpp
|
| deleted file mode 100644
|
| index 8167c9c1eaf6791d4c28cac844a75e871997772c..0000000000000000000000000000000000000000
|
| --- a/src/xml/SkJS.cpp
|
| +++ /dev/null
|
| @@ -1,228 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2006 The Android Open Source Project
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -
|
| -#include <jsapi.h>
|
| -
|
| -#include "SkJS.h"
|
| -#include "SkString.h"
|
| -
|
| -#ifdef _WIN32_WCE
|
| -extern "C" {
|
| - void abort() {
|
| - SkASSERT(0);
|
| - }
|
| -
|
| - unsigned int _control87(unsigned int _new, unsigned int mask ) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - time_t mktime(struct tm *timeptr ) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| -// int errno;
|
| -
|
| - char *strdup(const char *) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - char *strerror(int errnum) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - int isatty(void* fd) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - int putenv(const char *envstring) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - char *getenv(const char *varname) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - void GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime) {
|
| - SkASSERT(0);
|
| - }
|
| -
|
| - struct tm * localtime(const time_t *timer) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| - size_t strftime(char *strDest, size_t maxsize, const char *format,
|
| - const struct tm *timeptr ) {
|
| - SkASSERT(0);
|
| - return 0;
|
| - }
|
| -
|
| -}
|
| -#endif
|
| -
|
| -static JSBool
|
| -global_enumerate(JSContext *cx, JSObject *obj)
|
| -{
|
| -#ifdef LAZY_STANDARD_CLASSES
|
| - return JS_EnumerateStandardClasses(cx, obj);
|
| -#else
|
| - return JS_TRUE;
|
| -#endif
|
| -}
|
| -
|
| -static JSBool
|
| -global_resolve(JSContext *cx, JSObject *obj, jsval id, uintN flags, JSObject **objp)
|
| -{
|
| -#ifdef LAZY_STANDARD_CLASSES
|
| - if ((flags & JSRESOLVE_ASSIGNING) == 0) {
|
| - JSBool resolved;
|
| -
|
| - if (!JS_ResolveStandardClass(cx, obj, id, &resolved))
|
| - return JS_FALSE;
|
| - if (resolved) {
|
| - *objp = obj;
|
| - return JS_TRUE;
|
| - }
|
| - }
|
| -#endif
|
| -
|
| -#if defined(SHELL_HACK) && defined(DEBUG) && defined(XP_UNIX)
|
| - if ((flags & (JSRESOLVE_QUALIFIED | JSRESOLVE_ASSIGNING)) == 0) {
|
| - /*
|
| - * Do this expensive hack only for unoptimized Unix builds, which are
|
| - * not used for benchmarking.
|
| - */
|
| - char *path, *comp, *full;
|
| - const char *name;
|
| - JSBool ok, found;
|
| - JSFunction *fun;
|
| -
|
| - if (!JSVAL_IS_STRING(id))
|
| - return JS_TRUE;
|
| - path = getenv("PATH");
|
| - if (!path)
|
| - return JS_TRUE;
|
| - path = JS_strdup(cx, path);
|
| - if (!path)
|
| - return JS_FALSE;
|
| - name = JS_GetStringBytes(JSVAL_TO_STRING(id));
|
| - ok = JS_TRUE;
|
| - for (comp = strtok(path, ":"); comp; comp = strtok(NULL, ":")) {
|
| - if (*comp != '\0') {
|
| - full = JS_smprintf("%s/%s", comp, name);
|
| - if (!full) {
|
| - JS_ReportOutOfMemory(cx);
|
| - ok = JS_FALSE;
|
| - break;
|
| - }
|
| - } else {
|
| - full = (char *)name;
|
| - }
|
| - found = (access(full, X_OK) == 0);
|
| - if (*comp != '\0')
|
| - free(full);
|
| - if (found) {
|
| - fun = JS_DefineFunction(cx, obj, name, Exec, 0, JSPROP_ENUMERATE);
|
| - ok = (fun != NULL);
|
| - if (ok)
|
| - *objp = obj;
|
| - break;
|
| - }
|
| - }
|
| - JS_free(cx, path);
|
| - return ok;
|
| - }
|
| -#else
|
| - return JS_TRUE;
|
| -#endif
|
| -}
|
| -
|
| -JSClass global_class = {
|
| - "global", JSCLASS_NEW_RESOLVE,
|
| - JS_PropertyStub, JS_PropertyStub,
|
| - JS_PropertyStub, JS_PropertyStub,
|
| - global_enumerate, (JSResolveOp) global_resolve,
|
| - JS_ConvertStub, JS_FinalizeStub
|
| -};
|
| -
|
| -SkJS::SkJS(void* hwnd) : SkOSWindow(hwnd) {
|
| - if ((fRuntime = JS_NewRuntime(0x100000)) == NULL) {
|
| - SkASSERT(0);
|
| - return;
|
| - }
|
| - if ((fContext = JS_NewContext(fRuntime, 0x1000)) == NULL) {
|
| - SkASSERT(0);
|
| - return;
|
| - }
|
| - ;
|
| - if ((fGlobal = JS_NewObject(fContext, &global_class, NULL, NULL)) == NULL) {
|
| - SkASSERT(0);
|
| - return;
|
| - }
|
| - if (JS_InitStandardClasses(fContext, fGlobal) == NULL) {
|
| - SkASSERT(0);
|
| - return;
|
| - }
|
| - setConfig(SkBitmap::kARGB32_Config);
|
| - updateSize();
|
| - setVisibleP(true);
|
| - InitializeDisplayables(getBitmap(), fContext, fGlobal, NULL);
|
| -}
|
| -
|
| -SkJS::~SkJS() {
|
| - DisposeDisplayables();
|
| - JS_DestroyContext(fContext);
|
| - JS_DestroyRuntime(fRuntime);
|
| - JS_ShutDown();
|
| -}
|
| -
|
| -SkBool SkJS::EvaluateScript(const char* script, jsval* rVal) {
|
| - return JS_EvaluateScript(fContext, fGlobal, script, strlen(script),
|
| - "memory" /* no file name */, 0 /* no line number */, rVal);
|
| -}
|
| -
|
| -SkBool SkJS::ValueToString(jsval value, SkString* string) {
|
| - JSString* str = JS_ValueToString(fContext, value);
|
| - if (str == NULL)
|
| - return false;
|
| - string->set(JS_GetStringBytes(str));
|
| - return true;
|
| -}
|
| -
|
| -#ifdef SK_DEBUG
|
| -void SkJS::Test(void* hwnd) {
|
| - SkJS js(hwnd);
|
| - jsval val;
|
| - SkBool success = js.EvaluateScript("22/7", &val);
|
| - SkASSERT(success);
|
| - SkString string;
|
| - success = js.ValueToString(val, &string);
|
| - SkASSERT(success);
|
| - SkASSERT(strcmp(string.c_str(), "3.142857142857143") == 0);
|
| - success = js.EvaluateScript(
|
| - "var rect = new rectangle();"
|
| - "rect.left = 4;"
|
| - "rect.top = 10;"
|
| - "rect.right = 20;"
|
| - "rect.bottom = 30;"
|
| - "rect.width = rect.height + 20;"
|
| - "rect.draw();"
|
| - , &val);
|
| - SkASSERT(success);
|
| - success = js.ValueToString(val, &string);
|
| - SkASSERT(success);
|
| -}
|
| -#endifASSERT(success);
|
|
|