@@ -88,6 +88,7 @@ <h2 class="no-num no-toc" id=abstract>Abstract</h2>
88
88
</ li > < li > added uncoerced < em > CallExpression</ em > nodes to < em > Expression</ em > for float coercions
89
89
</ li > < li > added float coercions to initializers, return type annotations, and legal function calls
90
90
</ li > < li > added restriction preventing float coercions of FFI calls
91
+ </ li > < li > added < a href =#float-1 > < code > float</ code > </ a > support for operators and < code > Math</ code > functions
91
92
</ li > </ ul >
92
93
</ li > < li > < strong > 12 December 2013</ strong >
93
94
< ul >
@@ -1464,7 +1465,7 @@ <h4 id=defaultclause><span class=secno>6.6.2 </span>DefaultClause</h4>
1464
1465
</ div >
1465
1466
1466
1467
< p > validates as type < a href =#signed-0 > < code > signed</ code > </ a > if < em > arg</ em > validates as
1467
- a subtype of < a href =#double-1 > < code > double</ code > </ a > .
1468
+ a subtype of either < a href =#double-1 > < code > double</ code > </ a > or < a href = #float-2 > < code > float? </ code > </ a > .
1468
1469
1469
1470
</ p > < h4 id =multiplicativeexpression > < span class =secno > 6.7.8 </ span > MultiplicativeExpression</ h4 >
1470
1471
@@ -1865,14 +1866,16 @@ <h3 id=unary-operators><span class=secno>8.1 </span>Unary Operators</h3>
1865
1866
< td >
1866
1867
(< a href =#signed-0 > < code > signed</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1867
1868
(< a href =#unsigned-0 > < code > unsigned</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1868
- (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a >
1869
+ (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1870
+ (< a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a >
1869
1871
</ td >
1870
1872
</ tr >
1871
1873
< tr >
1872
1874
< td > < code > -</ code > </ td >
1873
1875
< td >
1874
1876
(< a href =#int-0 > < code > int</ code > </ a > ) → < a href =#intish-0 > < code > intish</ code > </ a > ∧< br >
1875
- (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a >
1877
+ (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1878
+ (< a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#floatish-0 > < code > floatish</ code > </ a >
1876
1879
</ td >
1877
1880
</ tr >
1878
1881
< tr >
@@ -1887,8 +1890,9 @@ <h3 id=unary-operators><span class=secno>8.1 </span>Unary Operators</h3>
1887
1890
</ table >
1888
1891
1889
1892
< p > Note that the special combined operator < code > ~~</ code > may be used
1890
- as a coercion from < a href =#double-1 > < code > double</ code > </ a > to < a href =#signed-0 > < code > signed</ code > </ a > ;
1891
- see < a href =#unaryexpression > Unary Expressions</ a > .
1893
+ as a coercion from < a href =#double-1 > < code > double</ code > </ a > or < a href =#float-2 > < code > float?</ code > </ a >
1894
+ to < a href =#signed-0 > < code > signed</ code > </ a > ; see < a href =#unaryexpression > Unary
1895
+ Expressions</ a > .
1892
1896
1893
1897
</ p > < h3 id =binary-operators > < span class =secno > 8.2 </ span > Binary Operators</ h3 >
1894
1898
@@ -1900,22 +1904,32 @@ <h3 id=unary-operators><span class=secno>8.1 </span>Unary Operators</h3>
1900
1904
</ tr >
1901
1905
< tr >
1902
1906
< td > < code > +</ code > </ td >
1903
- < td > (< a href =#double-1 > < code > double</ code > </ a > , < a href =#double-1 > < code > double</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > </ td >
1907
+ < td >
1908
+ (< a href =#double-1 > < code > double</ code > </ a > , < a href =#double-1 > < code > double</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1909
+ (< a href =#float-2 > < code > float?</ code > </ a > , < a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#floatish-0 > < code > floatish</ code > </ a >
1910
+ </ td >
1904
1911
</ tr >
1905
1912
< tr >
1906
1913
< td > < code > -</ code > </ td >
1907
- < td > (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > </ td >
1914
+ < td >
1915
+ (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1916
+ (< a href =#float-2 > < code > float?</ code > </ a > , < a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#floatish-0 > < code > floatish</ code > </ a >
1917
+ </ td >
1908
1918
</ tr >
1909
1919
< tr >
1910
1920
< td > < code > *</ code > </ td >
1911
- < td > (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > </ td >
1921
+ < td >
1922
+ (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1923
+ (< a href =#float-2 > < code > float?</ code > </ a > , < a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#floatish-0 > < code > floatish</ code > </ a >
1924
+ </ td >
1912
1925
</ tr >
1913
1926
< tr >
1914
1927
< td > < code > /</ code > </ td >
1915
1928
< td >
1916
1929
(< a href =#signed-0 > < code > signed</ code > </ a > , < a href =#signed-0 > < code > signed</ code > </ a > ) → < a href =#intish-0 > < code > intish</ code > </ a > ∧< br >
1917
1930
(< a href =#unsigned-0 > < code > unsigned</ code > </ a > , < a href =#unsigned-0 > < code > unsigned</ code > </ a > ) → < a href =#intish-0 > < code > intish</ code > </ a > ∧< br >
1918
- (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a >
1931
+ (< a href =#double-2 > < code > double?</ code > </ a > , < a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1932
+ (< a href =#float-2 > < code > float?</ code > </ a > , < a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#floatish-0 > < code > floatish</ code > </ a >
1919
1933
</ td >
1920
1934
</ tr >
1921
1935
< tr >
@@ -1939,7 +1953,8 @@ <h3 id=unary-operators><span class=secno>8.1 </span>Unary Operators</h3>
1939
1953
< td >
1940
1954
(< a href =#signed-0 > < code > signed</ code > </ a > , < a href =#signed-0 > < code > signed</ code > </ a > ) → < a href =#int-0 > < code > int</ code > </ a > ∧< br >
1941
1955
(< a href =#unsigned-0 > < code > unsigned</ code > </ a > , < a href =#unsigned-0 > < code > unsigned</ code > </ a > ) → < a href =#int-0 > < code > int</ code > </ a > ∧< br >
1942
- (< a href =#double-1 > < code > double</ code > </ a > , < a href =#double-1 > < code > double</ code > </ a > ) → < a href =#int-0 > < code > int</ code > </ a >
1956
+ (< a href =#double-1 > < code > double</ code > </ a > , < a href =#double-1 > < code > double</ code > </ a > ) → < a href =#int-0 > < code > int</ code > </ a > ∧< br >
1957
+ (< a href =#float-1 > < code > float</ code > </ a > , < a href =#float-1 > < code > float</ code > </ a > ) → < a href =#int-0 > < code > int</ code > </ a >
1943
1958
</ td >
1944
1959
</ tr >
1945
1960
</ tbody >
@@ -1968,19 +1983,28 @@ <h2 id=standard-library><span class=secno>9 </span>Standard Library</h2>
1968
1983
< code > Math.cos</ code > < br >
1969
1984
< code > Math.sin</ code > < br >
1970
1985
< code > Math.tan</ code > < br >
1986
+ < code > Math.exp</ code > < br >
1987
+ < code > Math.log</ code >
1988
+ </ td >
1989
+ < td > (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > </ td >
1990
+ </ tr >
1991
+ < tr >
1992
+ < td >
1971
1993
< code > Math.ceil</ code > < br >
1972
1994
< code > Math.floor</ code > < br >
1973
- < code > Math.exp</ code > < br >
1974
- < code > Math.log</ code > < br >
1975
1995
< code > Math.sqrt</ code >
1976
1996
</ td >
1977
- < td > (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > </ td >
1997
+ < td >
1998
+ (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
1999
+ (< a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#float-1 > < code > float</ code > </ a >
2000
+ </ td >
1978
2001
</ tr >
1979
2002
< tr >
1980
2003
< td > < code > Math.abs</ code > </ td >
1981
2004
< td >
1982
2005
(< a href =#signed-0 > < code > signed</ code > </ a > ) → < a href =#signed-0 > < code > signed</ code > </ a > ∧< br >
1983
- (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a >
2006
+ (< a href =#double-2 > < code > double?</ code > </ a > ) → < a href =#double-1 > < code > double</ code > </ a > ∧< br >
2007
+ (< a href =#float-2 > < code > float?</ code > </ a > ) → < a href =#float-1 > < code > float</ code > </ a >
1984
2008
</ td >
1985
2009
</ tr >
1986
2010
< tr >
0 commit comments