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

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

Issue 1059583002: Extension method support to move us closer to a valid List implementation. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: done Created 5 years, 8 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/_internal.js ('k') | lib/runtime/dart/_js_helper.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 var _isolate_helper; 1 var _isolate_helper;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 // Function _serializeMessage: (dynamic) → dynamic 4 // Function _serializeMessage: (dynamic) → dynamic
5 function _serializeMessage(message) { 5 function _serializeMessage(message) {
6 return new _Serializer().serialize(message); 6 return new _Serializer().serialize(message);
7 } 7 }
8 // Function _deserializeMessage: (dynamic) → dynamic 8 // Function _deserializeMessage: (dynamic) → dynamic
9 function _deserializeMessage(message) { 9 function _deserializeMessage(message) {
10 return new _Deserializer().deserialize(message); 10 return new _Deserializer().deserialize(message);
11 } 11 }
12 // Function _clone: (dynamic) → dynamic 12 // Function _clone: (dynamic) → dynamic
13 function _clone(message) { 13 function _clone(message) {
14 let serializer = new _Serializer({serializeSendPorts: false}); 14 let serializer = new _Serializer({serializeSendPorts: false});
15 let deserializer = new _Deserializer(); 15 let deserializer = new _Deserializer();
16 return deserializer.deserialize(serializer.serialize(message)); 16 return deserializer.deserialize(serializer.serialize(message));
17 } 17 }
18 let _serializeSendPorts = Symbol('_serializeSendPorts'); 18 let _serializeSendPorts = Symbol('_serializeSendPorts');
19 let _workerId = Symbol('_workerId'); 19 let _workerId = Symbol('_workerId');
20 let _isolateId = Symbol('_isolateId'); 20 let _isolateId = Symbol('_isolateId');
21 let _receivePortId = Symbol('_receivePortId'); 21 let _receivePortId = Symbol('_receivePortId');
22 let _receivePort = Symbol('_receivePort'); 22 let _receivePort = Symbol('_receivePort');
23 let _id = Symbol('_id'); 23 let _id = Symbol('_id');
24 let _getJSFunctionName = Symbol('_getJSFunctionName');
24 class _Serializer extends core.Object { 25 class _Serializer extends core.Object {
25 _Serializer(opts) { 26 _Serializer(opts) {
26 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria lizeSendPorts : true; 27 let serializeSendPorts = opts && 'serializeSendPorts' in opts ? opts.seria lizeSendPorts : true;
27 this.serializedObjectIds = new core.Map$(dynamic, core.int).identity(); 28 this.serializedObjectIds = new core.Map$(dynamic, core.int).identity();
28 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); 29 this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool);
29 } 30 }
30 serialize(x) { 31 serialize(x) {
31 if (this.isPrimitive(x)) 32 if (this.isPrimitive(x))
32 return this.serializePrimitive(x); 33 return this.serializePrimitive(x);
33 let serializationId = this.serializedObjectIds.get(x); 34 let serializationId = this.serializedObjectIds.get(x);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 return new core.List.from(["extendable", serialized]); 90 return new core.List.from(["extendable", serialized]);
90 if (dart.is(indexable, _interceptors.JSMutableArray)) 91 if (dart.is(indexable, _interceptors.JSMutableArray))
91 return new core.List.from(["mutable", serialized]); 92 return new core.List.from(["mutable", serialized]);
92 if (dart.is(indexable, _interceptors.JSArray)) 93 if (dart.is(indexable, _interceptors.JSArray))
93 return new core.List.from(["const", serialized]); 94 return new core.List.from(["const", serialized]);
94 this.unsupported(indexable, "Can't serialize indexable: "); 95 this.unsupported(indexable, "Can't serialize indexable: ");
95 return null; 96 return null;
96 } 97 }
97 serializeArray(x) { 98 serializeArray(x) {
98 let serialized = new core.List.from([]); 99 let serialized = new core.List.from([]);
99 serialized.length = x.length; 100 serialized[core.$length] = x[core.$length];
100 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 101 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
101 serialized.set(i, this.serialize(x.get(i))); 102 serialized[core.$set](i, this.serialize(x[core.$get](i)));
102 } 103 }
103 return serialized; 104 return serialized;
104 } 105 }
105 serializeArrayInPlace(x) { 106 serializeArrayInPlace(x) {
106 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 107 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
107 x.set(i, this.serialize(x.get(i))); 108 x[core.$set](i, this.serialize(x[core.$get](i)));
108 } 109 }
109 return x; 110 return x;
110 } 111 }
111 serializeMap(x) { 112 serializeMap(x) {
112 let serializeTearOff = this.serialize; 113 let serializeTearOff = this.serialize;
113 return new core.List.from(['map', x.keys.map(dart.as(serializeTearOff, dar t.throw_("Unimplemented type (dynamic) → dynamic"))).toList(), x.values.map(dart .as(serializeTearOff, dart.throw_("Unimplemented type (dynamic) → dynamic"))).to List()]); 114 return new core.List.from(['map', x.keys[core.$map](dart.as(serializeTearO ff, dart.throw_("Unimplemented type (dynamic) → dynamic")))[core.$toList](), x.v alues[core.$map](dart.as(serializeTearOff, dart.throw_("Unimplemented type (dyna mic) → dynamic")))[core.$toList]()]);
114 } 115 }
115 serializeJSObject(x) { 116 serializeJSObject(x) {
116 if (!!x.constructor && x.constructor !== Object) { 117 if (!!x.constructor && x.constructor !== Object) {
117 this.unsupported(x, "Only plain JS Objects are supported:"); 118 this.unsupported(x, "Only plain JS Objects are supported:");
118 } 119 }
119 let keys = dart.as(Object.keys(x), core.List); 120 let keys = dart.as(Object.keys(x), core.List);
120 let values = new core.List.from([]); 121 let values = new core.List.from([]);
121 values.length = keys.length; 122 values[core.$length] = keys[core.$length];
122 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 123 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
123 values.set(i, this.serialize(x[keys.get(i)])); 124 values[core.$set](i, this.serialize(x[keys[core.$get](i)]));
124 } 125 }
125 return new core.List.from(['js-object', keys, values]); 126 return new core.List.from(['js-object', keys, values]);
126 } 127 }
127 serializeWorkerSendPort(x) { 128 serializeWorkerSendPort(x) {
128 if (this[_serializeSendPorts]) { 129 if (this[_serializeSendPorts]) {
129 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r eceivePortId]]); 130 return new core.List.from(['sendport', x[_workerId], x[_isolateId], x[_r eceivePortId]]);
130 } 131 }
131 return new core.List.from(['raw sendport', x]); 132 return new core.List.from(['raw sendport', x]);
132 } 133 }
133 serializeJsSendPort(x) { 134 serializeJsSendPort(x) {
134 if (this[_serializeSendPorts]) { 135 if (this[_serializeSendPorts]) {
135 let workerId = exports._globalState.currentManagerId; 136 let workerId = exports._globalState.currentManagerId;
136 return new core.List.from(['sendport', workerId, x[_isolateId], x[_recei vePort][_id]]); 137 return new core.List.from(['sendport', workerId, x[_isolateId], x[_recei vePort][_id]]);
137 } 138 }
138 return new core.List.from(['raw sendport', x]); 139 return new core.List.from(['raw sendport', x]);
139 } 140 }
140 serializeCapability(x) { 141 serializeCapability(x) {
141 return new core.List.from(['capability', x[_id]]); 142 return new core.List.from(['capability', x[_id]]);
142 } 143 }
143 serializeClosure(x) { 144 serializeClosure(x) {
144 let name = IsolateNatives._getJSFunctionName(x); 145 let name = IsolateNatives[_getJSFunctionName](x);
145 if (name == null) { 146 if (name == null) {
146 this.unsupported(x, "Closures can't be transmitted:"); 147 this.unsupported(x, "Closures can't be transmitted:");
147 } 148 }
148 return new core.List.from(['function', name]); 149 return new core.List.from(['function', name]);
149 } 150 }
150 serializeDartObject(x) { 151 serializeDartObject(x) {
151 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n ames.CLASS_ID_EXTRACTOR); 152 let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_n ames.CLASS_ID_EXTRACTOR);
152 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.CLASS_FIELDS_EXTRACTOR); 153 let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_ names.CLASS_FIELDS_EXTRACTOR);
153 let classId = classExtractor(x); 154 let classId = classExtractor(x);
154 let fields = dart.as(fieldsExtractor(x), core.List); 155 let fields = dart.as(fieldsExtractor(x), core.List);
155 return new core.List.from(['dart', classId, this.serializeArrayInPlace(dar t.as(fields, _interceptors.JSArray))]); 156 return new core.List.from(['dart', classId, this.serializeArrayInPlace(dar t.as(fields, _interceptors.JSArray))]);
156 } 157 }
157 } 158 }
158 let _adjustSendPorts = Symbol('_adjustSendPorts'); 159 let _adjustSendPorts = Symbol('_adjustSendPorts');
160 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName');
159 class _Deserializer extends core.Object { 161 class _Deserializer extends core.Object {
160 _Deserializer(opts) { 162 _Deserializer(opts) {
161 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP orts : true; 163 let adjustSendPorts = opts && 'adjustSendPorts' in opts ? opts.adjustSendP orts : true;
162 this.deserializedObjects = new core.List(); 164 this.deserializedObjects = new core.List();
163 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); 165 this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool);
164 } 166 }
165 deserialize(x) { 167 deserialize(x) {
166 if (this.isPrimitive(x)) 168 if (this.isPrimitive(x))
167 return this.deserializePrimitive(x); 169 return this.deserializePrimitive(x);
168 if (!dart.is(x, _interceptors.JSArray)) 170 if (!dart.is(x, _interceptors.JSArray))
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 } 230 }
229 isPrimitive(x) { 231 isPrimitive(x) {
230 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean'); 232 return dart.notNull(x == null) || dart.notNull(typeof x == 'string') || da rt.notNull(dart.is(x, core.num)) || dart.notNull(typeof x == 'boolean');
231 } 233 }
232 deserializePrimitive(x) { 234 deserializePrimitive(x) {
233 return x; 235 return x;
234 } 236 }
235 deserializeRef(x) { 237 deserializeRef(x) {
236 dart.assert(dart.equals(dart.dindex(x, 0), 'ref')); 238 dart.assert(dart.equals(dart.dindex(x, 0), 'ref'));
237 let serializationId = dart.as(dart.dindex(x, 1), core.int); 239 let serializationId = dart.as(dart.dindex(x, 1), core.int);
238 return this.deserializedObjects.get(serializationId); 240 return this.deserializedObjects[core.$get](serializationId);
239 } 241 }
240 deserializeByteBuffer(x) { 242 deserializeByteBuffer(x) {
241 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer')); 243 dart.assert(dart.equals(dart.dindex(x, 0), 'buffer'));
242 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe r); 244 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffe r);
243 this.deserializedObjects.add(result); 245 this.deserializedObjects[core.$add](result);
244 return result; 246 return result;
245 } 247 }
246 deserializeTypedData(x) { 248 deserializeTypedData(x) {
247 dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); 249 dart.assert(dart.equals(dart.dindex(x, 0), 'typed'));
248 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData ); 250 let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData );
249 this.deserializedObjects.add(result); 251 this.deserializedObjects[core.$add](result);
250 return result; 252 return result;
251 } 253 }
252 deserializeArrayInPlace(x) { 254 deserializeArrayInPlace(x) {
253 for (let i = 0; dart.notNull(i) < dart.notNull(x.length); i = dart.notNull (i) + 1) { 255 for (let i = 0; dart.notNull(i) < dart.notNull(x[core.$length]); i = dart. notNull(i) + 1) {
254 x.set(i, this.deserialize(x.get(i))); 256 x[core.$set](i, this.deserialize(x[core.$get](i)));
255 } 257 }
256 return x; 258 return x;
257 } 259 }
258 deserializeFixed(x) { 260 deserializeFixed(x) {
259 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); 261 dart.assert(dart.equals(dart.dindex(x, 0), 'fixed'));
260 let result = dart.as(dart.dindex(x, 1), core.List); 262 let result = dart.as(dart.dindex(x, 1), core.List);
261 this.deserializedObjects.add(result); 263 this.deserializedObjects[core.$add](result);
262 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray))); 264 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray)));
263 } 265 }
264 deserializeExtendable(x) { 266 deserializeExtendable(x) {
265 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable')); 267 dart.assert(dart.equals(dart.dindex(x, 0), 'extendable'));
266 let result = dart.as(dart.dindex(x, 1), core.List); 268 let result = dart.as(dart.dindex(x, 1), core.List);
267 this.deserializedObjects.add(result); 269 this.deserializedObjects[core.$add](result);
268 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace (dart.as(result, _interceptors.JSArray))); 270 return new _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace (dart.as(result, _interceptors.JSArray)));
269 } 271 }
270 deserializeMutable(x) { 272 deserializeMutable(x) {
271 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable')); 273 dart.assert(dart.equals(dart.dindex(x, 0), 'mutable'));
272 let result = dart.as(dart.dindex(x, 1), core.List); 274 let result = dart.as(dart.dindex(x, 1), core.List);
273 this.deserializedObjects.add(result); 275 this.deserializedObjects[core.$add](result);
274 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray) ); 276 return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray) );
275 } 277 }
276 deserializeConst(x) { 278 deserializeConst(x) {
277 dart.assert(dart.equals(dart.dindex(x, 0), 'const')); 279 dart.assert(dart.equals(dart.dindex(x, 0), 'const'));
278 let result = dart.as(dart.dindex(x, 1), core.List); 280 let result = dart.as(dart.dindex(x, 1), core.List);
279 this.deserializedObjects.add(result); 281 this.deserializedObjects[core.$add](result);
280 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray))); 282 return new _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(da rt.as(result, _interceptors.JSArray)));
281 } 283 }
282 deserializeMap(x) { 284 deserializeMap(x) {
283 dart.assert(dart.equals(dart.dindex(x, 0), 'map')); 285 dart.assert(dart.equals(dart.dindex(x, 0), 'map'));
284 let keys = dart.as(dart.dindex(x, 1), core.List); 286 let keys = dart.as(dart.dindex(x, 1), core.List);
285 let values = dart.as(dart.dindex(x, 2), core.List); 287 let values = dart.as(dart.dindex(x, 2), core.List);
286 let result = dart.map(); 288 let result = dart.map();
287 this.deserializedObjects.add(result); 289 this.deserializedObjects[core.$add](result);
288 keys = keys.map(this.deserialize).toList(); 290 keys = keys[core.$map](this.deserialize)[core.$toList]();
289 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 291 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
290 result.set(keys.get(i), this.deserialize(values.get(i))); 292 result.set(keys[core.$get](i), this.deserialize(values[core.$get](i)));
291 } 293 }
292 return result; 294 return result;
293 } 295 }
294 deserializeSendPort(x) { 296 deserializeSendPort(x) {
295 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport')); 297 dart.assert(dart.equals(dart.dindex(x, 0), 'sendport'));
296 let managerId = dart.as(dart.dindex(x, 1), core.int); 298 let managerId = dart.as(dart.dindex(x, 1), core.int);
297 let isolateId = dart.as(dart.dindex(x, 2), core.int); 299 let isolateId = dart.as(dart.dindex(x, 2), core.int);
298 let receivePortId = dart.as(dart.dindex(x, 3), core.int); 300 let receivePortId = dart.as(dart.dindex(x, 3), core.int);
299 let result = null; 301 let result = null;
300 if (managerId == exports._globalState.currentManagerId) { 302 if (managerId == exports._globalState.currentManagerId) {
301 let isolate = exports._globalState.isolates.get(isolateId); 303 let isolate = exports._globalState.isolates.get(isolateId);
302 if (isolate == null) 304 if (isolate == null)
303 return null; 305 return null;
304 let receivePort = isolate.lookup(receivePortId); 306 let receivePort = isolate.lookup(receivePortId);
305 if (receivePort == null) 307 if (receivePort == null)
306 return null; 308 return null;
307 result = new _NativeJsSendPort(receivePort, isolateId); 309 result = new _NativeJsSendPort(receivePort, isolateId);
308 } else { 310 } else {
309 result = new _WorkerSendPort(managerId, isolateId, receivePortId); 311 result = new _WorkerSendPort(managerId, isolateId, receivePortId);
310 } 312 }
311 this.deserializedObjects.add(result); 313 this.deserializedObjects[core.$add](result);
312 return result; 314 return result;
313 } 315 }
314 deserializeRawSendPort(x) { 316 deserializeRawSendPort(x) {
315 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport')); 317 dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport'));
316 let result = dart.as(dart.dindex(x, 1), isolate.SendPort); 318 let result = dart.as(dart.dindex(x, 1), isolate.SendPort);
317 this.deserializedObjects.add(result); 319 this.deserializedObjects[core.$add](result);
318 return result; 320 return result;
319 } 321 }
320 deserializeJSObject(x) { 322 deserializeJSObject(x) {
321 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object')); 323 dart.assert(dart.equals(dart.dindex(x, 0), 'js-object'));
322 let keys = dart.as(dart.dindex(x, 1), core.List); 324 let keys = dart.as(dart.dindex(x, 1), core.List);
323 let values = dart.as(dart.dindex(x, 2), core.List); 325 let values = dart.as(dart.dindex(x, 2), core.List);
324 let o = {}; 326 let o = {};
325 this.deserializedObjects.add(o); 327 this.deserializedObjects[core.$add](o);
326 for (let i = 0; dart.notNull(i) < dart.notNull(keys.length); i = dart.notN ull(i) + 1) { 328 for (let i = 0; dart.notNull(i) < dart.notNull(keys[core.$length]); i = da rt.notNull(i) + 1) {
327 o[keys.get(i)] = this.deserialize(values.get(i)); 329 o[keys[core.$get](i)] = this.deserialize(values[core.$get](i));
328 } 330 }
329 return o; 331 return o;
330 } 332 }
331 deserializeClosure(x) { 333 deserializeClosure(x) {
332 dart.assert(dart.equals(dart.dindex(x, 0), 'function')); 334 dart.assert(dart.equals(dart.dindex(x, 0), 'function'));
333 let name = dart.as(dart.dindex(x, 1), core.String); 335 let name = dart.as(dart.dindex(x, 1), core.String);
334 let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Fun ction); 336 let result = dart.as(IsolateNatives[_getJSFunctionFromName](name), core.Fu nction);
335 this.deserializedObjects.add(result); 337 this.deserializedObjects[core.$add](result);
336 return result; 338 return result;
337 } 339 }
338 deserializeDartObject(x) { 340 deserializeDartObject(x) {
339 dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); 341 dart.assert(dart.equals(dart.dindex(x, 0), 'dart'));
340 let classId = dart.as(dart.dindex(x, 1), core.String); 342 let classId = dart.as(dart.dindex(x, 1), core.String);
341 let fields = dart.as(dart.dindex(x, 2), core.List); 343 let fields = dart.as(dart.dindex(x, 2), core.List);
342 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID); 344 let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embed ded_names.INSTANCE_FROM_CLASS_ID);
343 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE); 345 let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded _names.INITIALIZE_EMPTY_INSTANCE);
344 let emptyInstance = instanceFromClassId(classId); 346 let emptyInstance = instanceFromClassId(classId);
345 this.deserializedObjects.add(emptyInstance); 347 this.deserializedObjects[core.$add](emptyInstance);
346 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray)); 348 this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray));
347 return initializeObject(classId, emptyInstance, fields); 349 return initializeObject(classId, emptyInstance, fields);
348 } 350 }
349 } 351 }
350 // Function _callInIsolate: (_IsolateContext, Function) → dynamic 352 // Function _callInIsolate: (_IsolateContext, Function) → dynamic
351 function _callInIsolate(isolate, function$0) { 353 function _callInIsolate(isolate, function$0) {
352 let result = isolate.eval(function$0); 354 let result = isolate.eval(function$0);
353 exports._globalState.topEventLoop.run(); 355 exports._globalState.topEventLoop.run();
354 return result; 356 return result;
355 } 357 }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '}))); 471 this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close '})));
470 } 472 }
471 } 473 }
472 } 474 }
473 let _controlPort = Symbol('_controlPort'); 475 let _controlPort = Symbol('_controlPort');
474 let _scheduledControlEvents = Symbol('_scheduledControlEvents'); 476 let _scheduledControlEvents = Symbol('_scheduledControlEvents');
475 let _isExecutingEvent = Symbol('_isExecutingEvent'); 477 let _isExecutingEvent = Symbol('_isExecutingEvent');
476 let _updateGlobalState = Symbol('_updateGlobalState'); 478 let _updateGlobalState = Symbol('_updateGlobalState');
477 let _setGlobals = Symbol('_setGlobals'); 479 let _setGlobals = Symbol('_setGlobals');
478 let _addRegistration = Symbol('_addRegistration'); 480 let _addRegistration = Symbol('_addRegistration');
481 let _close = Symbol('_close');
479 class _IsolateContext extends core.Object { 482 class _IsolateContext extends core.Object {
480 _IsolateContext() { 483 _IsolateContext() {
481 this.id = ((x$) => exports._globalState.nextIsolateId = dart.notNull(x$) + 1, x$).bind(this)(exports._globalState.nextIsolateId); 484 this.id = ((x$) => exports._globalState.nextIsolateId = dart.notNull(x$) + 1, x$).bind(this)(exports._globalState.nextIsolateId);
482 this.ports = new (core.Map$(core.int, RawReceivePortImpl))(); 485 this.ports = new (core.Map$(core.int, RawReceivePortImpl))();
483 this.weakPorts = new (core.Set$(core.int))(); 486 this.weakPorts = new (core.Set$(core.int))();
484 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); 487 this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE();
485 this.controlPort = new RawReceivePortImpl[_controlPort](); 488 this.controlPort = new RawReceivePortImpl[_controlPort]();
486 this.pauseCapability = new isolate.Capability(); 489 this.pauseCapability = new isolate.Capability();
487 this.terminateCapability = new isolate.Capability(); 490 this.terminateCapability = new isolate.Capability();
488 this.delayedEvents = dart.as(new core.List.from([]), core.List$(_IsolateEv ent)); 491 this.delayedEvents = dart.as(new core.List.from([]), core.List$(_IsolateEv ent));
(...skipping 12 matching lines...) Expand all
501 return; 504 return;
502 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau sed)) { 505 if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPau sed)) {
503 this.isPaused = true; 506 this.isPaused = true;
504 } 507 }
505 this[_updateGlobalState](); 508 this[_updateGlobalState]();
506 } 509 }
507 removePause(resume) { 510 removePause(resume) {
508 if (!dart.notNull(this.isPaused)) 511 if (!dart.notNull(this.isPaused))
509 return; 512 return;
510 this.pauseTokens.remove(resume); 513 this.pauseTokens.remove(resume);
511 if (this.pauseTokens.isEmpty) { 514 if (this.pauseTokens[core.$isEmpty]) {
512 while (this.delayedEvents.isNotEmpty) { 515 while (this.delayedEvents[core.$isNotEmpty]) {
513 let event = this.delayedEvents.removeLast(); 516 let event = this.delayedEvents[core.$removeLast]();
514 exports._globalState.topEventLoop.prequeue(event); 517 exports._globalState.topEventLoop.prequeue(event);
515 } 518 }
516 this.isPaused = false; 519 this.isPaused = false;
517 } 520 }
518 this[_updateGlobalState](); 521 this[_updateGlobalState]();
519 } 522 }
520 addDoneListener(responsePort) { 523 addDoneListener(responsePort) {
521 if (this.doneHandlers == null) { 524 if (this.doneHandlers == null) {
522 this.doneHandlers = new core.List.from([]); 525 this.doneHandlers = new core.List.from([]);
523 } 526 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 } 574 }
572 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill); 575 dart.dinvoke(this[_scheduledControlEvents], 'addLast', this.kill);
573 } 576 }
574 addErrorListener(port) { 577 addErrorListener(port) {
575 this.errorPorts.add(port); 578 this.errorPorts.add(port);
576 } 579 }
577 removeErrorListener(port) { 580 removeErrorListener(port) {
578 this.errorPorts.remove(port); 581 this.errorPorts.remove(port);
579 } 582 }
580 handleUncaughtError(error, stackTrace) { 583 handleUncaughtError(error, stackTrace) {
581 if (this.errorPorts.isEmpty) { 584 if (this.errorPorts[core.$isEmpty]) {
582 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) { 585 if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(thi s, exports._globalState.rootContext))) {
583 return; 586 return;
584 } 587 }
585 if (self.console && self.console.error) { 588 if (self.console && self.console.error) {
586 self.console.error(error, stackTrace); 589 self.console.error(error, stackTrace);
587 } else { 590 } else {
588 core.print(error); 591 core.print(error);
589 if (stackTrace != null) 592 if (stackTrace != null)
590 core.print(stackTrace); 593 core.print(stackTrace);
591 } 594 }
592 return; 595 return;
593 } 596 }
594 let message = new core.List(2); 597 let message = new core.List(2);
595 message.set(0, dart.dinvoke(error, 'toString')); 598 message[core.$set](0, dart.dinvoke(error, 'toString'));
596 message.set(1, stackTrace == null ? null : stackTrace.toString()); 599 message[core.$set](1, stackTrace == null ? null : stackTrace.toString());
597 for (let port of this.errorPorts) 600 for (let port of this.errorPorts)
598 port.send(message); 601 port.send(message);
599 } 602 }
600 eval(code) { 603 eval(code) {
601 let old = exports._globalState.currentContext; 604 let old = exports._globalState.currentContext;
602 exports._globalState.currentContext = this; 605 exports._globalState.currentContext = this;
603 this._setGlobals(); 606 this[_setGlobals]();
604 let result = null; 607 let result = null;
605 this[_isExecutingEvent] = true; 608 this[_isExecutingEvent] = true;
606 try { 609 try {
607 result = dart.dinvokef(code); 610 result = dart.dinvokef(code);
608 } catch (e) { 611 } catch (e) {
609 let s = dart.stackTrace(e); 612 let s = dart.stackTrace(e);
610 this.handleUncaughtError(e, s); 613 this.handleUncaughtError(e, s);
611 if (this.errorsAreFatal) { 614 if (this.errorsAreFatal) {
612 this.kill(); 615 this.kill();
613 if (core.identical(this, exports._globalState.rootContext)) { 616 if (core.identical(this, exports._globalState.rootContext)) {
614 throw e; 617 throw e;
615 } 618 }
616 } 619 }
617 } 620 }
618 finally { 621 finally {
619 this[_isExecutingEvent] = false; 622 this[_isExecutingEvent] = false;
620 exports._globalState.currentContext = old; 623 exports._globalState.currentContext = old;
621 if (old != null) 624 if (old != null)
622 old._setGlobals(); 625 old[_setGlobals]();
623 if (this[_scheduledControlEvents] != null) { 626 if (this[_scheduledControlEvents] != null) {
624 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) { 627 while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) {
625 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir st')); 628 dart.dinvokef(dart.dinvoke(this[_scheduledControlEvents], 'removeFir st'));
626 } 629 }
627 } 630 }
628 } 631 }
629 return result; 632 return result;
630 } 633 }
631 [_setGlobals]() { 634 [_setGlobals]() {
632 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); 635 _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 } 695 }
693 register(portId, port) { 696 register(portId, port) {
694 this[_addRegistration](portId, port); 697 this[_addRegistration](portId, port);
695 this[_updateGlobalState](); 698 this[_updateGlobalState]();
696 } 699 }
697 registerWeak(portId, port) { 700 registerWeak(portId, port) {
698 this.weakPorts.add(portId); 701 this.weakPorts.add(portId);
699 this[_addRegistration](portId, port); 702 this[_addRegistration](portId, port);
700 } 703 }
701 [_updateGlobalState]() { 704 [_updateGlobalState]() {
702 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts.length) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) { 705 if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts[core.$le ngth]) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) {
703 exports._globalState.isolates.set(this.id, this); 706 exports._globalState.isolates.set(this.id, this);
704 } else { 707 } else {
705 this.kill(); 708 this.kill();
706 } 709 }
707 } 710 }
708 kill() { 711 kill() {
709 if (this[_scheduledControlEvents] != null) { 712 if (this[_scheduledControlEvents] != null) {
710 dart.dinvoke(this[_scheduledControlEvents], 'clear'); 713 dart.dinvoke(this[_scheduledControlEvents], 'clear');
711 } 714 }
712 for (let port of this.ports.values) { 715 for (let port of this.ports.values) {
713 port._close(); 716 port[_close]();
714 } 717 }
715 this.ports.clear(); 718 this.ports.clear();
716 this.weakPorts.clear(); 719 this.weakPorts.clear();
717 exports._globalState.isolates.remove(this.id); 720 exports._globalState.isolates.remove(this.id);
718 this.errorPorts.clear(); 721 this.errorPorts.clear();
719 if (this.doneHandlers != null) { 722 if (this.doneHandlers != null) {
720 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP ort))) { 723 for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendP ort))) {
721 port.send(null); 724 port.send(null);
722 } 725 }
723 this.doneHandlers = null; 726 this.doneHandlers = null;
(...skipping 12 matching lines...) Expand all
736 this.events = new (collection.Queue$(_IsolateEvent))(); 739 this.events = new (collection.Queue$(_IsolateEvent))();
737 this[_activeJsAsyncCount] = 0; 740 this[_activeJsAsyncCount] = 0;
738 } 741 }
739 enqueue(isolate, fn, msg) { 742 enqueue(isolate, fn, msg) {
740 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String))); 743 this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), d art.as(fn, core.Function), dart.as(msg, core.String)));
741 } 744 }
742 prequeue(event) { 745 prequeue(event) {
743 this.events.addFirst(event); 746 this.events.addFirst(event);
744 } 747 }
745 dequeue() { 748 dequeue() {
746 if (this.events.isEmpty) 749 if (this.events[core.$isEmpty])
747 return null; 750 return null;
748 return this.events.removeFirst(); 751 return this.events.removeFirst();
749 } 752 }
750 checkOpenReceivePortsFromCommandLine() { 753 checkOpenReceivePortsFromCommandLine() {
751 if (dart.notNull(exports._globalState.rootContext != null) && dart.notNull (exports._globalState.isolates.containsKey(exports._globalState.rootContext.id)) && dart.notNull(exports._globalState.fromCommandLine) && dart.notNull(exports._ globalState.rootContext.ports.isEmpty)) { 754 if (dart.notNull(exports._globalState.rootContext != null) && dart.notNull (exports._globalState.isolates.containsKey(exports._globalState.rootContext.id)) && dart.notNull(exports._globalState.fromCommandLine) && dart.notNull(exports._ globalState.rootContext.ports.isEmpty)) {
752 throw new core.Exception("Program exited with open ReceivePorts."); 755 throw new core.Exception("Program exited with open ReceivePorts.");
753 } 756 }
754 } 757 }
755 runIteration() { 758 runIteration() {
756 let event = this.dequeue(); 759 let event = this.dequeue();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 } 794 }
792 } 795 }
793 class _IsolateEvent extends core.Object { 796 class _IsolateEvent extends core.Object {
794 _IsolateEvent(isolate, fn, message) { 797 _IsolateEvent(isolate, fn, message) {
795 this.isolate = isolate; 798 this.isolate = isolate;
796 this.fn = fn; 799 this.fn = fn;
797 this.message = message; 800 this.message = message;
798 } 801 }
799 process() { 802 process() {
800 if (this.isolate.isPaused) { 803 if (this.isolate.isPaused) {
801 this.isolate.delayedEvents.add(this); 804 this.isolate.delayedEvents[core.$add](this);
802 return; 805 return;
803 } 806 }
804 this.isolate.eval(this.fn); 807 this.isolate.eval(this.fn);
805 } 808 }
806 } 809 }
807 class _MainManagerStub extends core.Object { 810 class _MainManagerStub extends core.Object {
808 postMessage(msg) { 811 postMessage(msg) {
809 _js_helper.requiresPreamble(); 812 _js_helper.requiresPreamble();
810 self.postMessage(msg); 813 self.postMessage(msg);
811 } 814 }
812 } 815 }
813 let _SPAWNED_SIGNAL = "spawned"; 816 let _SPAWNED_SIGNAL = "spawned";
814 let _SPAWN_FAILED_SIGNAL = "spawn failed"; 817 let _SPAWN_FAILED_SIGNAL = "spawn failed";
815 dart.copyProperties(exports, { 818 dart.copyProperties(exports, {
816 get globalWindow() { 819 get globalWindow() {
817 _js_helper.requiresPreamble(); 820 _js_helper.requiresPreamble();
818 return self.window; 821 return self.window;
819 }, 822 },
820 get globalWorker() { 823 get globalWorker() {
821 _js_helper.requiresPreamble(); 824 _js_helper.requiresPreamble();
822 return self.Worker; 825 return self.Worker;
823 }, 826 },
824 get globalPostMessageDefined() { 827 get globalPostMessageDefined() {
825 _js_helper.requiresPreamble(); 828 _js_helper.requiresPreamble();
826 return !!self.postMessage; 829 return !!self.postMessage;
827 } 830 }
828 }); 831 });
829 let _getEventData = Symbol('_getEventData'); 832 let _getEventData = Symbol('_getEventData');
830 let _getJSFunctionFromName = Symbol('_getJSFunctionFromName');
831 let _startIsolate = Symbol('_startIsolate'); 833 let _startIsolate = Symbol('_startIsolate');
832 let _log = Symbol('_log'); 834 let _log = Symbol('_log');
833 let _consoleLog = Symbol('_consoleLog'); 835 let _consoleLog = Symbol('_consoleLog');
834 let _getJSFunctionName = Symbol('_getJSFunctionName');
835 let _allocate = Symbol('_allocate'); 836 let _allocate = Symbol('_allocate');
836 let _startWorker = Symbol('_startWorker'); 837 let _startWorker = Symbol('_startWorker');
837 let _startNonWorker = Symbol('_startNonWorker'); 838 let _startNonWorker = Symbol('_startNonWorker');
838 let _spawnWorker = Symbol('_spawnWorker'); 839 let _spawnWorker = Symbol('_spawnWorker');
839 class IsolateNatives extends core.Object { 840 class IsolateNatives extends core.Object {
840 static computeThisScript() { 841 static computeThisScript() {
841 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.CURRENT_SCRIPT); 842 let currentScript = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_na mes.CURRENT_SCRIPT);
842 if (currentScript != null) { 843 if (currentScript != null) {
843 return String(currentScript.src); 844 return String(currentScript.src);
844 } 845 }
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 this[_isolateId] = isolateId$; 1121 this[_isolateId] = isolateId$;
1121 } 1122 }
1122 [_checkReplyTo](replyTo) { 1123 [_checkReplyTo](replyTo) {
1123 if (dart.notNull(replyTo != null) && dart.notNull(!dart.is(replyTo, _Nativ eJsSendPort)) && dart.notNull(!dart.is(replyTo, _WorkerSendPort))) { 1124 if (dart.notNull(replyTo != null) && dart.notNull(!dart.is(replyTo, _Nativ eJsSendPort)) && dart.notNull(!dart.is(replyTo, _WorkerSendPort))) {
1124 throw new core.Exception("SendPort.send: Illegal replyTo port type"); 1125 throw new core.Exception("SendPort.send: Illegal replyTo port type");
1125 } 1126 }
1126 } 1127 }
1127 } 1128 }
1128 _BaseSendPort[dart.implements] = () => [isolate.SendPort]; 1129 _BaseSendPort[dart.implements] = () => [isolate.SendPort];
1129 let _isClosed = Symbol('_isClosed'); 1130 let _isClosed = Symbol('_isClosed');
1131 let _add = Symbol('_add');
1130 class _NativeJsSendPort extends _BaseSendPort { 1132 class _NativeJsSendPort extends _BaseSendPort {
1131 _NativeJsSendPort(receivePort$, isolateId) { 1133 _NativeJsSendPort(receivePort$, isolateId) {
1132 this[_receivePort] = receivePort$; 1134 this[_receivePort] = receivePort$;
1133 super._BaseSendPort(isolateId); 1135 super._BaseSendPort(isolateId);
1134 } 1136 }
1135 send(message) { 1137 send(message) {
1136 let isolate = exports._globalState.isolates.get(this[_isolateId]); 1138 let isolate = exports._globalState.isolates.get(this[_isolateId]);
1137 if (isolate == null) 1139 if (isolate == null)
1138 return; 1140 return;
1139 if (this[_receivePort][_isClosed]) 1141 if (this[_receivePort][_isClosed])
1140 return; 1142 return;
1141 let msg = _clone(message); 1143 let msg = _clone(message);
1142 if (dart.equals(isolate.controlPort, this[_receivePort])) { 1144 if (dart.equals(isolate.controlPort, this[_receivePort])) {
1143 isolate.handleControlMessage(msg); 1145 isolate.handleControlMessage(msg);
1144 return; 1146 return;
1145 } 1147 }
1146 exports._globalState.topEventLoop.enqueue(isolate, (() => { 1148 exports._globalState.topEventLoop.enqueue(isolate, (() => {
1147 if (!dart.notNull(this[_receivePort][_isClosed])) { 1149 if (!dart.notNull(this[_receivePort][_isClosed])) {
1148 this[_receivePort]._add(msg); 1150 this[_receivePort][_add](msg);
1149 } 1151 }
1150 }).bind(this), `receive ${message}`); 1152 }).bind(this), `receive ${message}`);
1151 } 1153 }
1152 ['=='](other) { 1154 ['=='](other) {
1153 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar t.equals(this[_receivePort], dart.dload(other, '_receivePort'))); 1155 return dart.notNull(dart.is(other, _NativeJsSendPort)) && dart.notNull(dar t.equals(this[_receivePort], dart.dload(other, '_receivePort')));
1154 } 1156 }
1155 get hashCode() { 1157 get hashCode() {
1156 return this[_receivePort][_id]; 1158 return this[_receivePort][_id];
1157 } 1159 }
1158 } 1160 }
(...skipping 18 matching lines...) Expand all
1177 ['=='](other) { 1179 ['=='](other) {
1178 return dart.notNull(dart.is(other, _WorkerSendPort)) && dart.equals(this[_ workerId], dart.dload(other, '_workerId')) && dart.equals(this[_isolateId], dart .dload(other, '_isolateId')) && dart.equals(this[_receivePortId], dart.dload(oth er, '_receivePortId')); 1180 return dart.notNull(dart.is(other, _WorkerSendPort)) && dart.equals(this[_ workerId], dart.dload(other, '_workerId')) && dart.equals(this[_isolateId], dart .dload(other, '_isolateId')) && dart.equals(this[_receivePortId], dart.dload(oth er, '_receivePortId'));
1179 } 1181 }
1180 get hashCode() { 1182 get hashCode() {
1181 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId] ) << 8 ^ dart.notNull(this[_receivePortId]); 1183 return dart.notNull(this[_workerId]) << 16 ^ dart.notNull(this[_isolateId] ) << 8 ^ dart.notNull(this[_receivePortId]);
1182 } 1184 }
1183 } 1185 }
1184 _WorkerSendPort[dart.implements] = () => [isolate.SendPort]; 1186 _WorkerSendPort[dart.implements] = () => [isolate.SendPort];
1185 let _handler = Symbol('_handler'); 1187 let _handler = Symbol('_handler');
1186 let _nextFreeId = Symbol('_nextFreeId'); 1188 let _nextFreeId = Symbol('_nextFreeId');
1187 let _close = Symbol('_close');
1188 let _add = Symbol('_add');
1189 class RawReceivePortImpl extends core.Object { 1189 class RawReceivePortImpl extends core.Object {
1190 RawReceivePortImpl(handler) { 1190 RawReceivePortImpl(handler) {
1191 this[_handler] = handler; 1191 this[_handler] = handler;
1192 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) + 1, x$)(RawReceivePortImpl[_nextFreeId]); 1192 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) + 1, x$)(RawReceivePortImpl[_nextFreeId]);
1193 this[_isClosed] = false; 1193 this[_isClosed] = false;
1194 exports._globalState.currentContext.register(this[_id], this); 1194 exports._globalState.currentContext.register(this[_id], this);
1195 } 1195 }
1196 weak(handler) { 1196 weak(handler) {
1197 this[_handler] = handler; 1197 this[_handler] = handler;
1198 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) + 1, x$)(RawReceivePortImpl[_nextFreeId]); 1198 this[_id] = ((x$) => RawReceivePortImpl[_nextFreeId] = dart.notNull(x$) + 1, x$)(RawReceivePortImpl[_nextFreeId]);
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 exports.leaveJsAsync = leaveJsAsync; 1372 exports.leaveJsAsync = leaveJsAsync;
1373 exports.isWorker = isWorker; 1373 exports.isWorker = isWorker;
1374 exports.startRootIsolate = startRootIsolate; 1374 exports.startRootIsolate = startRootIsolate;
1375 exports.IsolateNatives = IsolateNatives; 1375 exports.IsolateNatives = IsolateNatives;
1376 exports.RawReceivePortImpl = RawReceivePortImpl; 1376 exports.RawReceivePortImpl = RawReceivePortImpl;
1377 exports.ReceivePortImpl = ReceivePortImpl; 1377 exports.ReceivePortImpl = ReceivePortImpl;
1378 exports.TimerImpl = TimerImpl; 1378 exports.TimerImpl = TimerImpl;
1379 exports.hasTimer = hasTimer; 1379 exports.hasTimer = hasTimer;
1380 exports.CapabilityImpl = CapabilityImpl; 1380 exports.CapabilityImpl = CapabilityImpl;
1381 })(_isolate_helper || (_isolate_helper = {})); 1381 })(_isolate_helper || (_isolate_helper = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/_internal.js ('k') | lib/runtime/dart/_js_helper.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698