Skip to content

Commit c8c9cac

Browse files
authored
Merge pull request #269 from warownia1/hanson1
Fix inequality tests for negative longs. Fix #268
2 parents e9f806e + 87c72b8 commit c8c9cac

File tree

1 file changed

+31
-43
lines changed

1 file changed

+31
-43
lines changed

sources/net.sf.j2s.java.core/srcjs/js/j2sClazz.js

Lines changed: 31 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4453,66 +4453,54 @@ var fixLongAB = function(a,b) {
44534453
}
44544454

44554455

4456-
Long.$eq=function(a,b){
4456+
Long.$cmp=function(a,b, unsigned){
44574457
if (fixLongAB(a,b)) {
4458-
return a == b;
4458+
return (a < b ? -1 : a > b ? 1 : 0);
44594459
}
44604460
a = ab[0];b = ab[1];
4461-
return (a[0] == b[0] && a[1] == b[1] && a[2]== b[2]);
4462-
}
4463-
4464-
Long.$ne=function(a,b){
4465-
if (fixLongAB(a,b)) {
4466-
return a != b;
4461+
if (unsigned) {
4462+
a = toLongRLH(a);
4463+
b = toLongRLH(b);
4464+
for (let i = 2; i >= 0; i--) {
4465+
if (a[i] < b[i]) return -1;
4466+
if (a[i] > b[i]) return 1;
4467+
}
4468+
return 0;
44674469
}
4468-
a = ab[0];b = ab[1];
4469-
return (a[0] != b[0] || a[1] != b[1] || a[2]!= b[2]);
4470+
return (
4471+
a[2] < b[2] ? -1
4472+
: a[2] > b[2] ? 1
4473+
: a[2] == 0 ? 0
4474+
: a[1] < b[1] ? -a[2]
4475+
: a[1] > b[1] ? a[2]
4476+
: a[0] < b[0] ? -a[2]
4477+
: a[0] > b[0] ? a[2]
4478+
: 0
4479+
);
44704480
}
44714481

4472-
Long.$gt=function(a,b){
4473-
if (fixLongAB(a,b)) {
4474-
return a > b;
4475-
}
4476-
a = ab[0];b = ab[1];
4477-
return (a[2] > b[2] || a[2] == b[2] && (a[1] > b[1] || a[1] == b[1] && a[0] > b[0]));
4482+
Long.$eq=function(a,b){
4483+
return Long.$cmp(a, b) == 0;
44784484
}
44794485

4480-
Long.$cmp=function(a,b, unsigned){
4481-
if (fixLongAB(a,b)) {
4482-
return (a < b ? -1 : a > b ? 1 : 0);
4483-
}
4484-
a = ab[0];b = ab[1];
4485-
if (unsigned) {
4486-
a = toLongRLH(a);
4487-
b = toLongRLH(b);
4488-
}
4489-
return (a[2] < b[2] ? -1 : a[2] > b[2] ? 1
4490-
: a[2] == 0 ? 0 : a[1] < b[1] ? -1 : a[1] > b[1] ? 1
4491-
: a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0);
4486+
Long.$ne=function(a,b){
4487+
return Long.$cmp(a, b) != 0;
44924488
}
44934489

44944490
Long.$ge=function(a,b){
4495-
if (fixLongAB(a,b)) {
4496-
return a >= b;
4497-
}
4498-
a = ab[0];b = ab[1];
4499-
return (a[2] > b[2] || a[2] == b[2] && (a[1] > b[1] || a[1] == b[1] && a[0] >= b[0]));
4491+
return Long.$cmp(a, b) >= 0;
4492+
}
4493+
4494+
Long.$gt=function(a,b){
4495+
return Long.$cmp(a, b) > 0;
45004496
}
45014497

45024498
Long.$le=function(a,b){
4503-
if (fixLongAB(a,b)) {
4504-
return a <= b;
4505-
}
4506-
a = ab[0];b = ab[1];
4507-
return (a[2] < b[2] || a[2] == b[2] && (a[1] < b[1] || a[1] == b[1] && a[0] <= b[0]));
4499+
return Long.$cmp(a, b) <= 0;
45084500
}
45094501

45104502
Long.$lt=function(a,b){
4511-
if (fixLongAB(a,b)) {
4512-
return a < b;
4513-
}
4514-
a = ab[0];b = ab[1];
4515-
return (a[2] < b[2] || a[2] == b[2] && (a[1] < b[1] || a[1] == b[1] && a[0] < b[0]));
4503+
return Long.$cmp(a, b) < 0;
45164504
}
45174505

45184506

0 commit comments

Comments
 (0)