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

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

Issue 1355893003: Rewire DDC to use the analyzer task model (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Fix for identifiers 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
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, {
11 get context() { 11 get context() {
12 return dart.as(_wrapToDart(dart.global), JsObject); 12 return dart.as(dart.dcall(_wrapToDart, dart.global), JsObject);
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 dart.as(dart.dcall(_wrapToDart, new ctor()), JsObject);
27 } 27 }
28 return dart.as(_wrapToDart(new ctor(...arguments$)), JsObject); 28 return dart.as(dart.dcall(_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 (dart.is(object, core.num) || 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(dart.dcall(_wrapToDart, dart.dcall(_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(dart.dcall(_wrapToDart, dart.dcall(JsObject._convertDataTre e, object)), JsObject);
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(dart.as(dart.dsend(_convertedObjects, 'containsKey', o) , core.bool))) {
46 return _convertedObjects.get(o); 46 return dart.dindex(_convertedObjects, 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 dart.dsetindex(_convertedObjects, o, convertedMap);
51 for (let key of dart.as(dart.dload(o, 'keys'), core.Iterable)) { 51 for (let key of dart.as(dart.dload(o, 'keys'), core.Iterable)) {
52 convertedMap[key] = _convert(dart.dindex(o, key)); 52 convertedMap[key] = dart.dcall(_convert, dart.dindex(o, key));
53 } 53 }
54 return convertedMap; 54 return convertedMap;
55 } else if (dart.is(o, core.Iterable)) { 55 } else if (dart.is(o, core.Iterable)) {
56 let convertedList = []; 56 let convertedList = [];
57 _convertedObjects.set(o, convertedList); 57 dart.dsetindex(_convertedObjects, o, convertedList);
58 convertedList[dartx.addAll](dart.as(dart.dsend(o, 'map', _convert), co re.Iterable)); 58 dart.dsend(convertedList, 'addAll', dart.dsend(o, 'map', _convert));
59 return convertedList; 59 return convertedList;
60 } else { 60 } else {
61 return _convertToJS(o); 61 return dart.dcall(_convertToJS, o);
62 } 62 }
63 } 63 }
64 dart.fn(_convert); 64 dart.fn(_convert);
65 return _convert(data); 65 return dart.dcall(_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') && !dart.is(property, core.num)) {
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 dart.dcall(_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') && !dart.is(property, core.num)) {
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] = dart.dcall(_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) && dart.notNull(dart.as(this[_jsObject] == = dart.dload(other, _jsObject), core.bool));
85 } 85 }
86 hasProperty(property) { 86 hasProperty(property) {
87 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 87 if (!(typeof property == 'string') && !dart.is(property, core.num)) {
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 dart.as(property in this[_jsObject], core.bool);
91 } 91 }
92 deleteProperty(property) { 92 deleteProperty(property) {
93 if (!(typeof property == 'string') && !dart.is(property, core.num)) { 93 if (!(typeof property == 'string') && !dart.is(property, core.num)) {
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 dart.as(this[_jsObject] instanceof dart.dcall(_convertToJS, type), core.bool);
100 } 100 }
101 toString() { 101 toString() {
102 try { 102 try {
103 return String(this[_jsObject]); 103 return dart.as(String(this[_jsObject]), core.String);
104 } catch (e) { 104 } catch (e) {
105 return super.toString(); 105 return dart.dcall(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') && !dart.is(method, core.num)) {
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(dart.dcall(args[dartx.map], _convertToJS));
117 let fn = this[_jsObject][method]; 117 let fn = this[_jsObject][method];
118 if (!(fn instanceof Function)) { 118 if (!dart.notNull(dart.as(fn instanceof Function, core.bool))) {
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 dart.dcall(_convertToDart, fn.apply(this[_jsObject], args));
122 } 122 }
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 }),
(...skipping 16 matching lines...) Expand all
148 args.push(_convertToDart(arg)); 148 args.push(_convertToDart(arg));
149 } 149 }
150 return _convertToJS(f(...args)); 150 return _convertToJS(f(...args));
151 }); 151 });
152 } 152 }
153 _fromJs(jsObject) { 153 _fromJs(jsObject) {
154 super._fromJs(jsObject); 154 super._fromJs(jsObject);
155 } 155 }
156 apply(args, opts) { 156 apply(args, opts) {
157 let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null; 157 let thisArg = opts && 'thisArg' in opts ? opts.thisArg : null;
158 return _convertToDart(this[_jsObject].apply(_convertToJS(thisArg), args == null ? null : core.List.from(args[dartx.map](_convertToJS)))); 158 return dart.dcall(_convertToDart, this[_jsObject].apply(dart.dcall(_conver tToJS, thisArg), args == null ? null : core.List.from(dart.dcall(args[dartx.map] , _convertToJS))));
159 } 159 }
160 } 160 }
161 dart.defineNamedConstructor(JsFunction, '_fromJs'); 161 dart.defineNamedConstructor(JsFunction, '_fromJs');
162 dart.setSignature(JsFunction, { 162 dart.setSignature(JsFunction, {
163 constructors: () => ({ 163 constructors: () => ({
164 withThis: [JsFunction, [core.Function]], 164 withThis: [JsFunction, [core.Function]],
165 _fromJs: [JsFunction, [dart.dynamic]] 165 _fromJs: [JsFunction, [dart.dynamic]]
166 }), 166 }),
167 methods: () => ({apply: [dart.dynamic, [core.List], {thisArg: dart.dynamic}] }) 167 methods: () => ({apply: [dart.dynamic, [core.List], {thisArg: dart.dynamic}] })
168 }); 168 });
169 let _checkIndex = Symbol('_checkIndex'); 169 let _checkIndex = Symbol('_checkIndex');
170 let _checkInsertIndex = Symbol('_checkInsertIndex'); 170 let _checkInsertIndex = Symbol('_checkInsertIndex');
171 let JsArray$ = dart.generic(function(E) { 171 let JsArray$ = dart.generic(function(E) {
172 class JsArray extends dart.mixin(JsObject, collection.ListMixin$(E)) { 172 class JsArray extends dart.mixin(JsObject, collection.ListMixin$(E)) {
173 JsArray() { 173 JsArray() {
174 super._fromJs([]); 174 super._fromJs([]);
175 } 175 }
176 from(other) { 176 from(other) {
177 super._fromJs((() => { 177 super._fromJs((() => {
178 let _ = []; 178 let _ = [];
179 _[dartx.addAll](other[dartx.map](dart.as(_convertToJS, __CastType0))); 179 dart.dcall(_[dartx.addAll], dart.dcall(other[dartx.map], _convertToJS) );
180 return _; 180 return _;
181 })()); 181 })());
182 } 182 }
183 _fromJs(jsObject) { 183 _fromJs(jsObject) {
184 super._fromJs(jsObject); 184 super._fromJs(jsObject);
185 } 185 }
186 [_checkIndex](index) { 186 [_checkIndex](index) {
187 if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull (index) >= dart.notNull(this.length))) { 187 if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull (index) >= dart.notNull(this.length))) {
188 dart.throw(new core.RangeError.range(index, 0, this.length)); 188 dart.throw(new core.RangeError.range(index, 0, this.length));
189 } 189 }
190 } 190 }
191 [_checkInsertIndex](index) { 191 [_checkInsertIndex](index) {
192 if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull (index) >= dart.notNull(this.length) + 1)) { 192 if (typeof index == 'number' && (dart.notNull(index) < 0 || dart.notNull (index) >= dart.notNull(this.length) + 1)) {
193 dart.throw(new core.RangeError.range(index, 0, this.length)); 193 dart.throw(new core.RangeError.range(index, 0, this.length));
194 } 194 }
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 (dart.is(index, core.num) && dart.equals(index, dart.dsend(index, 'to Int'))) {
206 this[_checkIndex](index); 206 dart.dcall(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 (dart.is(index, core.num) && dart.equals(index, dart.dsend(index, 'to Int'))) {
213 this[_checkIndex](index); 213 dart.dcall(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 (dart.notNull(dart.as(typeof len === "number" && len >>> 0 === len, c ore.bool))) {
221 return len; 221 return dart.as(len, core.int);
222 } 222 }
223 dart.throw(new core.StateError('Bad JsArray length')); 223 dart.throw(new core.StateError('Bad JsArray length'));
224 } 224 }
225 set length(length) { 225 set length(length) {
226 super.set('length', length); 226 super.set('length', length);
227 } 227 }
228 add(value) { 228 add(value) {
229 dart.as(value, E); 229 dart.as(value, E);
230 this.callMethod('push', [value]); 230 dart.dcall(this.callMethod, 'push', [value]);
231 } 231 }
232 addAll(iterable) { 232 addAll(iterable) {
233 dart.as(iterable, core.Iterable$(E)); 233 dart.as(iterable, core.Iterable$(E));
234 let list = iterable instanceof Array ? iterable : core.List.from(iterabl e); 234 let list = dart.notNull(dart.as(iterable instanceof Array, core.bool)) ? iterable : core.List.from(iterable);
235 this.callMethod('push', dart.as(list, core.List)); 235 dart.dcall(this.callMethod, 'push', list);
236 } 236 }
237 insert(index, element) { 237 insert(index, element) {
238 dart.as(element, E); 238 dart.as(element, E);
239 this[_checkInsertIndex](index); 239 dart.dcall(this[_checkInsertIndex], index);
240 this.callMethod('splice', [index, 0, element]); 240 dart.dcall(this.callMethod, 'splice', [index, 0, element]);
241 } 241 }
242 removeAt(index) { 242 removeAt(index) {
243 this[_checkIndex](index); 243 dart.dcall(this[_checkIndex], index);
244 return dart.as(dart.dindex(this.callMethod('splice', [index, 1]), 0), E) ; 244 return dart.as(dart.dindex(dart.dcall(this.callMethod, 'splice', [index, 1]), 0), E);
245 } 245 }
246 removeLast() { 246 removeLast() {
247 if (this.length == 0) 247 if (this.length == 0)
248 dart.throw(new core.RangeError(-1)); 248 dart.throw(new core.RangeError(-1));
249 return dart.as(this.callMethod('pop'), E); 249 return dart.as(dart.dcall(this.callMethod, 'pop'), E);
250 } 250 }
251 removeRange(start, end) { 251 removeRange(start, end) {
252 JsArray$()._checkRange(start, end, this.length); 252 dart.dcall(JsArray$()._checkRange, start, end, this.length);
253 this.callMethod('splice', [start, dart.notNull(end) - dart.notNull(start )]); 253 dart.dcall(this.callMethod, 'splice', [start, dart.notNull(end) - dart.n otNull(start)]);
254 } 254 }
255 setRange(start, end, iterable, skipCount) { 255 setRange(start, end, iterable, skipCount) {
256 dart.as(iterable, core.Iterable$(E)); 256 dart.as(iterable, core.Iterable$(E));
257 if (skipCount === void 0) 257 if (skipCount === void 0)
258 skipCount = 0; 258 skipCount = 0;
259 JsArray$()._checkRange(start, end, this.length); 259 dart.dcall(JsArray$()._checkRange, start, end, this.length);
260 let length = dart.notNull(end) - dart.notNull(start); 260 let length = dart.notNull(end) - dart.notNull(start);
261 if (length == 0) 261 if (length == 0)
262 return; 262 return;
263 if (dart.notNull(skipCount) < 0) 263 if (dart.notNull(skipCount) < 0)
264 dart.throw(new core.ArgumentError(skipCount)); 264 dart.throw(new core.ArgumentError(skipCount));
265 let args = [start, length]; 265 let args = [start, length];
266 args[dartx.addAll](iterable[dartx.skip](skipCount)[dartx.take](length)); 266 dart.dcall(args[dartx.addAll], dart.dcall(dart.dcall(iterable[dartx.skip ], skipCount)[dartx.take], length));
267 this.callMethod('splice', args); 267 dart.dcall(this.callMethod, 'splice', args);
268 } 268 }
269 sort(compare) { 269 sort(compare) {
270 if (compare === void 0) 270 if (compare === void 0)
271 compare = null; 271 compare = null;
272 dart.as(compare, dart.functionType(core.int, [E, E])); 272 dart.as(compare, dart.functionType(core.int, [E, E]));
273 this.callMethod('sort', compare == null ? [] : [compare]); 273 dart.dcall(this.callMethod, 'sort', compare == null ? [] : [compare]);
274 } 274 }
275 } 275 }
276 dart.defineNamedConstructor(JsArray, 'from'); 276 dart.defineNamedConstructor(JsArray, 'from');
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, [dart.dynamic]],
288 set: [dart.void, [core.int, E]], 288 set: [dart.void, [dart.dynamic, 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']
299 }); 299 });
300 dart.defineExtensionMembers(JsArray, [ 300 dart.defineExtensionMembers(JsArray, [
301 'get', 301 'get',
302 'set', 302 'set',
303 'add', 303 'add',
304 'addAll', 304 'addAll',
305 'insert', 305 'insert',
306 'removeAt', 306 'removeAt',
307 'removeLast', 307 'removeLast',
308 'removeRange', 308 'removeRange',
309 'setRange', 309 'setRange',
310 'sort', 310 'sort',
311 'length', 311 'length',
312 'length' 312 'length'
313 ]); 313 ]);
314 return JsArray; 314 return JsArray;
315 }); 315 });
316 let JsArray = JsArray$(); 316 let JsArray = JsArray$();
317 function _isBrowserType(o) { 317 function _isBrowserType(o) {
318 return o instanceof Blob || o instanceof Event || window.KeyRange && o insta nceof KeyRange || o instanceof ImageData || o instanceof Node || window.TypedDat a && o instanceof TypedData || o instanceof Window; 318 return dart.as(o instanceof Blob || o instanceof Event || window.KeyRange && o instanceof KeyRange || o instanceof ImageData || o instanceof Node || window. TypedData && o instanceof TypedData || o instanceof Window, core.bool);
319 } 319 }
320 dart.fn(_isBrowserType, core.bool, [dart.dynamic]); 320 dart.fn(_isBrowserType, core.bool, [dart.dynamic]);
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' || dart.is(o, core.num) || typeof o == 'boolean' || dart.notNull(dart.dcall(_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 dart.dcall(_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 dart.dcall(_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 dart.dcall(_putIfAbsent, exports._jsProxies, o, dart.fn(o => new _D artObject(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 (dart.notNull(dart.as(o == null, core.bool)) || dart.notNull(dart.as(type of o == "string", core.bool)) || dart.notNull(dart.as(typeof o == "number", core .bool)) || dart.notNull(dart.as(typeof o == "boolean", core.bool)) || dart.notNu ll(dart.dcall(_isBrowserType, o))) {
355 return o; 355 return o;
356 } else if (o instanceof Date) { 356 } else if (dart.notNull(dart.as(o instanceof Date, core.bool))) {
357 let ms = o.getTime(); 357 let ms = o.getTime();
358 return new core.DateTime.fromMillisecondsSinceEpoch(ms); 358 return new core.DateTime.fromMillisecondsSinceEpoch(dart.as(ms, core.int)) ;
359 } else if (dart.is(o, _DartObject) && dart.jsobject != dart.realRuntimeType( o)) { 359 } else if (dart.is(o, _DartObject) && dart.notNull(dart.as(dart.jsobject != dart.realRuntimeType(o), core.bool))) {
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 dart.dcall(_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 (dart.notNull(dart.as(typeof o == "function", core.bool))) {
368 return new JsFunction._fromJs(o); 368 return new JsFunction._fromJs(o);
369 } 369 }
370 if (o instanceof Array) { 370 if (dart.notNull(dart.as(o instanceof Array, core.bool))) {
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);
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) {
394 let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.d ynamic, [E]));
395 return __CastType0;
396 });
397 let __CastType0 = __CastType0$();
398 // Exports: 393 // Exports:
399 exports.JsObject = JsObject; 394 exports.JsObject = JsObject;
400 exports.JsFunction = JsFunction; 395 exports.JsFunction = JsFunction;
401 exports.JsArray$ = JsArray$; 396 exports.JsArray$ = JsArray$;
402 exports.JsArray = JsArray; 397 exports.JsArray = JsArray;
403 }); 398 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698