2003/10/31 10:57:24
[org.ibex.core.git] / src / org / xwt / js / GlobalScopeImpl.java
index e9b5680..5d46c83 100644 (file)
@@ -38,9 +38,24 @@ class GlobalScopeImpl extends JS.Scope {
         } else if(method.equals("encodeURIComponent")) {
             if(checkOnly) return Boolean.TRUE;
             return encodeURIComponent(args);
+        } else if(method.equals("escape")) {
+            if(checkOnly) return Boolean.TRUE;
+            return escape(args);
+        } else if(method.equals("unescape")) {
+            if(checkOnly) return Boolean.TRUE;
+            return unescape(args);
+        } else if(method.equals("stringFromCharCode")) {
+            if(checkOnly) return Boolean.TRUE;
+            return stringFromCharCode(args);
         }
         return super.callMethod(method,args,checkOnly);
     }
+    private Object stringFromCharCode(JS.Array args) {
+        char buf[] = new char[args.length()];
+        for(int i=0;i<args.length();i++)
+            buf[i] = (char)(JS.toInt(args.elementAt(i)) & 0xffff);
+        return new String(buf);
+    }
     private Object parseInt(JS.Array args) {
         String s = args.length() > 0 ? args.elementAt(0).toString() : "";
         int radix = args.length() > 1 ? toInt(args.elementAt(1)) : 0;
@@ -117,4 +132,10 @@ class GlobalScopeImpl extends JS.Scope {
     private Object encodeURIComponent(JS.Array args) {
         throw new JS.Exn("encodeURIComponent is unimplemented");
     }
+    private Object escape(JS.Array args) {
+        throw new JS.Exn("escape is unimplemented");
+    }
+    private Object unescape(JS.Array args) {
+        throw new JS.Exn("unescape is unimplemented");
+    }
 }