Closed
Bug 548857
Opened 15 years ago
Closed 14 years ago
hang converting number to string
Categories
(Rhino Graveyard :: Core, defect)
Rhino Graveyard
Core
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: tim, Unassigned)
Details
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
Build Identifier: 1.7R2
DToA.JS_dtoa() has a line:
x = (i > 32) ? word0(d) << (64 - i) | word1(d) >>> (i - 32) : word1(d) << (32 - i);
this should be:
x = (i > 32) ? ((long) word0(d)) << (64 - i) | word1(d) >>> (i - 32) : ((long) word1(d)) << (32 - i);
In the case of Double.longBitsToDouble(2), this eventually leads to:
S = pow5mult(S, s5);
trying to compute 5^2147483647, which almost literally takes forever.
It would probably be good to audit the other uses of word0 and word1.
Reproducible: Always
Steps to Reproduce:
double value = Double.longBitsToDouble(2);
ScriptRuntime.toString(value));
System.out.println("all done");
Actual Results:
Hangs
Expected Results:
Prints "all done"
Comment 1•14 years ago
|
||
I committed the change you proposed. Thanks!
https://github.com/mozilla/rhino/commit/a6c0bec9132f4b9ac286a2b062b0bd78503c27c2
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•