Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Side by Side Diff: compiler/lib/implementation/number.js

Issue 9702034: Removes dartc reliance on its own libraries, now can be targeted at any implementation's libraries (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: junit tests fixed Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « compiler/lib/implementation/number.dart ('k') | compiler/lib/implementation/object.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5
6 function native_NumberImplementation_BIT_OR(other) {
7 native__NumberJsUtil__throwIllegalArgumentException(other);
8 }
9
10 function native_NumberImplementation_BIT_XOR(other) {
11 native__NumberJsUtil__throwIllegalArgumentException(other);
12 }
13
14 function native_NumberImplementation_BIT_AND(other) {
15 native__NumberJsUtil__throwIllegalArgumentException(other);
16 }
17
18 function native_NumberImplementation_SHL(other) {
19 native__NumberJsUtil__throwIllegalArgumentException(other);
20 }
21
22 function native_NumberImplementation_SAR(other) {
23 native__NumberJsUtil__throwIllegalArgumentException(other);
24 }
25
26 function native_NumberImplementation_BIT_NOT() {
27 throw Error('UNREACHABLE');
28 }
29
30 function native_NumberImplementation_ADD(other) {
31 native__NumberJsUtil__throwIllegalArgumentException(other);
32 }
33
34 function native_NumberImplementation_SUB(other) {
35 native__NumberJsUtil__throwIllegalArgumentException(other);
36 }
37
38 function native_NumberImplementation_MUL(other) {
39 native__NumberJsUtil__throwIllegalArgumentException(other);
40 }
41
42 function native_NumberImplementation_DIV(other) {
43 native__NumberJsUtil__throwIllegalArgumentException(other);
44 }
45
46 function native_NumberImplementation_TRUNC(other) {
47 native__NumberJsUtil__throwIllegalArgumentException(other);
48 }
49
50 function native_NumberImplementation_MOD(other) {
51 native__NumberJsUtil__throwIllegalArgumentException(other);
52 }
53
54 function native_NumberImplementation_negate() {
55 throw Error('UNREACHABLE');
56 }
57
58 function native_NumberImplementation_EQ(other) {
59 throw Error('UNREACHABLE');
60 }
61
62 function native_NumberImplementation_LT(other) {
63 native__NumberJsUtil__throwIllegalArgumentException(other);
64 }
65
66 function native_NumberImplementation_GT(other) {
67 native__NumberJsUtil__throwIllegalArgumentException(other);
68 }
69
70 function native_NumberImplementation_LTE(other) {
71 native__NumberJsUtil__throwIllegalArgumentException(other);
72 }
73
74 function native_NumberImplementation_GTE(other) {
75 native__NumberJsUtil__throwIllegalArgumentException(other);
76 }
77
78
79 function number$euclideanModulo(a, b) {
80 var result = a % b;
81 if (result == 0) {
82 return 0; // Make sure we don't return -0.0.
83 } else if (result < 0) {
84 if (b < 0) {
85 return result - b;
86 } else {
87 return result + b;
88 }
89 }
90 return result;
91 }
92
93 function native_NumberImplementation_remainder(other) {
94 "use strict";
95 if (typeof other != 'number') {
96 native__NumberJsUtil__throwIllegalArgumentException(other);
97 }
98 return this % other;
99 }
100
101 function native_NumberImplementation_abs() {
102 "use strict";
103 return Math.abs(this);
104 }
105
106 function native_NumberImplementation_round() {
107 "use strict";
108 return Math.round(this);
109 }
110
111 function native_NumberImplementation_floor() {
112 "use strict";
113 return Math.floor(this);
114 }
115
116 function native_NumberImplementation_ceil() {
117 "use strict";
118 return Math.ceil(this);
119 }
120
121 function native_NumberImplementation_truncate() {
122 "use strict";
123 return (this < 0) ? Math.ceil(this) : Math.floor(this);
124 }
125
126 function native_NumberImplementation_isNegative() {
127 "use strict";
128 // TODO(floitsch): is there a faster way to detect -0?
129 if (this == 0) return (1 / this) < 0;
130 return this < 0;
131 }
132
133 function native_NumberImplementation_isEven() {
134 "use strict";
135 return ((this & 1) == 0);
136 }
137
138 function native_NumberImplementation_isOdd() {
139 "use strict";
140 return ((this & 1) == 1);
141 }
142
143 function native_NumberImplementation_isNaN() {
144 "use strict";
145 return isNaN(this);
146 }
147
148 function native_NumberImplementation_isInfinite() {
149 "use strict";
150 return (this == Infinity) || (this == -Infinity);
151 }
152
153 function native_NumberImplementation_toDouble() {
154 "use strict";
155 return +this;
156 }
157
158 function native_NumberImplementation_toString() {
159 "use strict";
160 var primitiveValue = +this;
161 // TODO(floitsch): is there a faster way to detect -0?
162 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
163 return "-0.0";
164 }
165 return "" + primitiveValue;
166 }
167
168 function native_NumberImplementation_toStringAsFixed(fractionDigits) {
169 var primitiveValue = +this;
170 // TODO(floitsch): is there a faster way to detect -0?
171 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
172 return "-" + this.toFixed(fractionDigits);
173 }
174 return this.toFixed(fractionDigits);
175 }
176
177 function native_NumberImplementation_toStringAsPrecision(precision) {
178 var primitiveValue = +this;
179 // TODO(floitsch): is there a faster way to detect -0?
180 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
181 return "-" + this.toPrecision(precision);
182 }
183 return this.toPrecision(precision);
184 }
185
186 function native_NumberImplementation_toStringAsExponential(fractionDigits) {
187 var primitiveValue = +this;
188 // TODO(floitsch): is there a faster way to detect -0?
189 if (primitiveValue == 0 && (1 / primitiveValue) < 0) {
190 return "-" + this.toExponential(fractionDigits);
191 }
192 return this.toExponential(fractionDigits);
193 }
194
195 function native_NumberImplementation_toRadixString(radix) {
196 return this.toString(radix);
197 }
198
199 function native_NumberImplementation_hashCode() {
200 "use strict";
201 return this & 0xFFFFFFF;
202 }
OLDNEW
« no previous file with comments | « compiler/lib/implementation/number.dart ('k') | compiler/lib/implementation/object.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698