typeof Long is not 'number' anymore
João Paulo Varandas
joaovarandas at inpaas.com
Wed Oct 12 15:42:02 UTC 2016
Joerg/Emilian.
This is a questioning we've raised some time ago.
I still cannot upgrade from revision 91 because of the side effects of this
change ...
It seems that we need some wrapping/unwrapping when working with 'Long's in
Nashorn, I don't like this either, but it seems that there's a gap between
Long, Double and JSNumber max values which was bringing a loss of precision
with long values in Nashorn. Thus, Long is now "object" ...
Check out:
http://mail.openjdk.java.net/pipermail/nashorn-dev/2016-August/006450.html
*João Paulo Varandas*+55 11 99889-2321
joaovarandas at inpaas.com
2016-10-12 12:11 GMT-03:00 Emilian Bold <emilian.bold at gmail.com>:
> I just read a few of the bugs linked and it does seem worrisome. So,
> Nashorn cannot reliably be used as a glue between Java code that uses
> longs?
>
>
> --emi
>
> On Wed, Oct 12, 2016 at 5:10 PM, Frantzius, Jörg <
> Joerg.Frantzius at aperto.com
> > wrote:
>
> > Hi,
> >
> > as of JDK 1.8.0_101, the following JUnit test fails:
> >
> > @Test
> > public void testLongIsNumber() {
> > jdk.nashorn.api.scripting.ScriptObjectMirror isNumberFunction =
> > eval("function isNumber(arg) {\n" +
> > " return typeof arg === 'number';\n" +
> > "}\n" +
> > "");
> > Object result = isNumberFunction.call(isNumberFunction, 1L);
> > assertTrue((boolean) result);
> > }
> >
> > This breaks e.g. Nodyn, where Long numbers resulting from
> > java.io.File.length() are passed into https://nodejs.org/api/util.
> > html#util_util_isnumber_object , resulting in some „if" clause now taking
> > the wrong turn. I guess this is a side-effect of
> > https://bugs.openjdk.java.net/browse/JDK-8144020 .
> >
> > While I’m probably able to patch this in Nodyn, I find it a bit
> > frightening that any other code out there that relies on Longs being
> typeof
> > ‚number‘ will break now, in particular because there is a lot of JDK API
> > that returns Long...
> >
> > Regards,
> > Jörg
> >
> >
> > ---
> >
> > Dipl. Inf. Jörg von Frantzius, Technical Director
> >
> > E-Mail joerg.frantzius at aperto.com
> >
> > Phone +49 30 283921-318
> > Fax +49 30 283921-29
> >
> > Aperto AG – An IBM Company
> > Chausseestraße 5, D-10115 Berlin
> > http://www.aperto.com<http://www.aperto.de/>
> > http://www.facebook.com/aperto
> > https://www.xing.com/companies/apertoag
> >
> > HRB 77049 B, AG Berlin Charlottenburg
> > Vorstand: Dirk Buddensiek (Vorsitzender), Kai Großmann, Stephan Haagen,
> > Daniel Simon
> > Aufsichtsrat: Matthew Candy (Vorsitzender)
> >
> >
>
--
"Esta mensagem, incluindo seus anexos, pode conter informacoes
confidenciais e privilegiadas.
Se voce a recebeu por engano, solicitamos que a apague e avise o remetente
imediatamente.
Opinioes ou informacoes aqui contidas nao refletem necessariamente a
posicao oficial da Plusoft."
"Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO
AMBIENTE"
More information about the nashorn-dev
mailing list