mgusmano / sharpkit

Automatically exported from code.google.com/p/sharpkit
0 stars 0 forks source link

CompareTo on primatives #278

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Is it possible to support CompareTo() on doubles and ints?

Using C# such as

  new jQuery(HtmlContext.document.body).append("Hello world<br/>");

  var first = 3.223;
  var second = 5.233;

  var res = first.CompareTo(second);

  new jQuery(HtmlContext.document.body).append("Result: " + res);

generates an invalid call.

  var first = 3.223;
  var second = 5.233;
  var res = first.CompareTo$$Double(second);

This then fails at runtime. Substituting in prefix comparison functions is an 
option but it would be nice to have support for the standard functions in CLR 
mode. Generating prefix form JavaScript would be fine.

/*Generated by SharpKit 5 v5.00.5000*/

Original issue reported on code.google.com by co...@gravill.com on 7 Feb 2013 at 6:17

GoogleCodeExporter commented 8 years ago
Why not simply implement:
Number.prototype.CompareTo$$Double = function(second){
}

?

Original comment by DanelK...@gmail.com on 12 Jan 2014 at 10:40

GoogleCodeExporter commented 8 years ago
That's just what I did. :-)

The issue can be closed now.

Original comment by co...@gravill.com on 13 Jan 2014 at 4:11

GoogleCodeExporter commented 8 years ago
Cool, does this code exist in JsClr?

Original comment by DanelK...@gmail.com on 13 Jan 2014 at 6:48

GoogleCodeExporter commented 8 years ago
Yes, you applied the patch. The below test cases work which is enough to be 
useful:

double x = 7.445;
double y = 7.332;
new jQuery(HtmlContext.document.body).append("x.CompareTo(y) = " + 
x.CompareTo(y) + "<br/>");
new jQuery(HtmlContext.document.body).append("y.CompareTo(x) = " + 
y.CompareTo(x) + "<br/>");
new jQuery(HtmlContext.document.body).append("x.CompareTo(x) = " + 
x.CompareTo(x) + "<br/>");
int i = 4;
int j = 5;
new jQuery(HtmlContext.document.body).append("i.CompareTo(j) = " + 
i.CompareTo(j) + "<br/>");
new jQuery(HtmlContext.document.body).append("j.CompareTo(i) = " + 
j.CompareTo(i) + "<br/>");
new jQuery(HtmlContext.document.body).append("i.CompareTo(i) = " + 
i.CompareTo(i) + "<br/>");

x.CompareTo(y) = 1
y.CompareTo(x) = -1
x.CompareTo(x) = 0
i.CompareTo(j) = -1
j.CompareTo(i) = 1
i.CompareTo(i) = 0

I didn't check it with NaN etc

Original comment by co...@gravill.com on 14 Jan 2014 at 10:13

GoogleCodeExporter commented 8 years ago
Great, closing, thanks!

Original comment by DanelK...@gmail.com on 16 Jan 2014 at 7:16