Hi,

I initially that the recent fix by Hannes (see also: http://mail.openjdk.java.net/pipermail/nashorn-dev/2015-December/005762.html).would fix this issue as well. But, I applied patch by Hannes and verified that the issue is not fixed by that patch. I've filed a new bug:

https://bugs.openjdk.java.net/browse/JDK-8146264

Thanks,
-Sundar
**
On 12/29/2015 7:23 AM, Roland Bouman wrote:
Please consider the concrete example of a Java function I would like to get
working in Nashorn / jss javascript below:

   public static BigInteger fibonacci(int n) {
     BigInteger prev = new BigInteger("0");
     if (n == 0) {
       return prev;
     }
     BigInteger next = new BigInteger("1");
     if (n == 1) {
       return next;
     }
     BigInteger fib = null;
     int i;
     for (i = 1; i < n; i++) {
       fib = prev.add(next);
       prev = next;
       next = fib;
     }
     return fib;
   }

We can test with these values:

n=77: 5527939700884757
n=78: 8944394323791464
n=79: 14472334024676221

So far so good. Now I try the - what I think is - equivalent function in
javascript:

function fibonacci(n) {
   var BigInteger = Java.type("java.math.BigInteger");
   prev = new BigInteger("0");
   if (n == 0) return prev;

   next = new BigInteger("1");
   if (n == 1) return next;

   var i, fib = null;
   for (i = 1; i < n; i++) {
     fib = prev.add(next);
     prev = next;
     next = fib;
   }
   return fib;
}

However, now we get different results:

n=77: 5527939700884757
n=78: 8944394323791464
n=79: 14472334024676220

Note that the value for n=79 is off by one.

Reply via email to