Revision: 1689
          http://svn.sourceforge.net/vexi/?rev=1689&view=rev
Author:   mkpg2
Date:     2007-02-21 02:35:08 -0800 (Wed, 21 Feb 2007)

Log Message:
-----------
Adding compareTo function to primitives

Modified Paths:
--------------
    core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp

Modified: core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp
===================================================================
--- core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp      2007-02-21 
10:28:57 UTC (rev 1688)
+++ core/trunk/org.ibex.js/src/org/ibex/js/JSPrimitive.jpp      2007-02-21 
10:35:08 UTC (rev 1689)
@@ -9,32 +9,7 @@
     public JS call(JS method, JS[] args) throws JSExn {
         String s = coerceToString();
         int slength = s.length();
-
         //#switch(JSU.str(method))
-        case "toFixed": throw new JSExn("toFixed() not implemented");
-        case "toExponential": throw new JSExn("toExponential() not 
implemented");
-        case "toPrecision": throw new JSExn("toPrecision() not implemented");
-        case "toString": return this instanceof JSString ? this : 
JSU.S(JSU.toString(this));
-        case "substring": {
-            int a = args.length >= 1 ? JSU.toInt(args[0]) : 0;
-            int b = args.length >= 2 ? JSU.toInt(args[1]) : slength;
-            if (a > slength) a = slength;
-            if (b > slength) b = slength;
-            if (a < 0) a = 0;
-            if (b < 0) b = 0;
-            if (a > b) { int tmp = a; a = b; b = tmp; }
-            return JSU.S(s.substring(a,b));
-        }
-        case "substr": {
-            int start = args.length >= 1 ? JSU.toInt(args[0]) : 0;
-            int len = args.length >= 2 ? JSU.toInt(args[1]) : 
Integer.MAX_VALUE;
-            if (start < 0) start = slength + start;
-            if (start < 0) start = 0;
-            if (len < 0) len = 0;
-            if (len > slength - start) len = slength - start;
-            if (len <= 0) return SC_;
-            return JSU.S(s.substring(start,start+len));
-        }
         case "charAt": {
             int p = args.length >= 1 ? JSU.toInt(args[0]) : 0;
             if (p < 0 || p >= slength) return SC_;
@@ -45,6 +20,11 @@
             if (p < 0 || p >= slength) return NC_NaN;
             return JSU.N(s.charAt(p));
         }
+        case "compareTo": {
+               String a = JSU.toString(args[0]);
+               String b = JSU.toString(args[1]);
+               return JSU.N(a.compareTo(b));
+        }
         case "concat": {
             StringBuffer sb = new StringBuffer(slength*2).append(s);
             for (int i=0; i < args.length; i++) 
sb.append(JSU.toString(args[i]));
@@ -65,9 +45,6 @@
         case "match": return JSRegexp.stringMatch(this,args[0]);
         case "replace": return JSRegexp.stringReplace(this,args[0],args[1]);
         case "search": return JSRegexp.stringSearch(this,args[0]);
-        case "split": return 
JSRegexp.stringSplit(this,args[0],args.length>1?args[1]:null);
-        case "toLowerCase": return JSU.S(s.toLowerCase());
-        case "toUpperCase": return JSU.S(s.toUpperCase());
         case "slice": {
             int a = args.length >= 1 ? JSU.toInt(args[0]) : 0;
             int b = args.length >= 2 ? JSU.toInt(args[1]) : slength;
@@ -80,31 +57,59 @@
             if (a > b) return SC_;
             return JSU.S(s.substring(a,b));
         }
+        case "split": return 
JSRegexp.stringSplit(this,args[0],args.length>1?args[1]:null);
+        case "substr": {
+            int start = args.length >= 1 ? JSU.toInt(args[0]) : 0;
+            int len = args.length >= 2 ? JSU.toInt(args[1]) : 
Integer.MAX_VALUE;
+            if (start < 0) start = slength + start;
+            if (start < 0) start = 0;
+            if (len < 0) len = 0;
+            if (len > slength - start) len = slength - start;
+            if (len <= 0) return SC_;
+            return JSU.S(s.substring(start,start+len));
+        }
+        case "substring": {
+            int a = args.length >= 1 ? JSU.toInt(args[0]) : 0;
+            int b = args.length >= 2 ? JSU.toInt(args[1]) : slength;
+            if (a > slength) a = slength;
+            if (b > slength) b = slength;
+            if (a < 0) a = 0;
+            if (b < 0) b = 0;
+            if (a > b) { int tmp = a; a = b; b = tmp; }
+            return JSU.S(s.substring(a,b));
+        }
+        case "toExponential": throw new JSExn("toExponential() not 
implemented");
+        case "toFixed": throw new JSExn("toFixed() not implemented");
+        case "toLowerCase": return JSU.S(s.toLowerCase());
+        case "toPrecision": throw new JSExn("toPrecision() not implemented");
+        case "toString": return this instanceof JSString ? this : 
JSU.S(JSU.toString(this));
+        case "toUpperCase": return JSU.S(s.toUpperCase());
         //#end
         return super.call(method, args);
     }
     
     public JS get(JS key) throws JSExn {
         //#switch(JSU.toString(key))
-        case "length": return JSU.N(JSU.toString(this).length());
-        case "substring": return METHOD;
         case "charAt": return METHOD;
         case "charCodeAt": return METHOD;
+        case "compareTo": return METHOD;
         case "concat": return METHOD;
         case "indexOf": return METHOD;
         case "lastIndexOf": return METHOD; 
+        case "length": return JSU.N(JSU.toString(this).length());
         case "match": return METHOD;
         case "replace": return METHOD;
         case "search": return METHOD;
         case "slice": return METHOD;
         case "split": return METHOD;
+        case "substr": return METHOD;
+        case "substring": return METHOD;
+        case "toExponential": return METHOD;
+        case "toFixed": return METHOD;
         case "toLowerCase": return METHOD; 
+        case "toPrecision": return METHOD;
+        case "toString": return METHOD; 
         case "toUpperCase": return METHOD; 
-        case "toString": return METHOD; 
-        case "substr": return METHOD;  
-        case "toPrecision": return METHOD;
-        case "toExponential": return METHOD;
-        case "toFixed": return METHOD;
         //#end
         return super.get(key);
     }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to