Revision: 4154
          http://vexi.svn.sourceforge.net/vexi/?rev=4154&view=rev
Author:   mkpg2
Date:     2011-05-27 02:22:21 +0000 (Fri, 27 May 2011)

Log Message:
-----------
Fix. Catch divide by zero (and return null).

Modified Paths:
--------------
    trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDecimal.jpp
    
trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/TestDecimal.java

Added Paths:
-----------
    trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/nan.js

Modified: trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDecimal.jpp
===================================================================
--- trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDecimal.jpp    
2011-05-27 02:20:38 UTC (rev 4153)
+++ trunk/org.vexi-library.js/src/main/jpp/org/ibex/js/JSDecimal.jpp    
2011-05-27 02:22:21 UTC (rev 4154)
@@ -124,7 +124,12 @@
                 //#switch(methodStr)
                 case "add": return new JSDecimal(a.add(b));
                 case "compare": return JSU.N(a.compareTo(b));
-                case "divide": return new JSDecimal(a.divide(b, a.scale(), 
RoundingMode.HALF_UP));
+                case "divide": 
+                    try{
+                        return new JSDecimal(a.divide(b, a.scale(), 
RoundingMode.HALF_UP));
+                    }catch(java.lang.ArithmeticException e){
+                        return null;
+                    }
                 case "max": return new JSDecimal(a.max(b));
                 case "min": return new JSDecimal(a.min(b));
                 case "multiply": return new JSDecimal(a.multiply(b));

Modified: 
trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/TestDecimal.java
===================================================================
--- 
trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/TestDecimal.java   
    2011-05-27 02:20:38 UTC (rev 4153)
+++ 
trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/TestDecimal.java   
    2011-05-27 02:22:21 UTC (rev 4154)
@@ -11,7 +11,7 @@
 
     public static void main(String[] args) throws Throwable {
        JSTestSuite jts = new JSTestSuite(TestDecimal.class);
-       String SCRIPT = "methods.js";
+       String SCRIPT = "nan.js";
        //String SCRIPT = "testNumber2String.js";
        TestCase t = jts.createTestCase(jts.getResourceDirs(), SCRIPT);
        t.runBare();

Added: trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/nan.js
===================================================================
--- trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/nan.js         
                (rev 0)
+++ trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/nan.js 
2011-05-27 02:22:21 UTC (rev 4154)
@@ -0,0 +1,6 @@
+sys.import("lib");
+
+const Decimal = sys.js.Decimal;
+
+
+assertEquals(null, Decimal.divide(123,0));
\ No newline at end of file


Property changes on: 
trunk/org.vexi-library.js/src/test/java/test/js/exec/decimal/nan.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain


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

------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to