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

Side by Side Diff: lib/runtime/dart/math.js

Issue 1138793002: Tag closures with their types (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Rebase Created 5 years, 7 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
OLDNEW
1 var math = dart.defineLibrary(math, {}); 1 var math = dart.defineLibrary(math, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 var _js_helper = dart.lazyImport(_js_helper); 3 var _js_helper = dart.lazyImport(_js_helper);
4 (function(exports, core, _js_helper) { 4 (function(exports, core, _js_helper) {
5 'use strict'; 5 'use strict';
6 class _JenkinsSmiHash extends core.Object { 6 class _JenkinsSmiHash extends core.Object {
7 static combine(hash, value) { 7 static combine(hash, value) {
8 hash = 536870911 & dart.notNull(hash) + dart.notNull(value); 8 hash = 536870911 & dart.notNull(hash) + dart.notNull(value);
9 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10); 9 hash = 536870911 & dart.notNull(hash) + ((524287 & dart.notNull(hash)) << 10);
10 return dart.notNull(hash) ^ dart.notNull(hash) >> 6; 10 return dart.notNull(hash) ^ dart.notNull(hash) >> 6;
11 } 11 }
12 static finish(hash) { 12 static finish(hash) {
13 hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) < < 3); 13 hash = 536870911 & dart.notNull(hash) + ((67108863 & dart.notNull(hash)) < < 3);
14 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 11; 14 hash = dart.notNull(hash) ^ dart.notNull(hash) >> 11;
15 return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 1 5); 15 return 536870911 & dart.notNull(hash) + ((16383 & dart.notNull(hash)) << 1 5);
16 } 16 }
17 static hash2(a, b) { 17 static hash2(a, b) {
18 return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.comb ine(0, dart.as(a, core.int)), dart.as(b, core.int))); 18 return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.comb ine(0, dart.as(a, core.int)), dart.as(b, core.int)));
19 } 19 }
20 static hash4(a, b, c, d) { 20 static hash4(a, b, c, d) {
21 return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.comb ine(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(0, dart.as(a, core.int)), da rt.as(b, core.int)), dart.as(c, core.int)), dart.as(d, core.int))); 21 return _JenkinsSmiHash.finish(_JenkinsSmiHash.combine(_JenkinsSmiHash.comb ine(_JenkinsSmiHash.combine(_JenkinsSmiHash.combine(0, dart.as(a, core.int)), da rt.as(b, core.int)), dart.as(c, core.int)), dart.as(d, core.int)));
22 } 22 }
23 } 23 }
24 dart.setSignature(_JenkinsSmiHash, {
25 statics: () => ({
26 combine: dart.functionType(core.int, [core.int, core.int]),
27 finish: dart.functionType(core.int, [core.int]),
28 hash2: dart.functionType(core.int, [dart.dynamic, dart.dynamic]),
29 hash4: dart.functionType(core.int, [dart.dynamic, dart.dynamic, dart.dynam ic, dart.dynamic])
30 }),
31 names: ['combine', 'finish', 'hash2', 'hash4']
32 });
24 let Point$ = dart.generic(function(T) { 33 let Point$ = dart.generic(function(T) {
25 class Point extends core.Object { 34 class Point extends core.Object {
26 Point(x, y) { 35 Point(x, y) {
27 this.x = x; 36 this.x = x;
28 this.y = y; 37 this.y = y;
29 } 38 }
30 toString() { 39 toString() {
31 return `Point(${this.x}, ${this.y})`; 40 return `Point(${this.x}, ${this.y})`;
32 } 41 }
33 ['=='](other) { 42 ['=='](other) {
(...skipping 24 matching lines...) Expand all
58 let dy = this.y['-'](other.y); 67 let dy = this.y['-'](other.y);
59 return sqrt(dart.notNull(dx) * dart.notNull(dx) + dart.notNull(dy) * dar t.notNull(dy)); 68 return sqrt(dart.notNull(dx) * dart.notNull(dx) + dart.notNull(dy) * dar t.notNull(dy));
60 } 69 }
61 squaredDistanceTo(other) { 70 squaredDistanceTo(other) {
62 dart.as(other, Point$(T)); 71 dart.as(other, Point$(T));
63 let dx = this.x['-'](other.x); 72 let dx = this.x['-'](other.x);
64 let dy = this.y['-'](other.y); 73 let dy = this.y['-'](other.y);
65 return dart.as(dart.notNull(dx) * dart.notNull(dx) + dart.notNull(dy) * dart.notNull(dy), T); 74 return dart.as(dart.notNull(dx) * dart.notNull(dx) + dart.notNull(dy) * dart.notNull(dy), T);
66 } 75 }
67 } 76 }
77 dart.setSignature(Point, {
78 methods: () => ({
79 toString: dart.functionType(core.String, []),
80 '==': dart.functionType(core.bool, [dart.dynamic]),
81 '+': dart.functionType(Point$(T), [Point$(T)]),
82 '-': dart.functionType(Point$(T), [Point$(T)]),
83 '*': dart.functionType(Point$(T), [core.num]),
84 distanceTo: dart.functionType(core.double, [Point$(T)]),
85 squaredDistanceTo: dart.functionType(T, [Point$(T)])
86 })
87 });
68 return Point; 88 return Point;
69 }); 89 });
70 let Point = Point$(); 90 let Point = Point$();
71 class Random extends core.Object { 91 class Random extends core.Object {
72 Random(seed) { 92 Random(seed) {
73 if (seed === void 0) 93 if (seed === void 0)
74 seed = null; 94 seed = null;
75 return seed == null ? dart.const(new _JSRandom()) : new _Random(seed); 95 return seed == null ? dart.const(new _JSRandom()) : new _Random(seed);
76 } 96 }
77 } 97 }
98 dart.setSignature(Random, {});
78 let _RectangleBase$ = dart.generic(function(T) { 99 let _RectangleBase$ = dart.generic(function(T) {
79 class _RectangleBase extends core.Object { 100 class _RectangleBase extends core.Object {
80 _RectangleBase() { 101 _RectangleBase() {
81 } 102 }
82 get right() { 103 get right() {
83 return dart.as(this.left['+'](this.width), T); 104 return dart.as(this.left['+'](this.width), T);
84 } 105 }
85 get bottom() { 106 get bottom() {
86 return dart.as(this.top['+'](this.height), T); 107 return dart.as(this.top['+'](this.height), T);
87 } 108 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 get topRight() { 153 get topRight() {
133 return new (Point$(T))(dart.as(this.left['+'](this.width), T), this.top) ; 154 return new (Point$(T))(dart.as(this.left['+'](this.width), T), this.top) ;
134 } 155 }
135 get bottomRight() { 156 get bottomRight() {
136 return new (Point$(T))(dart.as(this.left['+'](this.width), T), dart.as(t his.top['+'](this.height), T)); 157 return new (Point$(T))(dart.as(this.left['+'](this.width), T), dart.as(t his.top['+'](this.height), T));
137 } 158 }
138 get bottomLeft() { 159 get bottomLeft() {
139 return new (Point$(T))(this.left, dart.as(this.top['+'](this.height), T) ); 160 return new (Point$(T))(this.left, dart.as(this.top['+'](this.height), T) );
140 } 161 }
141 } 162 }
163 dart.setSignature(_RectangleBase, {
164 methods: () => ({
165 toString: dart.functionType(core.String, []),
166 '==': dart.functionType(core.bool, [dart.dynamic]),
167 intersection: dart.functionType(Rectangle$(T), [Rectangle$(T)]),
168 intersects: dart.functionType(core.bool, [Rectangle$(core.num)]),
169 boundingBox: dart.functionType(Rectangle$(T), [Rectangle$(T)]),
170 containsRectangle: dart.functionType(core.bool, [Rectangle$(core.num)]),
171 containsPoint: dart.functionType(core.bool, [Point$(core.num)])
172 })
173 });
142 return _RectangleBase; 174 return _RectangleBase;
143 }); 175 });
144 let _RectangleBase = _RectangleBase$(); 176 let _RectangleBase = _RectangleBase$();
145 let Rectangle$ = dart.generic(function(T) { 177 let Rectangle$ = dart.generic(function(T) {
146 class Rectangle extends _RectangleBase$(T) { 178 class Rectangle extends _RectangleBase$(T) {
147 Rectangle(left, top, width, height) { 179 Rectangle(left, top, width, height) {
148 this.left = left; 180 this.left = left;
149 this.top = top; 181 this.top = top;
150 this.width = dart.as(width['<'](0) ? dart.notNull(width['unary-']()) * 0 : width, T); 182 this.width = dart.as(width['<'](0) ? dart.notNull(width['unary-']()) * 0 : width, T);
151 this.height = dart.as(height['<'](0) ? dart.notNull(height['unary-']()) * 0 : height, T); 183 this.height = dart.as(height['<'](0) ? dart.notNull(height['unary-']()) * 0 : height, T);
152 super._RectangleBase(); 184 super._RectangleBase();
153 } 185 }
154 fromPoints(a, b) { 186 fromPoints(a, b) {
155 let left = dart.as(min(a.x, b.x), T); 187 let left = dart.as(min(a.x, b.x), T);
156 let width = dart.as(max(a.x, b.x)['-'](left), T); 188 let width = dart.as(max(a.x, b.x)['-'](left), T);
157 let top = dart.as(min(a.y, b.y), T); 189 let top = dart.as(min(a.y, b.y), T);
158 let height = dart.as(max(a.y, b.y)['-'](top), T); 190 let height = dart.as(max(a.y, b.y)['-'](top), T);
159 return new (Rectangle$(T))(left, top, width, height); 191 return new (Rectangle$(T))(left, top, width, height);
160 } 192 }
161 } 193 }
162 dart.defineNamedConstructor(Rectangle, 'fromPoints'); 194 dart.defineNamedConstructor(Rectangle, 'fromPoints');
195 dart.setSignature(Rectangle, {});
163 return Rectangle; 196 return Rectangle;
164 }); 197 });
165 let Rectangle = Rectangle$(); 198 let Rectangle = Rectangle$();
166 let _width = Symbol('_width'); 199 let _width = Symbol('_width');
167 let _height = Symbol('_height'); 200 let _height = Symbol('_height');
168 let MutableRectangle$ = dart.generic(function(T) { 201 let MutableRectangle$ = dart.generic(function(T) {
169 class MutableRectangle extends _RectangleBase$(T) { 202 class MutableRectangle extends _RectangleBase$(T) {
170 MutableRectangle(left, top, width, height) { 203 MutableRectangle(left, top, width, height) {
171 this.left = left; 204 this.left = left;
172 this.top = top; 205 this.top = top;
(...skipping 22 matching lines...) Expand all
195 } 228 }
196 set height(height) { 229 set height(height) {
197 dart.as(height, T); 230 dart.as(height, T);
198 if (height['<'](0)) 231 if (height['<'](0))
199 height = dart.as(_clampToZero(height), T); 232 height = dart.as(_clampToZero(height), T);
200 this[_height] = height; 233 this[_height] = height;
201 } 234 }
202 } 235 }
203 MutableRectangle[dart.implements] = () => [Rectangle$(T)]; 236 MutableRectangle[dart.implements] = () => [Rectangle$(T)];
204 dart.defineNamedConstructor(MutableRectangle, 'fromPoints'); 237 dart.defineNamedConstructor(MutableRectangle, 'fromPoints');
238 dart.setSignature(MutableRectangle, {});
205 return MutableRectangle; 239 return MutableRectangle;
206 }); 240 });
207 let MutableRectangle = MutableRectangle$(); 241 let MutableRectangle = MutableRectangle$();
208 // Function _clampToZero: (num) → num
209 function _clampToZero(value) { 242 function _clampToZero(value) {
210 dart.assert(dart.notNull(value) < 0); 243 dart.assert(dart.notNull(value) < 0);
211 return -dart.notNull(value) * 0; 244 return -dart.notNull(value) * 0;
212 } 245 }
246 dart.fn(_clampToZero, core.num, [core.num]);
213 let E = 2.718281828459045; 247 let E = 2.718281828459045;
214 let LN10 = 2.302585092994046; 248 let LN10 = 2.302585092994046;
215 let LN2 = 0.6931471805599453; 249 let LN2 = 0.6931471805599453;
216 let LOG2E = 1.4426950408889634; 250 let LOG2E = 1.4426950408889634;
217 let LOG10E = 0.4342944819032518; 251 let LOG10E = 0.4342944819032518;
218 let PI = 3.141592653589793; 252 let PI = 3.141592653589793;
219 let SQRT1_2 = 0.7071067811865476; 253 let SQRT1_2 = 0.7071067811865476;
220 let SQRT2 = 1.4142135623730951; 254 let SQRT2 = 1.4142135623730951;
221 // Function min: (num, num) → num
222 function min(a, b) { 255 function min(a, b) {
223 if (!dart.is(a, core.num)) 256 if (!dart.is(a, core.num))
224 throw new core.ArgumentError(a); 257 throw new core.ArgumentError(a);
225 if (!dart.is(b, core.num)) 258 if (!dart.is(b, core.num))
226 throw new core.ArgumentError(b); 259 throw new core.ArgumentError(b);
227 if (dart.notNull(a) > dart.notNull(b)) 260 if (dart.notNull(a) > dart.notNull(b))
228 return b; 261 return b;
229 if (dart.notNull(a) < dart.notNull(b)) 262 if (dart.notNull(a) < dart.notNull(b))
230 return a; 263 return a;
231 if (typeof b == 'number') { 264 if (typeof b == 'number') {
232 if (typeof a == 'number') { 265 if (typeof a == 'number') {
233 if (a == 0.0) { 266 if (a == 0.0) {
234 return (dart.notNull(a) + dart.notNull(b)) * dart.notNull(a) * dart.no tNull(b); 267 return (dart.notNull(a) + dart.notNull(b)) * dart.notNull(a) * dart.no tNull(b);
235 } 268 }
236 } 269 }
237 if (a == 0 && dart.notNull(b.isNegative) || dart.notNull(b.isNaN)) 270 if (a == 0 && dart.notNull(b.isNegative) || dart.notNull(b.isNaN))
238 return b; 271 return b;
239 return a; 272 return a;
240 } 273 }
241 return a; 274 return a;
242 } 275 }
243 // Function max: (num, num) → num 276 dart.fn(min, core.num, [core.num, core.num]);
244 function max(a, b) { 277 function max(a, b) {
245 if (!dart.is(a, core.num)) 278 if (!dart.is(a, core.num))
246 throw new core.ArgumentError(a); 279 throw new core.ArgumentError(a);
247 if (!dart.is(b, core.num)) 280 if (!dart.is(b, core.num))
248 throw new core.ArgumentError(b); 281 throw new core.ArgumentError(b);
249 if (dart.notNull(a) > dart.notNull(b)) 282 if (dart.notNull(a) > dart.notNull(b))
250 return a; 283 return a;
251 if (dart.notNull(a) < dart.notNull(b)) 284 if (dart.notNull(a) < dart.notNull(b))
252 return b; 285 return b;
253 if (typeof b == 'number') { 286 if (typeof b == 'number') {
254 if (typeof a == 'number') { 287 if (typeof a == 'number') {
255 if (a == 0.0) { 288 if (a == 0.0) {
256 return dart.notNull(a) + dart.notNull(b); 289 return dart.notNull(a) + dart.notNull(b);
257 } 290 }
258 } 291 }
259 if (b.isNaN) 292 if (b.isNaN)
260 return b; 293 return b;
261 return a; 294 return a;
262 } 295 }
263 if (b == 0 && dart.notNull(a.isNegative)) 296 if (b == 0 && dart.notNull(a.isNegative))
264 return b; 297 return b;
265 return a; 298 return a;
266 } 299 }
267 // Function atan2: (num, num) → double 300 dart.fn(max, core.num, [core.num, core.num]);
268 function atan2(a, b) { 301 function atan2(a, b) {
269 return Math.atan2(_js_helper.checkNum(a), _js_helper.checkNum(b)); 302 return Math.atan2(_js_helper.checkNum(a), _js_helper.checkNum(b));
270 } 303 }
271 // Function pow: (num, num) → num 304 dart.fn(atan2, core.double, [core.num, core.num]);
272 function pow(x, exponent) { 305 function pow(x, exponent) {
273 _js_helper.checkNum(x); 306 _js_helper.checkNum(x);
274 _js_helper.checkNum(exponent); 307 _js_helper.checkNum(exponent);
275 return Math.pow(x, exponent); 308 return Math.pow(x, exponent);
276 } 309 }
277 // Function sin: (num) → double 310 dart.fn(pow, core.num, [core.num, core.num]);
278 function sin(x) { 311 function sin(x) {
279 return Math.sin(_js_helper.checkNum(x)); 312 return Math.sin(_js_helper.checkNum(x));
280 } 313 }
281 // Function cos: (num) → double 314 dart.fn(sin, core.double, [core.num]);
282 function cos(x) { 315 function cos(x) {
283 return Math.cos(_js_helper.checkNum(x)); 316 return Math.cos(_js_helper.checkNum(x));
284 } 317 }
285 // Function tan: (num) → double 318 dart.fn(cos, core.double, [core.num]);
286 function tan(x) { 319 function tan(x) {
287 return Math.tan(_js_helper.checkNum(x)); 320 return Math.tan(_js_helper.checkNum(x));
288 } 321 }
289 // Function acos: (num) → double 322 dart.fn(tan, core.double, [core.num]);
290 function acos(x) { 323 function acos(x) {
291 return Math.acos(_js_helper.checkNum(x)); 324 return Math.acos(_js_helper.checkNum(x));
292 } 325 }
293 // Function asin: (num) → double 326 dart.fn(acos, core.double, [core.num]);
294 function asin(x) { 327 function asin(x) {
295 return Math.asin(_js_helper.checkNum(x)); 328 return Math.asin(_js_helper.checkNum(x));
296 } 329 }
297 // Function atan: (num) → double 330 dart.fn(asin, core.double, [core.num]);
298 function atan(x) { 331 function atan(x) {
299 return Math.atan(_js_helper.checkNum(x)); 332 return Math.atan(_js_helper.checkNum(x));
300 } 333 }
301 // Function sqrt: (num) → double 334 dart.fn(atan, core.double, [core.num]);
302 function sqrt(x) { 335 function sqrt(x) {
303 return Math.sqrt(_js_helper.checkNum(x)); 336 return Math.sqrt(_js_helper.checkNum(x));
304 } 337 }
305 // Function exp: (num) → double 338 dart.fn(sqrt, core.double, [core.num]);
306 function exp(x) { 339 function exp(x) {
307 return Math.exp(_js_helper.checkNum(x)); 340 return Math.exp(_js_helper.checkNum(x));
308 } 341 }
309 // Function log: (num) → double 342 dart.fn(exp, core.double, [core.num]);
310 function log(x) { 343 function log(x) {
311 return Math.log(_js_helper.checkNum(x)); 344 return Math.log(_js_helper.checkNum(x));
312 } 345 }
346 dart.fn(log, core.double, [core.num]);
313 let _POW2_32 = 4294967296; 347 let _POW2_32 = 4294967296;
314 class _JSRandom extends core.Object { 348 class _JSRandom extends core.Object {
315 _JSRandom() { 349 _JSRandom() {
316 } 350 }
317 nextInt(max) { 351 nextInt(max) {
318 if (dart.notNull(max) <= 0 || dart.notNull(max) > dart.notNull(_POW2_32)) { 352 if (dart.notNull(max) <= 0 || dart.notNull(max) > dart.notNull(_POW2_32)) {
319 throw new core.RangeError(`max must be in range 0 < max ≤ 2^32, was ${ma x}`); 353 throw new core.RangeError(`max must be in range 0 < max ≤ 2^32, was ${ma x}`);
320 } 354 }
321 return Math.random() * max >>> 0; 355 return Math.random() * max >>> 0;
322 } 356 }
323 nextDouble() { 357 nextDouble() {
324 return Math.random(); 358 return Math.random();
325 } 359 }
326 nextBool() { 360 nextBool() {
327 return Math.random() < 0.5; 361 return Math.random() < 0.5;
328 } 362 }
329 } 363 }
330 _JSRandom[dart.implements] = () => [Random]; 364 _JSRandom[dart.implements] = () => [Random];
365 dart.setSignature(_JSRandom, {
366 methods: () => ({
367 nextInt: dart.functionType(core.int, [core.int]),
368 nextDouble: dart.functionType(core.double, []),
369 nextBool: dart.functionType(core.bool, [])
370 })
371 });
331 let _lo = Symbol('_lo'); 372 let _lo = Symbol('_lo');
332 let _hi = Symbol('_hi'); 373 let _hi = Symbol('_hi');
333 let _nextState = Symbol('_nextState'); 374 let _nextState = Symbol('_nextState');
334 class _Random extends core.Object { 375 class _Random extends core.Object {
335 _Random(seed) { 376 _Random(seed) {
336 this[_lo] = 0; 377 this[_lo] = 0;
337 this[_hi] = 0; 378 this[_hi] = 0;
338 let empty_seed = 0; 379 let empty_seed = 0;
339 if (dart.notNull(seed) < 0) { 380 if (dart.notNull(seed) < 0) {
340 empty_seed = -1; 381 empty_seed = -1;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 this[_nextState](); 464 this[_nextState]();
424 let bits27 = dart.notNull(this[_lo]) & (1 << 27) - 1; 465 let bits27 = dart.notNull(this[_lo]) & (1 << 27) - 1;
425 return (dart.notNull(bits26) * dart.notNull(_Random._POW2_27_D) + dart.not Null(bits27)) / dart.notNull(_Random._POW2_53_D); 466 return (dart.notNull(bits26) * dart.notNull(_Random._POW2_27_D) + dart.not Null(bits27)) / dart.notNull(_Random._POW2_53_D);
426 } 467 }
427 nextBool() { 468 nextBool() {
428 this[_nextState](); 469 this[_nextState]();
429 return (dart.notNull(this[_lo]) & 1) == 0; 470 return (dart.notNull(this[_lo]) & 1) == 0;
430 } 471 }
431 } 472 }
432 _Random[dart.implements] = () => [Random]; 473 _Random[dart.implements] = () => [Random];
474 dart.setSignature(_Random, {
475 methods: () => ({
476 [_nextState]: dart.functionType(dart.void, []),
477 nextInt: dart.functionType(core.int, [core.int]),
478 nextDouble: dart.functionType(core.double, []),
479 nextBool: dart.functionType(core.bool, [])
480 })
481 });
433 _Random._POW2_53_D = 1.0 * 9007199254740992; 482 _Random._POW2_53_D = 1.0 * 9007199254740992;
434 _Random._POW2_27_D = 1.0 * (1 << 27); 483 _Random._POW2_27_D = 1.0 * (1 << 27);
435 _Random._MASK32 = 4294967295; 484 _Random._MASK32 = 4294967295;
436 // Exports: 485 // Exports:
437 exports.Point$ = Point$; 486 exports.Point$ = Point$;
438 exports.Point = Point; 487 exports.Point = Point;
439 exports.Random = Random; 488 exports.Random = Random;
440 exports.Rectangle$ = Rectangle$; 489 exports.Rectangle$ = Rectangle$;
441 exports.Rectangle = Rectangle; 490 exports.Rectangle = Rectangle;
442 exports.MutableRectangle$ = MutableRectangle$; 491 exports.MutableRectangle$ = MutableRectangle$;
(...skipping 13 matching lines...) Expand all
456 exports.sin = sin; 505 exports.sin = sin;
457 exports.cos = cos; 506 exports.cos = cos;
458 exports.tan = tan; 507 exports.tan = tan;
459 exports.acos = acos; 508 exports.acos = acos;
460 exports.asin = asin; 509 exports.asin = asin;
461 exports.atan = atan; 510 exports.atan = atan;
462 exports.sqrt = sqrt; 511 exports.sqrt = sqrt;
463 exports.exp = exp; 512 exports.exp = exp;
464 exports.log = log; 513 exports.log = log;
465 })(math, core, _js_helper); 514 })(math, core, _js_helper);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698