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

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

Issue 1348453004: fix some errors in our SDK, mostly around numbers (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 dart_library.library('dart/js', null, /* Imports */[ 1 dart_library.library('dart/js', null, /* Imports */[
2 "dart_runtime/dart", 2 "dart_runtime/dart",
3 'dart/core', 3 'dart/core',
4 'dart/collection', 4 'dart/collection',
5 'dart/_js_helper' 5 'dart/_js_helper'
6 ], /* Lazy imports */[ 6 ], /* Lazy imports */[
7 ], function(exports, dart, core, collection, _js_helper) { 7 ], function(exports, dart, core, collection, _js_helper) {
8 'use strict'; 8 'use strict';
9 let dartx = dart.dartx; 9 let dartx = dart.dartx;
10 dart.defineLazyProperties(exports, { 10 dart.defineLazyProperties(exports, {
(...skipping 10 matching lines...) Expand all
21 static new(constructor, arguments$) { 21 static new(constructor, arguments$) {
22 if (arguments$ === void 0) 22 if (arguments$ === void 0)
23 arguments$ = null; 23 arguments$ = null;
24 let ctor = constructor[_jsObject]; 24 let ctor = constructor[_jsObject];
25 if (arguments$ == null) { 25 if (arguments$ == null) {
26 return dart.as(_wrapToDart(new ctor()), JsObject); 26 return dart.as(_wrapToDart(new ctor()), JsObject);
27 } 27 }
28 return dart.as(_wrapToDart(new ctor(...arguments$)), JsObject); 28 return dart.as(_wrapToDart(new ctor(...arguments$)), JsObject);
29 } 29 }
30 static fromBrowserObject(object) { 30 static fromBrowserObject(object) {
31 if (dart.is(object, core.num) || typeof object == 'string' || typeof objec t == 'boolean' || object == null) { 31 if (typeof object == 'number' || typeof object == 'string' || typeof objec t == 'boolean' || object == null) {
32 dart.throw(new core.ArgumentError("object cannot be a num, string, bool, or null")); 32 dart.throw(new core.ArgumentError("object cannot be a num, string, bool, or null"));
33 } 33 }
34 return dart.as(_wrapToDart(_convertToJS(object)), JsObject); 34 return dart.as(_wrapToDart(_convertToJS(object)), JsObject);
35 } 35 }
36 static jsify(object) { 36 static jsify(object) {
37 if (!dart.is(object, core.Map) && !dart.is(object, core.Iterable)) { 37 if (!dart.is(object, core.Map) && !dart.is(object, core.Iterable)) {
38 dart.throw(new core.ArgumentError("object must be a Map or Iterable")); 38 dart.throw(new core.ArgumentError("object must be a Map or Iterable"));
39 } 39 }
40 return dart.as(_wrapToDart(JsObject._convertDataTree(object)), JsObject); 40 return dart.as(_wrapToDart(JsObject._convertDataTree(object)), JsObject);
41 } 41 }
(...skipping 16 matching lines...) Expand all
58 convertedList[dartx.addAll](dart.as(dart.dsend(o, 'map', _convert), co re.Iterable)); 58 convertedList[dartx.addAll](dart.as(dart.dsend(o, 'map', _convert), co re.Iterable));
59 return convertedList; 59 return convertedList;
60 } else { 60 } else {
61 return _convertToJS(o); 61 return _convertToJS(o);
62 } 62 }
63 } 63 }
64 dart.fn(_convert); 64 dart.fn(_convert);
65 return _convert(data); 65 return _convert(data);
66 } 66 }
67 get(property) { 67 get(property) {
68 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 68 if (!(typeof property == 'string') && !(typeof property == 'number')) {
69 dart.throw(new core.ArgumentError("property is not a String or num")); 69 dart.throw(new core.ArgumentError("property is not a String or num"));
70 } 70 }
71 return _convertToDart(this[_jsObject][property]); 71 return _convertToDart(this[_jsObject][property]);
72 } 72 }
73 set(property, value) { 73 set(property, value) {
74 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 74 if (!(typeof property == 'string') && !(typeof property == 'number')) {
75 dart.throw(new core.ArgumentError("property is not a String or num")); 75 dart.throw(new core.ArgumentError("property is not a String or num"));
76 } 76 }
77 this[_jsObject][property] = _convertToJS(value); 77 this[_jsObject][property] = _convertToJS(value);
78 return value; 78 return value;
79 } 79 }
80 get hashCode() { 80 get hashCode() {
81 return 0; 81 return 0;
82 } 82 }
83 ['=='](other) { 83 ['=='](other) {
84 return dart.is(other, JsObject) && this[_jsObject] === dart.dload(other, _ jsObject); 84 return dart.is(other, JsObject) && this[_jsObject] === dart.dload(other, _ jsObject);
85 } 85 }
86 hasProperty(property) { 86 hasProperty(property) {
87 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 87 if (!(typeof property == 'string') && !(typeof property == 'number')) {
88 dart.throw(new core.ArgumentError("property is not a String or num")); 88 dart.throw(new core.ArgumentError("property is not a String or num"));
89 } 89 }
90 return property in this[_jsObject]; 90 return property in this[_jsObject];
91 } 91 }
92 deleteProperty(property) { 92 deleteProperty(property) {
93 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 93 if (!(typeof property == 'string') && !(typeof property == 'number')) {
94 dart.throw(new core.ArgumentError("property is not a String or num")); 94 dart.throw(new core.ArgumentError("property is not a String or num"));
95 } 95 }
96 delete this[_jsObject][property]; 96 delete this[_jsObject][property];
97 } 97 }
98 instanceof(type) { 98 instanceof(type) {
99 return this[_jsObject] instanceof _convertToJS(type); 99 return this[_jsObject] instanceof _convertToJS(type);
100 } 100 }
101 toString() { 101 toString() {
102 try { 102 try {
103 return String(this[_jsObject]); 103 return String(this[_jsObject]);
104 } catch (e) { 104 } catch (e) {
105 return super.toString(); 105 return super.toString();
106 } 106 }
107 107
108 } 108 }
109 callMethod(method, args) { 109 callMethod(method, args) {
110 if (args === void 0) 110 if (args === void 0)
111 args = null; 111 args = null;
112 if (!(typeof method == 'string') && !dart.is(method, core.num)) { 112 if (!(typeof method == 'string') && !(typeof method == 'number')) {
113 dart.throw(new core.ArgumentError("method is not a String or num")); 113 dart.throw(new core.ArgumentError("method is not a String or num"));
114 } 114 }
115 if (args != null) 115 if (args != null)
116 args = core.List.from(args[dartx.map](_convertToJS)); 116 args = core.List.from(args[dartx.map](_convertToJS));
117 let fn = this[_jsObject][method]; 117 let fn = this[_jsObject][method];
118 if (!(fn instanceof Function)) { 118 if (!(fn instanceof Function)) {
119 dart.throw(new core.NoSuchMethodError(this[_jsObject], core.Symbol.new(d art.as(method, core.String)), args, dart.map())); 119 dart.throw(new core.NoSuchMethodError(this[_jsObject], core.Symbol.new(d art.as(method, core.String)), args, dart.map()));
120 } 120 }
121 return _convertToDart(fn.apply(this[_jsObject], args)); 121 return _convertToDart(fn.apply(this[_jsObject], args));
122 } 122 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 } 195 }
196 static _checkRange(start, end, length) { 196 static _checkRange(start, end, length) {
197 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length )) { 197 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(length )) {
198 dart.throw(new core.RangeError.range(start, 0, length)); 198 dart.throw(new core.RangeError.range(start, 0, length));
199 } 199 }
200 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(length)) { 200 if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) > dart. notNull(length)) {
201 dart.throw(new core.RangeError.range(end, start, length)); 201 dart.throw(new core.RangeError.range(end, start, length));
202 } 202 }
203 } 203 }
204 get(index) { 204 get(index) {
205 if (dart.is(index, core.num) && index == index[dartx.toInt]()) { 205 if (typeof index == 'number' && index == index[dartx.toInt]()) {
206 this[_checkIndex](index); 206 this[_checkIndex](index);
207 } 207 }
208 return dart.as(super.get(index), E); 208 return dart.as(super.get(index), E);
209 } 209 }
210 set(index, value) { 210 set(index, value) {
211 dart.as(value, E); 211 dart.as(value, E);
212 if (dart.is(index, core.num) && index == index[dartx.toInt]()) { 212 if (typeof index == 'number' && index == index[dartx.toInt]()) {
213 this[_checkIndex](index); 213 this[_checkIndex](index);
214 } 214 }
215 super.set(index, value); 215 super.set(index, value);
216 return value; 216 return value;
217 } 217 }
218 get length() { 218 get length() {
219 let len = this[_jsObject].length; 219 let len = this[_jsObject].length;
220 if (typeof len === "number" && len >>> 0 === len) { 220 if (typeof len === "number" && len >>> 0 === len) {
221 return len; 221 return len;
222 } 222 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 let _dartObj = Symbol('_dartObj'); 321 let _dartObj = Symbol('_dartObj');
322 class _DartObject extends core.Object { 322 class _DartObject extends core.Object {
323 _DartObject(dartObj) { 323 _DartObject(dartObj) {
324 this[_dartObj] = dartObj; 324 this[_dartObj] = dartObj;
325 } 325 }
326 } 326 }
327 dart.setSignature(_DartObject, { 327 dart.setSignature(_DartObject, {
328 constructors: () => ({_DartObject: [_DartObject, [dart.dynamic]]}) 328 constructors: () => ({_DartObject: [_DartObject, [dart.dynamic]]})
329 }); 329 });
330 function _convertToJS(o) { 330 function _convertToJS(o) {
331 if (o == null || typeof o == 'string' || dart.is(o, core.num) || typeof o == 'boolean' || dart.notNull(_isBrowserType(o))) { 331 if (o == null || typeof o == 'string' || typeof o == 'number' || typeof o == 'boolean' || dart.notNull(_isBrowserType(o))) {
332 return o; 332 return o;
333 } else if (dart.is(o, core.DateTime)) { 333 } else if (dart.is(o, core.DateTime)) {
334 return _js_helper.Primitives.lazyAsJsDate(o); 334 return _js_helper.Primitives.lazyAsJsDate(o);
335 } else if (dart.is(o, JsObject)) { 335 } else if (dart.is(o, JsObject)) {
336 return dart.dload(o, _jsObject); 336 return dart.dload(o, _jsObject);
337 } else if (dart.is(o, core.Function)) { 337 } else if (dart.is(o, core.Function)) {
338 return _putIfAbsent(exports._jsProxies, o, _wrapDartFunction); 338 return _putIfAbsent(exports._jsProxies, o, _wrapDartFunction);
339 } else { 339 } else {
340 return _putIfAbsent(exports._jsProxies, o, dart.fn(o => new _DartObject(o) , _DartObject, [dart.dynamic])); 340 return _putIfAbsent(exports._jsProxies, o, dart.fn(o => new _DartObject(o) , _DartObject, [dart.dynamic]));
341 } 341 }
342 } 342 }
343 dart.fn(_convertToJS); 343 dart.fn(_convertToJS);
344 function _wrapDartFunction(f) { 344 function _wrapDartFunction(f) {
345 let wrapper = function() { 345 let wrapper = function() {
346 let args = Array.prototype.map.call(arguments, _convertToDart); 346 let args = Array.prototype.map.call(arguments, _convertToDart);
347 return _convertToJS(f(...args)); 347 return _convertToJS(f(...args));
348 }; 348 };
349 dart.dsetindex(exports._dartProxies, wrapper, f); 349 dart.dsetindex(exports._dartProxies, wrapper, f);
350 return wrapper; 350 return wrapper;
351 } 351 }
352 dart.fn(_wrapDartFunction); 352 dart.fn(_wrapDartFunction);
353 function _convertToDart(o) { 353 function _convertToDart(o) {
354 if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean" || dart.notNull(_isBrowserType(o))) { 354 if (o == null || typeof o == "string" || typeof o == "number" || typeof o == "boolean" || dart.notNull(_isBrowserType(o))) {
355 return o; 355 return o;
356 } else if (o instanceof Date) { 356 } else if (o instanceof Date) {
357 let ms = o.getTime(); 357 let ms = o.getTime();
358 return new core.DateTime.fromMillisecondsSinceEpoch(ms); 358 return new core.DateTime.fromMillisecondsSinceEpoch(dart.asInt(ms));
359 } else if (dart.is(o, _DartObject) && dart.jsobject != dart.realRuntimeType( o)) { 359 } else if (dart.is(o, _DartObject) && dart.jsobject != dart.realRuntimeType( o)) {
360 return dart.dload(o, _dartObj); 360 return dart.dload(o, _dartObj);
361 } else { 361 } else {
362 return _putIfAbsent(exports._dartProxies, o, _wrapToDart); 362 return _putIfAbsent(exports._dartProxies, o, _wrapToDart);
363 } 363 }
364 } 364 }
365 dart.fn(_convertToDart, core.Object, [dart.dynamic]); 365 dart.fn(_convertToDart, core.Object, [dart.dynamic]);
366 function _wrapToDart(o) { 366 function _wrapToDart(o) {
367 if (typeof o == "function") { 367 if (typeof o == "function") {
368 return new JsFunction._fromJs(o); 368 return new JsFunction._fromJs(o);
(...skipping 25 matching lines...) Expand all
394 let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.d ynamic, [E])); 394 let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.d ynamic, [E]));
395 return __CastType0; 395 return __CastType0;
396 }); 396 });
397 let __CastType0 = __CastType0$(); 397 let __CastType0 = __CastType0$();
398 // Exports: 398 // Exports:
399 exports.JsObject = JsObject; 399 exports.JsObject = JsObject;
400 exports.JsFunction = JsFunction; 400 exports.JsFunction = JsFunction;
401 exports.JsArray$ = JsArray$; 401 exports.JsArray$ = JsArray$;
402 exports.JsArray = JsArray; 402 exports.JsArray = JsArray;
403 }); 403 });
OLDNEW
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/math.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698