X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjs%2FJSScope.java;h=f025b244aa6db2e7e5ca5016c002cffed3ead94c;hp=675ddc7334b2eaf9154965a7c184c469cf8fe063;hb=68d12d9beaf6f2baded843c1797c4bbad4503352;hpb=bf8dd22d35e1f8f5afd6896d65a4f106305665d3 diff --git a/src/org/ibex/js/JSScope.java b/src/org/ibex/js/JSScope.java index 675ddc7..f025b24 100644 --- a/src/org/ibex/js/JSScope.java +++ b/src/org/ibex/js/JSScope.java @@ -43,6 +43,7 @@ public class JSScope extends JS { case "undefined": return null; case "stringFromCharCode": return METHOD; case "parseInt": return METHOD; + case "parseFloat": return METHOD; case "isNaN": return METHOD; case "isFinite": return METHOD; case "decodeURI": return METHOD; @@ -51,7 +52,6 @@ public class JSScope extends JS { case "encodeURIComponent": return METHOD; case "escape": return METHOD; case "unescape": return METHOD; - case "parseInt": return METHOD; //#end return super.get(key); } @@ -70,6 +70,7 @@ public class JSScope extends JS { case 1: { //#switch(method) case "parseInt": return parseInt(a0, N(0)); + case "parseFloat": return parseFloat(a0); case "isNaN": { double d = toDouble(a0); return d == d ? F : T; } case "isFinite": { double d = toDouble(a0); return (d == d && !Double.isInfinite(d)) ? T : F; } case "decodeURI": throw new JSExn("unimplemented"); @@ -91,9 +92,9 @@ public class JSScope extends JS { return super.callMethod(method, a0, a1, a2, rest, nargs); } - private Object parseInt(Object arg, Object r) { + private Object parseInt(Object arg, Object r) throws JSExn { int radix = JS.toInt(r); - String s = (String)arg; + String s = JS.toString(arg); int start = 0; int length = s.length(); int sign = 1; @@ -132,8 +133,8 @@ public class JSScope extends JS { return JS.N((long)sign*n); } - private Object parseFloat(Object arg) { - String s = (String)arg; + private Object parseFloat(Object arg) throws JSExn { + String s = JS.toString(arg); int start = 0; int length = s.length(); while(start < length && Character.isWhitespace(s.charAt(0))) start++;