OLD | NEW |
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, { |
11 get context() { | 11 get context() { |
12 return dart.as(_wrapToDart(dart.global), JsObject); | 12 return _wrapToDart(dart.global); |
13 } | 13 } |
14 }); | 14 }); |
15 let _jsObject = Symbol('_jsObject'); | 15 let _jsObject = Symbol('_jsObject'); |
16 class JsObject extends core.Object { | 16 class JsObject extends core.Object { |
17 _fromJs(jsObject) { | 17 _fromJs(jsObject) { |
18 this[_jsObject] = jsObject; | 18 this[_jsObject] = jsObject; |
19 dart.assert(this[_jsObject] != null); | 19 dart.assert(this[_jsObject] != null); |
20 } | 20 } |
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 _wrapToDart(new ctor()); |
27 } | 27 } |
28 return dart.as(_wrapToDart(new ctor(...arguments$)), JsObject); | 28 return _wrapToDart(new ctor(...arguments$)); |
29 } | 29 } |
30 static fromBrowserObject(object) { | 30 static fromBrowserObject(object) { |
31 if (typeof object == 'number' || 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 _wrapToDart(_convertToJS(object)); |
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 _wrapToDart(JsObject._convertDataTree(object)); |
41 } | 41 } |
42 static _convertDataTree(data) { | 42 static _convertDataTree(data) { |
43 let _convertedObjects = collection.HashMap.identity(); | 43 let _convertedObjects = collection.HashMap.identity(); |
44 function _convert(o) { | 44 function _convert(o) { |
45 if (dart.notNull(_convertedObjects.containsKey(o))) { | 45 if (dart.notNull(_convertedObjects.containsKey(o))) { |
46 return _convertedObjects.get(o); | 46 return _convertedObjects.get(o); |
47 } | 47 } |
48 if (dart.is(o, core.Map)) { | 48 if (dart.is(o, core.Map)) { |
49 let convertedMap = {}; | 49 let convertedMap = {}; |
50 _convertedObjects.set(o, convertedMap); | 50 _convertedObjects.set(o, convertedMap); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 } | 123 } |
124 dart.defineNamedConstructor(JsObject, '_fromJs'); | 124 dart.defineNamedConstructor(JsObject, '_fromJs'); |
125 dart.setSignature(JsObject, { | 125 dart.setSignature(JsObject, { |
126 constructors: () => ({ | 126 constructors: () => ({ |
127 _fromJs: [JsObject, [dart.dynamic]], | 127 _fromJs: [JsObject, [dart.dynamic]], |
128 new: [JsObject, [JsFunction], [core.List]], | 128 new: [JsObject, [JsFunction], [core.List]], |
129 fromBrowserObject: [JsObject, [dart.dynamic]], | 129 fromBrowserObject: [JsObject, [dart.dynamic]], |
130 jsify: [JsObject, [dart.dynamic]] | 130 jsify: [JsObject, [dart.dynamic]] |
131 }), | 131 }), |
132 methods: () => ({ | 132 methods: () => ({ |
133 get: [dart.dynamic, [dart.dynamic]], | 133 get: [dart.dynamic, [core.Object]], |
134 set: [dart.dynamic, [dart.dynamic, dart.dynamic]], | 134 set: [dart.dynamic, [core.Object, dart.dynamic]], |
135 hasProperty: [core.bool, [dart.dynamic]], | 135 hasProperty: [core.bool, [dart.dynamic]], |
136 deleteProperty: [dart.void, [dart.dynamic]], | 136 deleteProperty: [dart.void, [dart.dynamic]], |
137 instanceof: [core.bool, [JsFunction]], | 137 instanceof: [core.bool, [JsFunction]], |
138 callMethod: [dart.dynamic, [dart.dynamic], [core.List]] | 138 callMethod: [dart.dynamic, [dart.dynamic], [core.List]] |
139 }), | 139 }), |
140 statics: () => ({_convertDataTree: [dart.dynamic, [dart.dynamic]]}), | 140 statics: () => ({_convertDataTree: [dart.dynamic, [dart.dynamic]]}), |
141 names: ['_convertDataTree'] | 141 names: ['_convertDataTree'] |
142 }); | 142 }); |
143 class JsFunction extends JsObject { | 143 class JsFunction extends JsObject { |
144 static withThis(f) { | 144 static withThis(f) { |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 (typeof index == 'number' && index == index[dartx.toInt]()) { | 205 if (typeof index == 'number' && index == index[dartx.toInt]()) { |
206 this[_checkIndex](index); | 206 this[_checkIndex](dart.asInt(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 (typeof index == 'number' && index == index[dartx.toInt]()) { | 212 if (typeof index == 'number' && index == index[dartx.toInt]()) { |
213 this[_checkIndex](index); | 213 this[_checkIndex](dart.asInt(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 } |
223 dart.throw(new core.StateError('Bad JsArray length')); | 223 dart.throw(new core.StateError('Bad JsArray length')); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 dart.defineNamedConstructor(JsArray, '_fromJs'); | 277 dart.defineNamedConstructor(JsArray, '_fromJs'); |
278 dart.setSignature(JsArray, { | 278 dart.setSignature(JsArray, { |
279 constructors: () => ({ | 279 constructors: () => ({ |
280 JsArray: [JsArray$(E), []], | 280 JsArray: [JsArray$(E), []], |
281 from: [JsArray$(E), [core.Iterable$(E)]], | 281 from: [JsArray$(E), [core.Iterable$(E)]], |
282 _fromJs: [JsArray$(E), [dart.dynamic]] | 282 _fromJs: [JsArray$(E), [dart.dynamic]] |
283 }), | 283 }), |
284 methods: () => ({ | 284 methods: () => ({ |
285 [_checkIndex]: [dart.dynamic, [core.int]], | 285 [_checkIndex]: [dart.dynamic, [core.int]], |
286 [_checkInsertIndex]: [dart.dynamic, [core.int]], | 286 [_checkInsertIndex]: [dart.dynamic, [core.int]], |
287 get: [E, [core.int]], | 287 get: [E, [core.Object]], |
288 set: [dart.void, [core.int, E]], | 288 set: [dart.void, [core.Object, E]], |
289 add: [dart.void, [E]], | 289 add: [dart.void, [E]], |
290 addAll: [dart.void, [core.Iterable$(E)]], | 290 addAll: [dart.void, [core.Iterable$(E)]], |
291 insert: [dart.void, [core.int, E]], | 291 insert: [dart.void, [core.int, E]], |
292 removeAt: [E, [core.int]], | 292 removeAt: [E, [core.int]], |
293 removeLast: [E, []], | 293 removeLast: [E, []], |
294 setRange: [dart.void, [core.int, core.int, core.Iterable$(E)], [core.int
]], | 294 setRange: [dart.void, [core.int, core.int, core.Iterable$(E)], [core.int
]], |
295 sort: [dart.void, [], [dart.functionType(core.int, [E, E])]] | 295 sort: [dart.void, [], [dart.functionType(core.int, [E, E])]] |
296 }), | 296 }), |
297 statics: () => ({_checkRange: [dart.dynamic, [core.int, core.int, core.int
]]}), | 297 statics: () => ({_checkRange: [dart.dynamic, [core.int, core.int, core.int
]]}), |
298 names: ['_checkRange'] | 298 names: ['_checkRange'] |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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); |
369 } | 369 } |
370 if (o instanceof Array) { | 370 if (o instanceof Array) { |
371 return new JsArray._fromJs(o); | 371 return new JsArray._fromJs(o); |
372 } | 372 } |
373 return new JsObject._fromJs(o); | 373 return new JsObject._fromJs(o); |
374 } | 374 } |
375 dart.fn(_wrapToDart); | 375 dart.fn(_wrapToDart, JsObject, [dart.dynamic]); |
376 dart.defineLazyProperties(exports, { | 376 dart.defineLazyProperties(exports, { |
377 get _dartProxies() { | 377 get _dartProxies() { |
378 return new WeakMap(); | 378 return new WeakMap(); |
379 }, | 379 }, |
380 get _jsProxies() { | 380 get _jsProxies() { |
381 return new WeakMap(); | 381 return new WeakMap(); |
382 } | 382 } |
383 }); | 383 }); |
384 function _putIfAbsent(weakMap, o, getValue) { | 384 function _putIfAbsent(weakMap, o, getValue) { |
385 let value = weakMap.get(o); | 385 let value = weakMap.get(o); |
386 if (value == null) { | 386 if (value == null) { |
387 value = dart.dcall(getValue, o); | 387 value = dart.dcall(getValue, o); |
388 weakMap.set(o, value); | 388 weakMap.set(o, value); |
389 } | 389 } |
390 return value; | 390 return value; |
391 } | 391 } |
392 dart.fn(_putIfAbsent, core.Object, [dart.dynamic, dart.dynamic, dart.functionT
ype(dart.dynamic, [dart.dynamic])]); | 392 dart.fn(_putIfAbsent, core.Object, [dart.dynamic, dart.dynamic, dart.functionT
ype(dart.dynamic, [dart.dynamic])]); |
393 let __CastType0$ = dart.generic(function(E) { | 393 let __CastType0$ = dart.generic(function(E) { |
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 }); |
OLD | NEW |