Index: lib/runtime/dart/_isolate_helper.js |
diff --git a/lib/runtime/dart/_isolate_helper.js b/lib/runtime/dart/_isolate_helper.js |
index e677b60bc6db91c5790f20cea3336f92f8a61ed4..ba26ef41067c4bddf91908d9197bc49f76e1ff06 100644 |
--- a/lib/runtime/dart/_isolate_helper.js |
+++ b/lib/runtime/dart/_isolate_helper.js |
@@ -14,17 +14,17 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
'use strict'; |
let dartx = dart.dartx; |
function _serializeMessage(message) { |
- return new _Serializer().serialize(message); |
+ return dart.dcall(new _Serializer().serialize, message); |
} |
dart.fn(_serializeMessage); |
function _deserializeMessage(message) { |
- return new _Deserializer().deserialize(message); |
+ return dart.dcall(new _Deserializer().deserialize, message); |
} |
dart.fn(_deserializeMessage); |
function _clone(message) { |
let serializer = new _Serializer({serializeSendPorts: false}); |
let deserializer = new _Deserializer(); |
- return deserializer.deserialize(serializer.serialize(message)); |
+ return dart.dcall(deserializer.deserialize, dart.dcall(serializer.serialize, message)); |
} |
dart.fn(_clone); |
let _serializeSendPorts = Symbol('_serializeSendPorts'); |
@@ -40,35 +40,35 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool); |
} |
serialize(x) { |
- if (dart.notNull(this.isPrimitive(x))) |
- return this.serializePrimitive(x); |
+ if (dart.notNull(dart.dcall(this.isPrimitive, x))) |
+ return dart.dcall(this.serializePrimitive, x); |
let serializationId = this.serializedObjectIds.get(x); |
if (serializationId != null) |
- return this.makeRef(serializationId); |
+ return dart.dcall(this.makeRef, serializationId); |
serializationId = this.serializedObjectIds.length; |
this.serializedObjectIds.set(x, serializationId); |
if (dart.is(x, _native_typed_data.NativeByteBuffer)) |
- return this.serializeByteBuffer(dart.as(x, _native_typed_data.NativeByteBuffer)); |
+ return dart.dcall(this.serializeByteBuffer, x); |
if (dart.is(x, _native_typed_data.NativeTypedData)) |
- return this.serializeTypedData(dart.as(x, _native_typed_data.NativeTypedData)); |
+ return dart.dcall(this.serializeTypedData, x); |
if (dart.is(x, _interceptors.JSIndexable)) |
- return this.serializeJSIndexable(dart.as(x, _interceptors.JSIndexable)); |
+ return dart.dcall(this.serializeJSIndexable, x); |
if (dart.is(x, _js_helper.InternalMap)) |
- return this.serializeMap(dart.as(x, core.Map)); |
+ return dart.dcall(this.serializeMap, x); |
if (dart.is(x, _interceptors.JSObject)) |
- return this.serializeJSObject(dart.as(x, _interceptors.JSObject)); |
+ return dart.dcall(this.serializeJSObject, x); |
if (dart.is(x, _interceptors.Interceptor)) |
- this.unsupported(x); |
+ dart.dcall(this.unsupported, x); |
if (dart.is(x, isolate.RawReceivePort)) { |
- this.unsupported(x, "RawReceivePorts can't be transmitted:"); |
+ dart.dcall(this.unsupported, x, "RawReceivePorts can't be transmitted:"); |
} |
if (dart.is(x, _NativeJsSendPort)) |
- return this.serializeJsSendPort(dart.as(x, _NativeJsSendPort)); |
+ return dart.dcall(this.serializeJsSendPort, x); |
if (dart.is(x, _WorkerSendPort)) |
- return this.serializeWorkerSendPort(dart.as(x, _WorkerSendPort)); |
+ return dart.dcall(this.serializeWorkerSendPort, x); |
if (dart.is(x, core.Function)) |
- return this.serializeClosure(dart.as(x, core.Function)); |
- return this.serializeDartObject(x); |
+ return dart.dcall(this.serializeClosure, x); |
+ return dart.dcall(this.serializeDartObject, x); |
} |
unsupported(x, message) { |
if (message === void 0) |
@@ -94,7 +94,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
serializeJSIndexable(indexable) { |
dart.assert(!(typeof indexable == 'string')); |
- let serialized = dart.as(this.serializeArray(dart.as(indexable, _interceptors.JSArray)), core.List); |
+ let serialized = dart.as(dart.dcall(this.serializeArray, indexable), core.List); |
if (dart.is(indexable, _interceptors.JSFixedArray)) |
return ["fixed", serialized]; |
if (dart.is(indexable, _interceptors.JSExtendableArray)) |
@@ -103,36 +103,36 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return ["mutable", serialized]; |
if (dart.is(indexable, _interceptors.JSArray)) |
return ["const", serialized]; |
- this.unsupported(indexable, "Can't serialize indexable: "); |
+ dart.dcall(this.unsupported, indexable, "Can't serialize indexable: "); |
return null; |
} |
serializeArray(x) { |
let serialized = []; |
serialized[dartx.length] = x[dartx.length]; |
for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.notNull(i) + 1) { |
- serialized[dartx.set](i, this.serialize(x[dartx.get](i))); |
+ serialized[dartx.set](i, dart.dcall(this.serialize, x[dartx.get](i))); |
} |
return serialized; |
} |
serializeArrayInPlace(x) { |
for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.notNull(i) + 1) { |
- x[dartx.set](i, this.serialize(x[dartx.get](i))); |
+ x[dartx.set](i, dart.dcall(this.serialize, x[dartx.get](i))); |
} |
return x; |
} |
serializeMap(x) { |
let serializeTearOff = dart.bind(this, 'serialize'); |
- return ['map', x.keys[dartx.map](dart.as(serializeTearOff, __CastType0))[dartx.toList](), x.values[dartx.map](dart.as(serializeTearOff, dart.functionType(dart.dynamic, [dart.dynamic])))[dartx.toList]()]; |
+ return ['map', dart.dcall(dart.dcall(x.keys[dartx.map], serializeTearOff)[dartx.toList]), dart.dcall(dart.dcall(x.values[dartx.map], serializeTearOff)[dartx.toList])]; |
} |
serializeJSObject(x) { |
- if (!!x.constructor && x.constructor !== Object) { |
- this.unsupported(x, "Only plain JS Objects are supported:"); |
+ if (dart.notNull(dart.as(!!x.constructor, core.bool)) && dart.notNull(dart.as(x.constructor !== Object, core.bool))) { |
+ dart.dcall(this.unsupported, x, "Only plain JS Objects are supported:"); |
} |
let keys = dart.as(Object.keys(x), core.List); |
let values = []; |
values[dartx.length] = keys[dartx.length]; |
for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = dart.notNull(i) + 1) { |
- values[dartx.set](i, this.serialize(x[keys[dartx.get](i)])); |
+ values[dartx.set](i, dart.dcall(this.serialize, x[keys[dartx.get](i)])); |
} |
return ['js-object', keys, values]; |
} |
@@ -153,18 +153,18 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return ['capability', x[_id]]; |
} |
serializeClosure(x) { |
- let name = IsolateNatives._getJSFunctionName(x); |
+ let name = dart.dcall(IsolateNatives._getJSFunctionName, x); |
if (name == null) { |
- this.unsupported(x, "Closures can't be transmitted:"); |
+ dart.dcall(this.unsupported, x, "Closures can't be transmitted:"); |
} |
return ['function', name]; |
} |
serializeDartObject(x) { |
- let classExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_ID_EXTRACTOR); |
- let fieldsExtractor = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.CLASS_FIELDS_EXTRACTOR); |
- let classId = classExtractor(x); |
+ let classExtractor = dart.dcall(_foreign_helper.JS_EMBEDDED_GLOBAL, '', _js_embedded_names.CLASS_ID_EXTRACTOR); |
+ let fieldsExtractor = dart.dcall(_foreign_helper.JS_EMBEDDED_GLOBAL, '', _js_embedded_names.CLASS_FIELDS_EXTRACTOR); |
+ let classId = dart.as(classExtractor(x), core.String); |
let fields = dart.as(fieldsExtractor(x), core.List); |
- return ['dart', classId, this.serializeArrayInPlace(dart.as(fields, _interceptors.JSArray))]; |
+ return ['dart', classId, dart.dcall(this.serializeArrayInPlace, fields)]; |
} |
} |
dart.setSignature(_Serializer, { |
@@ -197,62 +197,62 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool); |
} |
deserialize(x) { |
- if (dart.notNull(this.isPrimitive(x))) |
- return this.deserializePrimitive(x); |
+ if (dart.notNull(dart.dcall(this.isPrimitive, x))) |
+ return dart.dcall(this.deserializePrimitive, x); |
if (!dart.is(x, _interceptors.JSArray)) |
dart.throw(new core.ArgumentError(`Bad serialized message: ${x}`)); |
switch (dart.dload(x, 'first')) { |
case "ref": |
{ |
- return this.deserializeRef(x); |
+ return dart.dcall(this.deserializeRef, x); |
} |
case "buffer": |
{ |
- return this.deserializeByteBuffer(x); |
+ return dart.dcall(this.deserializeByteBuffer, x); |
} |
case "typed": |
{ |
- return this.deserializeTypedData(x); |
+ return dart.dcall(this.deserializeTypedData, x); |
} |
case "fixed": |
{ |
- return this.deserializeFixed(x); |
+ return dart.dcall(this.deserializeFixed, x); |
} |
case "extendable": |
{ |
- return this.deserializeExtendable(x); |
+ return dart.dcall(this.deserializeExtendable, x); |
} |
case "mutable": |
{ |
- return this.deserializeMutable(x); |
+ return dart.dcall(this.deserializeMutable, x); |
} |
case "const": |
{ |
- return this.deserializeConst(x); |
+ return dart.dcall(this.deserializeConst, x); |
} |
case "map": |
{ |
- return this.deserializeMap(x); |
+ return dart.dcall(this.deserializeMap, x); |
} |
case "sendport": |
{ |
- return this.deserializeSendPort(x); |
+ return dart.dcall(this.deserializeSendPort, x); |
} |
case "raw sendport": |
{ |
- return this.deserializeRawSendPort(x); |
+ return dart.dcall(this.deserializeRawSendPort, x); |
} |
case "js-object": |
{ |
- return this.deserializeJSObject(x); |
+ return dart.dcall(this.deserializeJSObject, x); |
} |
case "function": |
{ |
- return this.deserializeClosure(x); |
+ return dart.dcall(this.deserializeClosure, x); |
} |
case "dart": |
{ |
- return this.deserializeDartObject(x); |
+ return dart.dcall(this.deserializeDartObject, x); |
} |
default: |
{ |
@@ -274,54 +274,54 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
deserializeByteBuffer(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'buffer')); |
let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeByteBuffer); |
- this.deserializedObjects[dartx.add](result); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
return result; |
} |
deserializeTypedData(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'typed')); |
let result = dart.as(dart.dindex(x, 1), _native_typed_data.NativeTypedData); |
- this.deserializedObjects[dartx.add](result); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
return result; |
} |
deserializeArrayInPlace(x) { |
for (let i = 0; dart.notNull(i) < dart.notNull(x[dartx.length]); i = dart.notNull(i) + 1) { |
- x[dartx.set](i, this.deserialize(x[dartx.get](i))); |
+ x[dartx.set](i, dart.dcall(this.deserialize, x[dartx.get](i))); |
} |
return x; |
} |
deserializeFixed(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'fixed')); |
let result = dart.as(dart.dindex(x, 1), core.List); |
- this.deserializedObjects[dartx.add](result); |
- return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray))); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
+ return _interceptors.JSArray.markFixed(dart.dcall(this.deserializeArrayInPlace, result)); |
} |
deserializeExtendable(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'extendable')); |
let result = dart.as(dart.dindex(x, 1), core.List); |
- this.deserializedObjects[dartx.add](result); |
- return _interceptors.JSArray.markGrowable(this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray))); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
+ return _interceptors.JSArray.markGrowable(dart.dcall(this.deserializeArrayInPlace, result)); |
} |
deserializeMutable(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'mutable')); |
let result = dart.as(dart.dindex(x, 1), core.List); |
- this.deserializedObjects[dartx.add](result); |
- return this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray)); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
+ return dart.dcall(this.deserializeArrayInPlace, result); |
} |
deserializeConst(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'const')); |
let result = dart.as(dart.dindex(x, 1), core.List); |
- this.deserializedObjects[dartx.add](result); |
- return _interceptors.JSArray.markFixed(this.deserializeArrayInPlace(dart.as(result, _interceptors.JSArray))); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
+ return _interceptors.JSArray.markFixed(dart.dcall(this.deserializeArrayInPlace, result)); |
} |
deserializeMap(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'map')); |
let keys = dart.as(dart.dindex(x, 1), core.List); |
let values = dart.as(dart.dindex(x, 2), core.List); |
let result = dart.map(); |
- this.deserializedObjects[dartx.add](result); |
- keys = keys[dartx.map](dart.bind(this, 'deserialize'))[dartx.toList](); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
+ keys = dart.dcall(dart.dcall(keys[dartx.map], dart.bind(this, 'deserialize'))[dartx.toList]); |
for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = dart.notNull(i) + 1) { |
- result.set(keys[dartx.get](i), this.deserialize(values[dartx.get](i))); |
+ result.set(keys[dartx.get](i), dart.dcall(this.deserialize, values[dartx.get](i))); |
} |
return result; |
} |
@@ -335,20 +335,20 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
let isolate = exports._globalState.isolates.get(isolateId); |
if (isolate == null) |
return null; |
- let receivePort = isolate.lookup(receivePortId); |
+ let receivePort = dart.dsend(isolate, 'lookup', receivePortId); |
if (receivePort == null) |
return null; |
- result = new _NativeJsSendPort(receivePort, isolateId); |
+ result = new _NativeJsSendPort(dart.as(receivePort, RawReceivePortImpl), isolateId); |
} else { |
result = new _WorkerSendPort(managerId, isolateId, receivePortId); |
} |
- this.deserializedObjects[dartx.add](result); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
return result; |
} |
deserializeRawSendPort(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'raw sendport')); |
let result = dart.as(dart.dindex(x, 1), isolate.SendPort); |
- this.deserializedObjects[dartx.add](result); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
return result; |
} |
deserializeJSObject(x) { |
@@ -356,28 +356,28 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
let keys = dart.as(dart.dindex(x, 1), core.List); |
let values = dart.as(dart.dindex(x, 2), core.List); |
let o = {}; |
- this.deserializedObjects[dartx.add](o); |
+ dart.dcall(this.deserializedObjects[dartx.add], o); |
for (let i = 0; dart.notNull(i) < dart.notNull(keys[dartx.length]); i = dart.notNull(i) + 1) { |
- o[keys[dartx.get](i)] = this.deserialize(values[dartx.get](i)); |
+ o[keys[dartx.get](i)] = dart.dcall(this.deserialize, values[dartx.get](i)); |
} |
return o; |
} |
deserializeClosure(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'function')); |
let name = dart.as(dart.dindex(x, 1), core.String); |
- let result = dart.as(IsolateNatives._getJSFunctionFromName(name), core.Function); |
- this.deserializedObjects[dartx.add](result); |
+ let result = dart.as(dart.dcall(IsolateNatives._getJSFunctionFromName, name), core.Function); |
+ dart.dcall(this.deserializedObjects[dartx.add], result); |
return result; |
} |
deserializeDartObject(x) { |
dart.assert(dart.equals(dart.dindex(x, 0), 'dart')); |
let classId = dart.as(dart.dindex(x, 1), core.String); |
let fields = dart.as(dart.dindex(x, 2), core.List); |
- let instanceFromClassId = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INSTANCE_FROM_CLASS_ID); |
- let initializeObject = _foreign_helper.JS_EMBEDDED_GLOBAL('', _js_embedded_names.INITIALIZE_EMPTY_INSTANCE); |
+ let instanceFromClassId = dart.dcall(_foreign_helper.JS_EMBEDDED_GLOBAL, '', _js_embedded_names.INSTANCE_FROM_CLASS_ID); |
+ let initializeObject = dart.dcall(_foreign_helper.JS_EMBEDDED_GLOBAL, '', _js_embedded_names.INITIALIZE_EMPTY_INSTANCE); |
let emptyInstance = instanceFromClassId(classId); |
- this.deserializedObjects[dartx.add](emptyInstance); |
- this.deserializeArrayInPlace(dart.as(fields, _interceptors.JSArray)); |
+ dart.dcall(this.deserializedObjects[dartx.add], emptyInstance); |
+ dart.dcall(this.deserializeArrayInPlace, fields); |
return initializeObject(classId, emptyInstance, fields); |
} |
} |
@@ -403,10 +403,9 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
deserializeDartObject: [dart.dynamic, [dart.dynamic]] |
}) |
}); |
- let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(dart.dynamic, [dart.dynamic])); |
function _callInIsolate(isolate, func) { |
- let result = isolate.eval(func); |
- exports._globalState.topEventLoop.run(); |
+ let result = dart.dcall(isolate.eval, func); |
+ dart.dcall(exports._globalState.topEventLoop.run); |
return result; |
} |
dart.fn(_callInIsolate, () => dart.definiteFunctionType(dart.dynamic, [_IsolateContext, core.Function])); |
@@ -441,20 +440,20 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
if (dart.notNull(exports._globalState.isWorker)) |
return; |
let rootContext = new _IsolateContext(); |
- exports._globalState.rootContext = rootContext; |
- exports._globalState.currentContext = rootContext; |
+ exports._globalState.rootContext = dart.as(rootContext, _IsolateContext); |
+ exports._globalState.currentContext = dart.as(rootContext, _IsolateContext); |
if (dart.is(entry, _MainFunctionArgs)) { |
- rootContext.eval(dart.fn(() => { |
+ dart.dsend(rootContext, 'eval', dart.fn(() => { |
dart.dcall(entry, args); |
})); |
} else if (dart.is(entry, _MainFunctionArgsMessage)) { |
- rootContext.eval(dart.fn(() => { |
+ dart.dsend(rootContext, 'eval', dart.fn(() => { |
dart.dcall(entry, args, null); |
})); |
} else { |
- rootContext.eval(dart.as(entry, core.Function)); |
+ dart.dsend(rootContext, 'eval', entry); |
} |
- exports._globalState.topEventLoop.run(); |
+ dart.dcall(exports._globalState.topEventLoop.run); |
} |
dart.fn(startRootIsolate, dart.void, [dart.dynamic, dart.dynamic]); |
dart.copyProperties(exports, { |
@@ -485,13 +484,13 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this.isolates = null; |
this.mainManager = null; |
this.managers = null; |
- this[_nativeDetectEnvironment](); |
+ dart.dcall(this[_nativeDetectEnvironment]); |
this.topEventLoop = new _EventLoop(); |
this.isolates = core.Map$(core.int, _IsolateContext).new(); |
this.managers = core.Map$(core.int, dart.dynamic).new(); |
if (dart.notNull(this.isWorker)) { |
this.mainManager = new _MainManagerStub(); |
- this[_nativeInitWorkerMessageHandler](); |
+ dart.dcall(this[_nativeInitWorkerMessageHandler]); |
} |
} |
[_nativeDetectEnvironment]() { |
@@ -519,11 +518,11 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
})(_Manager._serializePrintMessage); |
} |
static _serializePrintMessage(object) { |
- return _serializeMessage(dart.map({command: "print", msg: object})); |
+ return dart.dcall(_serializeMessage, dart.map({command: "print", msg: object})); |
} |
maybeCloseWorker() { |
if (dart.notNull(this.isWorker) && dart.notNull(this.isolates.isEmpty) && this.topEventLoop[_activeJsAsyncCount] == 0) { |
- this.mainManager.postMessage(_serializeMessage(dart.map({command: 'close'}))); |
+ dart.dcall(this.mainManager.postMessage, dart.dcall(_serializeMessage, dart.map({command: 'close'}))); |
} |
} |
} |
@@ -552,7 +551,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
})(); |
this.ports = core.Map$(core.int, RawReceivePortImpl).new(); |
this.weakPorts = core.Set$(core.int).new(); |
- this.isolateStatics = _foreign_helper.JS_CREATE_ISOLATE(); |
+ this.isolateStatics = dart.dcall(_foreign_helper.JS_CREATE_ISOLATE); |
this.controlPort = new RawReceivePortImpl._controlPort(); |
this.pauseCapability = isolate.Capability.new(); |
this.terminateCapability = isolate.Capability.new(); |
@@ -565,28 +564,28 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_scheduledControlEvents] = null; |
this[_isExecutingEvent] = false; |
this.errorsAreFatal = true; |
- this.registerWeak(this.controlPort[_id], this.controlPort); |
+ dart.dcall(this.registerWeak, this.controlPort[_id], this.controlPort); |
} |
addPause(authentification, resume) { |
if (!dart.equals(this.pauseCapability, authentification)) |
return; |
- if (dart.notNull(this.pauseTokens.add(resume)) && !dart.notNull(this.isPaused)) { |
+ if (dart.notNull(dart.dcall(this.pauseTokens.add, resume)) && !dart.notNull(this.isPaused)) { |
this.isPaused = true; |
} |
- this[_updateGlobalState](); |
+ dart.dcall(this[_updateGlobalState]); |
} |
removePause(resume) { |
if (!dart.notNull(this.isPaused)) |
return; |
- this.pauseTokens.remove(resume); |
+ dart.dcall(this.pauseTokens.remove, resume); |
if (dart.notNull(this.pauseTokens.isEmpty)) { |
while (dart.notNull(this.delayedEvents[dartx.isNotEmpty])) { |
- let event = this.delayedEvents[dartx.removeLast](); |
- exports._globalState.topEventLoop.prequeue(event); |
+ let event = dart.dcall(this.delayedEvents[dartx.removeLast]); |
+ dart.dcall(exports._globalState.topEventLoop.prequeue, event); |
} |
this.isPaused = false; |
} |
- this[_updateGlobalState](); |
+ dart.dcall(this[_updateGlobalState]); |
} |
addDoneListener(responsePort) { |
if (this.doneHandlers == null) { |
@@ -608,15 +607,15 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
handlePing(responsePort, pingType) { |
if (pingType == isolate.Isolate.IMMEDIATE || pingType == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) { |
- responsePort.send(null); |
+ dart.dcall(responsePort.send, null); |
return; |
} |
function respond() { |
- responsePort.send(null); |
+ dart.dcall(responsePort.send, null); |
} |
dart.fn(respond, dart.void, []); |
if (pingType == isolate.Isolate.AS_EVENT) { |
- exports._globalState.topEventLoop.enqueue(this, respond, "ping"); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, this, respond, "ping"); |
return; |
} |
dart.assert(pingType == isolate.Isolate.BEFORE_NEXT_EVENT); |
@@ -629,11 +628,11 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
if (!dart.equals(this.terminateCapability, authentification)) |
return; |
if (priority == isolate.Isolate.IMMEDIATE || priority == isolate.Isolate.BEFORE_NEXT_EVENT && !dart.notNull(this[_isExecutingEvent])) { |
- this.kill(); |
+ dart.dcall(this.kill); |
return; |
} |
if (priority == isolate.Isolate.AS_EVENT) { |
- exports._globalState.topEventLoop.enqueue(this, dart.bind(this, 'kill'), "kill"); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, this, dart.bind(this, 'kill'), "kill"); |
return; |
} |
dart.assert(priority == isolate.Isolate.BEFORE_NEXT_EVENT); |
@@ -643,54 +642,54 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
dart.dsend(this[_scheduledControlEvents], 'addLast', dart.bind(this, 'kill')); |
} |
addErrorListener(port) { |
- this.errorPorts.add(port); |
+ dart.dcall(this.errorPorts.add, port); |
} |
removeErrorListener(port) { |
- this.errorPorts.remove(port); |
+ dart.dcall(this.errorPorts.remove, port); |
} |
handleUncaughtError(error, stackTrace) { |
if (dart.notNull(this.errorPorts.isEmpty)) { |
- if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(this, exports._globalState.rootContext))) { |
+ if (dart.notNull(this.errorsAreFatal) && dart.notNull(dart.dcall(core.identical, this, exports._globalState.rootContext))) { |
return; |
} |
- if (self.console && self.console.error) { |
+ if (dart.notNull(dart.as(self.console && self.console.error, core.bool))) { |
self.console.error(error, stackTrace); |
} else { |
- core.print(error); |
+ dart.dcall(core.print, error); |
if (stackTrace != null) |
- core.print(stackTrace); |
+ dart.dcall(core.print, stackTrace); |
} |
return; |
} |
let message = core.List.new(2); |
- message[dartx.set](0, dart.toString(error)); |
- message[dartx.set](1, stackTrace == null ? null : dart.toString(stackTrace)); |
+ message[dartx.set](0, dart.dsend(error, 'toString')); |
+ message[dartx.set](1, stackTrace == null ? null : dart.dcall(stackTrace.toString)); |
for (let port of this.errorPorts) |
- port.send(message); |
+ dart.dcall(port.send, message); |
} |
eval(code) { |
let old = exports._globalState.currentContext; |
exports._globalState.currentContext = this; |
- this[_setGlobals](); |
+ dart.dcall(this[_setGlobals]); |
let result = null; |
this[_isExecutingEvent] = true; |
try { |
result = dart.dcall(code); |
} catch (e) { |
let s = dart.stackTrace(e); |
- this.handleUncaughtError(e, s); |
+ dart.dcall(this.handleUncaughtError, e, s); |
if (dart.notNull(this.errorsAreFatal)) { |
- this.kill(); |
- if (dart.notNull(core.identical(this, exports._globalState.rootContext))) { |
+ dart.dcall(this.kill); |
+ if (dart.notNull(dart.dcall(core.identical, this, exports._globalState.rootContext))) { |
throw e; |
} |
} |
} |
finally { |
this[_isExecutingEvent] = false; |
- exports._globalState.currentContext = old; |
+ exports._globalState.currentContext = dart.as(old, _IsolateContext); |
if (old != null) |
- old[_setGlobals](); |
+ dart.dsend(old, _setGlobals); |
if (this[_scheduledControlEvents] != null) { |
while (dart.notNull(dart.as(dart.dload(this[_scheduledControlEvents], 'isNotEmpty'), core.bool))) { |
dart.dcall(dart.dsend(this[_scheduledControlEvents], 'removeFirst')); |
@@ -700,53 +699,53 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return result; |
} |
[_setGlobals]() { |
- _foreign_helper.JS_SET_CURRENT_ISOLATE(this.isolateStatics); |
+ dart.dcall(_foreign_helper.JS_SET_CURRENT_ISOLATE, this.isolateStatics); |
} |
handleControlMessage(message) { |
switch (dart.dindex(message, 0)) { |
case "pause": |
{ |
- this.addPause(dart.as(dart.dindex(message, 1), isolate.Capability), dart.as(dart.dindex(message, 2), isolate.Capability)); |
+ dart.dcall(this.addPause, dart.dindex(message, 1), dart.dindex(message, 2)); |
break; |
} |
case "resume": |
{ |
- this.removePause(dart.as(dart.dindex(message, 1), isolate.Capability)); |
+ dart.dcall(this.removePause, dart.dindex(message, 1)); |
break; |
} |
case 'add-ondone': |
{ |
- this.addDoneListener(dart.as(dart.dindex(message, 1), isolate.SendPort)); |
+ dart.dcall(this.addDoneListener, dart.dindex(message, 1)); |
break; |
} |
case 'remove-ondone': |
{ |
- this.removeDoneListener(dart.as(dart.dindex(message, 1), isolate.SendPort)); |
+ dart.dcall(this.removeDoneListener, dart.dindex(message, 1)); |
break; |
} |
case 'set-errors-fatal': |
{ |
- this.setErrorsFatal(dart.as(dart.dindex(message, 1), isolate.Capability), dart.as(dart.dindex(message, 2), core.bool)); |
+ dart.dcall(this.setErrorsFatal, dart.dindex(message, 1), dart.dindex(message, 2)); |
break; |
} |
case "ping": |
{ |
- this.handlePing(dart.as(dart.dindex(message, 1), isolate.SendPort), dart.as(dart.dindex(message, 2), core.int)); |
+ dart.dcall(this.handlePing, dart.dindex(message, 1), dart.dindex(message, 2)); |
break; |
} |
case "kill": |
{ |
- this.handleKill(dart.as(dart.dindex(message, 1), isolate.Capability), dart.as(dart.dindex(message, 2), core.int)); |
+ dart.dcall(this.handleKill, dart.dindex(message, 1), dart.dindex(message, 2)); |
break; |
} |
case "getErrors": |
{ |
- this.addErrorListener(dart.as(dart.dindex(message, 1), isolate.SendPort)); |
+ dart.dcall(this.addErrorListener, dart.dindex(message, 1)); |
break; |
} |
case "stopErrors": |
{ |
- this.removeErrorListener(dart.as(dart.dindex(message, 1), isolate.SendPort)); |
+ dart.dcall(this.removeErrorListener, dart.dindex(message, 1)); |
break; |
} |
default: |
@@ -756,24 +755,24 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return this.ports.get(portId); |
} |
[_addRegistration](portId, port) { |
- if (dart.notNull(this.ports.containsKey(portId))) { |
+ if (dart.notNull(dart.dcall(this.ports.containsKey, portId))) { |
dart.throw(core.Exception.new("Registry: ports must be registered only once.")); |
} |
this.ports.set(portId, port); |
} |
register(portId, port) { |
- this[_addRegistration](portId, port); |
- this[_updateGlobalState](); |
+ dart.dcall(this[_addRegistration], portId, port); |
+ dart.dcall(this[_updateGlobalState]); |
} |
registerWeak(portId, port) { |
- this.weakPorts.add(portId); |
- this[_addRegistration](portId, port); |
+ dart.dcall(this.weakPorts.add, portId); |
+ dart.dcall(this[_addRegistration], portId, port); |
} |
[_updateGlobalState]() { |
if (dart.notNull(this.ports.length) - dart.notNull(this.weakPorts.length) > 0 || dart.notNull(this.isPaused) || !dart.notNull(this.initialized)) { |
exports._globalState.isolates.set(this.id, this); |
} else { |
- this.kill(); |
+ dart.dcall(this.kill); |
} |
} |
kill() { |
@@ -781,23 +780,23 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
dart.dsend(this[_scheduledControlEvents], 'clear'); |
} |
for (let port of this.ports.values) { |
- port[_close](); |
+ dart.dsend(port, _close); |
} |
- this.ports.clear(); |
- this.weakPorts.clear(); |
- exports._globalState.isolates.remove(this.id); |
- this.errorPorts.clear(); |
+ dart.dcall(this.ports.clear); |
+ dart.dcall(this.weakPorts.clear); |
+ dart.dcall(exports._globalState.isolates.remove, this.id); |
+ dart.dcall(this.errorPorts.clear); |
if (this.doneHandlers != null) { |
for (let port of dart.as(this.doneHandlers, core.Iterable$(isolate.SendPort))) { |
- port.send(null); |
+ dart.dcall(port.send, null); |
} |
this.doneHandlers = null; |
} |
} |
unregister(portId) { |
- this.ports.remove(portId); |
- this.weakPorts.remove(portId); |
- this[_updateGlobalState](); |
+ dart.dcall(this.ports.remove, portId); |
+ dart.dcall(this.weakPorts.remove, portId); |
+ dart.dcall(this[_updateGlobalState]); |
} |
} |
_IsolateContext[dart.implements] = () => [_foreign_helper.IsolateContext]; |
@@ -833,54 +832,54 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_activeJsAsyncCount] = 0; |
} |
enqueue(isolate, fn, msg) { |
- this.events.addLast(new _IsolateEvent(dart.as(isolate, _IsolateContext), dart.as(fn, core.Function), dart.as(msg, core.String))); |
+ dart.dcall(this.events.addLast, new _IsolateEvent(dart.as(isolate, _IsolateContext), dart.as(fn, core.Function), dart.as(msg, core.String))); |
} |
prequeue(event) { |
- this.events.addFirst(event); |
+ dart.dcall(this.events.addFirst, event); |
} |
dequeue() { |
if (dart.notNull(this.events.isEmpty)) |
return null; |
- return this.events.removeFirst(); |
+ return dart.dcall(this.events.removeFirst); |
} |
checkOpenReceivePortsFromCommandLine() { |
- if (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)) { |
+ if (exports._globalState.rootContext != null && dart.notNull(dart.dcall(exports._globalState.isolates.containsKey, exports._globalState.rootContext.id)) && dart.notNull(exports._globalState.fromCommandLine) && dart.notNull(exports._globalState.rootContext.ports.isEmpty)) { |
dart.throw(core.Exception.new("Program exited with open ReceivePorts.")); |
} |
} |
runIteration() { |
- let event = this.dequeue(); |
+ let event = dart.dcall(this.dequeue); |
if (event == null) { |
- this.checkOpenReceivePortsFromCommandLine(); |
- exports._globalState.maybeCloseWorker(); |
+ dart.dcall(this.checkOpenReceivePortsFromCommandLine); |
+ dart.dcall(exports._globalState.maybeCloseWorker); |
return false; |
} |
- event.process(); |
+ dart.dsend(event, 'process'); |
return true; |
} |
[_runHelper]() { |
if (exports.globalWindow != null) { |
let next = (function() { |
- if (!dart.notNull(this.runIteration())) |
+ if (!dart.notNull(dart.dcall(this.runIteration))) |
return; |
- async.Timer.run(next); |
+ dart.dcall(async.Timer.run, next); |
}).bind(this); |
dart.fn(next); |
- next(); |
+ dart.dcall(next); |
} else { |
- while (dart.notNull(this.runIteration())) { |
+ while (dart.notNull(dart.dcall(this.runIteration))) { |
} |
} |
} |
run() { |
if (!dart.notNull(exports._globalState.isWorker)) { |
- this[_runHelper](); |
+ dart.dcall(this[_runHelper]); |
} else { |
try { |
- this[_runHelper](); |
+ dart.dcall(this[_runHelper]); |
} catch (e) { |
let trace = dart.stackTrace(e); |
- exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'error', msg: `${e}\n${trace}`}))); |
+ dart.dcall(exports._globalState.mainManager.postMessage, dart.dcall(_serializeMessage, dart.map({command: 'error', msg: `${e}\n${trace}`}))); |
} |
} |
@@ -906,10 +905,10 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
process() { |
if (dart.notNull(this.isolate.isPaused)) { |
- this.isolate.delayedEvents[dartx.add](this); |
+ dart.dcall(this.isolate.delayedEvents[dartx.add], this); |
return; |
} |
- this.isolate.eval(this.fn); |
+ dart.dcall(this.isolate.eval, this.fn); |
} |
} |
dart.setSignature(_IsolateEvent, { |
@@ -939,7 +938,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return exports._global.Worker; |
}, |
get globalPostMessageDefined() { |
- return !!exports._global.postMessage; |
+ return dart.as(!!exports._global.postMessage, core.bool); |
} |
}); |
let _MainFunction = dart.typedef('_MainFunction', () => dart.functionType(dart.dynamic, [])); |
@@ -949,14 +948,14 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
static computeThisScript() { |
let currentScript = document.currentScript; |
if (currentScript != null) { |
- return String(currentScript.src); |
+ return dart.as(String(currentScript.src), core.String); |
} |
if (dart.notNull(_js_helper.Primitives.isD8)) |
- return IsolateNatives.computeThisScriptD8(); |
+ return dart.dcall(IsolateNatives.computeThisScriptD8); |
if (dart.notNull(_js_helper.Primitives.isJsshell)) |
- return IsolateNatives.computeThisScriptJsshell(); |
+ return dart.dcall(IsolateNatives.computeThisScriptJsshell); |
if (exports._globalState != null && dart.notNull(exports._globalState.isWorker)) { |
- return IsolateNatives.computeThisScriptFromTrace(); |
+ return dart.dcall(IsolateNatives.computeThisScriptFromTrace); |
} |
return null; |
} |
@@ -964,7 +963,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return dart.as(thisFilename(), core.String); |
} |
static computeThisScriptD8() { |
- return IsolateNatives.computeThisScriptFromTrace(); |
+ return dart.dcall(IsolateNatives.computeThisScriptFromTrace); |
} |
static computeThisScriptFromTrace() { |
let stack = new Error().stack; |
@@ -984,41 +983,41 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
pattern = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m"); |
matches = stack.match(pattern); |
if (matches != null) |
- return matches[1]; |
+ return dart.as(matches[1], core.String); |
pattern = new RegExp("^[^@]*@(.*):[0-9]*$", "m"); |
matches = stack.match(pattern); |
if (matches != null) |
- return matches[1]; |
+ return dart.as(matches[1], core.String); |
dart.throw(new core.UnsupportedError(`Cannot extract URI from "${stack}"`)); |
} |
static _getEventData(e) { |
return e.data; |
} |
static _processWorkerMessage(sender, e) { |
- let msg = _deserializeMessage(IsolateNatives._getEventData(e)); |
+ let msg = dart.dcall(_deserializeMessage, dart.dcall(IsolateNatives._getEventData, e)); |
switch (dart.dindex(msg, 'command')) { |
case 'start': |
{ |
exports._globalState.currentManagerId = dart.as(dart.dindex(msg, 'id'), core.int); |
let functionName = dart.as(dart.dindex(msg, 'functionName'), core.String); |
- let entryPoint = functionName == null ? exports._globalState.entry : dart.as(IsolateNatives._getJSFunctionFromName(functionName), core.Function); |
+ let entryPoint = functionName == null ? exports._globalState.entry : dart.as(dart.dcall(IsolateNatives._getJSFunctionFromName, functionName), core.Function); |
let args = dart.dindex(msg, 'args'); |
- let message = _deserializeMessage(dart.dindex(msg, 'msg')); |
+ let message = dart.dcall(_deserializeMessage, dart.dindex(msg, 'msg')); |
let isSpawnUri = dart.dindex(msg, 'isSpawnUri'); |
let startPaused = dart.dindex(msg, 'startPaused'); |
- let replyTo = _deserializeMessage(dart.dindex(msg, 'replyTo')); |
+ let replyTo = dart.dcall(_deserializeMessage, dart.dindex(msg, 'replyTo')); |
let context = new _IsolateContext(); |
- exports._globalState.topEventLoop.enqueue(context, dart.fn(() => { |
- IsolateNatives._startIsolate(entryPoint, dart.as(args, core.List$(core.String)), message, dart.as(isSpawnUri, core.bool), dart.as(startPaused, core.bool), dart.as(replyTo, isolate.SendPort)); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, context, dart.fn(() => { |
+ dart.dcall(IsolateNatives._startIsolate, entryPoint, args, message, isSpawnUri, startPaused, replyTo); |
}), 'worker-start'); |
- exports._globalState.currentContext = context; |
- exports._globalState.topEventLoop.run(); |
+ exports._globalState.currentContext = dart.as(context, _IsolateContext); |
+ dart.dcall(exports._globalState.topEventLoop.run); |
break; |
} |
case 'spawn-worker': |
{ |
if (IsolateNatives.enableSpawnWorker != null) |
- IsolateNatives.handleSpawnWorkerRequest(msg); |
+ dart.dcall(IsolateNatives.handleSpawnWorkerRequest, msg); |
break; |
} |
case 'message': |
@@ -1027,27 +1026,27 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
if (port != null) { |
dart.dsend(dart.dindex(msg, 'port'), 'send', dart.dindex(msg, 'msg')); |
} |
- exports._globalState.topEventLoop.run(); |
+ dart.dcall(exports._globalState.topEventLoop.run); |
break; |
} |
case 'close': |
{ |
- exports._globalState.managers.remove(IsolateNatives.workerIds.get(sender)); |
+ dart.dcall(exports._globalState.managers.remove, IsolateNatives.workerIds.get(sender)); |
sender.terminate(); |
- exports._globalState.topEventLoop.run(); |
+ dart.dcall(exports._globalState.topEventLoop.run); |
break; |
} |
case 'log': |
{ |
- IsolateNatives._log(dart.dindex(msg, 'msg')); |
+ dart.dcall(IsolateNatives._log, dart.dindex(msg, 'msg')); |
break; |
} |
case 'print': |
{ |
if (dart.notNull(exports._globalState.isWorker)) { |
- exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'print', msg: msg}))); |
+ dart.dcall(exports._globalState.mainManager.postMessage, dart.dcall(_serializeMessage, dart.map({command: 'print', msg: msg}))); |
} else { |
- core.print(dart.dindex(msg, 'msg')); |
+ dart.dcall(core.print, dart.dindex(msg, 'msg')); |
} |
break; |
} |
@@ -1059,7 +1058,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
static handleSpawnWorkerRequest(msg) { |
let replyPort = dart.dindex(msg, 'replyPort'); |
- IsolateNatives.spawn(dart.as(dart.dindex(msg, 'functionName'), core.String), dart.as(dart.dindex(msg, 'uri'), core.String), dart.as(dart.dindex(msg, 'args'), core.List$(core.String)), dart.dindex(msg, 'msg'), false, dart.as(dart.dindex(msg, 'isSpawnUri'), core.bool), dart.as(dart.dindex(msg, 'startPaused'), core.bool)).then(dart.fn(msg => { |
+ dart.dcall(dart.dcall(IsolateNatives.spawn, dart.dindex(msg, 'functionName'), dart.dindex(msg, 'uri'), dart.dindex(msg, 'args'), dart.dindex(msg, 'msg'), false, dart.dindex(msg, 'isSpawnUri'), dart.dindex(msg, 'startPaused')).then, dart.fn(msg => { |
dart.dsend(replyPort, 'send', msg); |
}), {onError: dart.fn(errorMessage => { |
dart.dsend(replyPort, 'send', [_SPAWN_FAILED_SIGNAL, errorMessage]); |
@@ -1067,10 +1066,10 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
static _log(msg) { |
if (dart.notNull(exports._globalState.isWorker)) { |
- exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'log', msg: msg}))); |
+ dart.dcall(exports._globalState.mainManager.postMessage, dart.dcall(_serializeMessage, dart.map({command: 'log', msg: msg}))); |
} else { |
try { |
- IsolateNatives._consoleLog(msg); |
+ dart.dcall(IsolateNatives._consoleLog, msg); |
} catch (e) { |
let trace = dart.stackTrace(e); |
dart.throw(core.Exception.new(trace)); |
@@ -1082,7 +1081,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
self.console.log(msg); |
} |
static _getJSFunctionFromName(functionName) { |
- let globalFunctionsContainer = _foreign_helper.JS_EMBEDDED_GLOBAL("", _js_embedded_names.GLOBAL_FUNCTIONS); |
+ let globalFunctionsContainer = dart.dcall(_foreign_helper.JS_EMBEDDED_GLOBAL, "", _js_embedded_names.GLOBAL_FUNCTIONS); |
return globalFunctionsContainer[functionName](); |
} |
static _getJSFunctionName(f) { |
@@ -1093,39 +1092,39 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
static spawnFunction(topLevelFunction, message, startPaused) { |
IsolateNatives.enableSpawnWorker = true; |
- let name = IsolateNatives._getJSFunctionName(topLevelFunction); |
+ let name = dart.dcall(IsolateNatives._getJSFunctionName, topLevelFunction); |
if (name == null) { |
dart.throw(new core.UnsupportedError("only top-level functions can be spawned.")); |
} |
let isLight = false; |
let isSpawnUri = false; |
- return IsolateNatives.spawn(name, null, null, message, isLight, isSpawnUri, startPaused); |
+ return dart.dcall(IsolateNatives.spawn, name, null, null, message, isLight, isSpawnUri, startPaused); |
} |
static spawnUri(uri, args, message, startPaused) { |
IsolateNatives.enableSpawnWorker = true; |
let isLight = false; |
let isSpawnUri = true; |
- return IsolateNatives.spawn(null, dart.toString(uri), args, message, isLight, isSpawnUri, startPaused); |
+ return dart.dcall(IsolateNatives.spawn, null, dart.dcall(uri.toString), args, message, isLight, isSpawnUri, startPaused); |
} |
static spawn(functionName, uri, args, message, isLight, isSpawnUri, startPaused) { |
- if (uri != null && dart.notNull(uri[dartx.endsWith](".dart"))) { |
+ if (uri != null && dart.notNull(dart.dcall(uri[dartx.endsWith], ".dart"))) { |
uri = dart.notNull(uri) + ".js"; |
} |
let port = isolate.ReceivePort.new(); |
let completer = async.Completer$(core.List).new(); |
- port.first.then(dart.fn(msg => { |
+ dart.dcall(port.first.then, dart.fn(msg => { |
if (dart.equals(dart.dindex(msg, 0), _SPAWNED_SIGNAL)) { |
- completer.complete(msg); |
+ dart.dcall(completer.complete, msg); |
} else { |
dart.assert(dart.equals(dart.dindex(msg, 0), _SPAWN_FAILED_SIGNAL)); |
- completer.completeError(dart.dindex(msg, 1)); |
+ dart.dcall(completer.completeError, dart.dindex(msg, 1)); |
} |
})); |
let signalReply = port.sendPort; |
if (dart.notNull(exports._globalState.useWorkers) && !dart.notNull(isLight)) { |
- IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), dart.void, [core.String])); |
+ dart.dcall(IsolateNatives._startWorker, functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => dart.dcall(completer.completeError, message), dart.void, [core.String])); |
} else { |
- IsolateNatives._startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply); |
+ dart.dcall(IsolateNatives._startNonWorker, functionName, uri, args, message, isSpawnUri, startPaused, signalReply); |
} |
return completer.future; |
} |
@@ -1133,31 +1132,31 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
if (args != null) |
args = core.List$(core.String).from(args); |
if (dart.notNull(exports._globalState.isWorker)) { |
- exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort}))); |
+ dart.dcall(exports._globalState.mainManager.postMessage, dart.dcall(_serializeMessage, dart.map({command: 'spawn-worker', functionName: functionName, args: args, msg: message, uri: uri, isSpawnUri: isSpawnUri, startPaused: startPaused, replyPort: replyPort}))); |
} else { |
- IsolateNatives._spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError); |
+ dart.dcall(IsolateNatives._spawnWorker, functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError); |
} |
} |
static _startNonWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort) { |
if (uri != null) { |
dart.throw(new core.UnsupportedError("Currently spawnUri is not supported without web workers.")); |
} |
- message = _clone(message); |
+ message = dart.dcall(_clone, message); |
if (args != null) |
args = core.List$(core.String).from(args); |
- exports._globalState.topEventLoop.enqueue(new _IsolateContext(), dart.fn(() => { |
- let func = IsolateNatives._getJSFunctionFromName(functionName); |
- IsolateNatives._startIsolate(dart.as(func, core.Function), args, message, isSpawnUri, startPaused, replyPort); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, new _IsolateContext(), dart.fn(() => { |
+ let func = dart.dcall(IsolateNatives._getJSFunctionFromName, functionName); |
+ dart.dcall(IsolateNatives._startIsolate, func, args, message, isSpawnUri, startPaused, replyPort); |
}), 'nonworker start'); |
} |
static get currentIsolate() { |
- let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _IsolateContext); |
+ let context = dart.as(dart.dcall(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT), _IsolateContext); |
return new isolate.Isolate(context.controlPort.sendPort, {pauseCapability: context.pauseCapability, terminateCapability: context.terminateCapability}); |
} |
static _startIsolate(topLevel, args, message, isSpawnUri, startPaused, replyTo) { |
- let context = dart.as(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT(), _IsolateContext); |
- _js_helper.Primitives.initializeStatics(context.id); |
- replyTo.send([_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability]); |
+ let context = dart.as(dart.dcall(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT), _IsolateContext); |
+ dart.dcall(_js_helper.Primitives.initializeStatics, context.id); |
+ dart.dcall(replyTo.send, [_SPAWNED_SIGNAL, context.controlPort.sendPort, context.pauseCapability, context.terminateCapability]); |
function runStartFunction() { |
context.initialized = true; |
if (!dart.notNull(isSpawnUri)) { |
@@ -1172,10 +1171,10 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
} |
dart.fn(runStartFunction, dart.void, []); |
if (dart.notNull(startPaused)) { |
- context.addPause(context.pauseCapability, context.pauseCapability); |
- exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'start isolate'); |
+ dart.dcall(context.addPause, context.pauseCapability, context.pauseCapability); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, context, runStartFunction, 'start isolate'); |
} else { |
- runStartFunction(); |
+ dart.dcall(runStartFunction); |
} |
} |
static _spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) { |
@@ -1198,9 +1197,9 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
let o = exports._globalState; |
let workerId = o.nextManagerId; |
o.nextManagerId = dart.notNull(workerId) + 1; |
- IsolateNatives.workerIds.set(worker, workerId); |
- exports._globalState.managers.set(workerId, worker); |
- worker.postMessage(_serializeMessage(dart.map({command: 'start', id: workerId, replyTo: _serializeMessage(replyPort), args: args, msg: _serializeMessage(message), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functionName}))); |
+ IsolateNatives.workerIds.set(worker, dart.as(workerId, core.int)); |
+ exports._globalState.managers.set(dart.as(workerId, core.int), worker); |
+ worker.postMessage(dart.dcall(_serializeMessage, dart.map({command: 'start', id: workerId, replyTo: dart.dcall(_serializeMessage, replyPort), args: args, msg: dart.dcall(_serializeMessage, message), isSpawnUri: isSpawnUri, startPaused: startPaused, functionName: functionName}))); |
} |
static workerOnError(event, uri, onError) { |
event.preventDefault(); |
@@ -1242,7 +1241,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
IsolateNatives.enableSpawnWorker = null; |
dart.defineLazyProperties(IsolateNatives, { |
get thisScript() { |
- return IsolateNatives.computeThisScript(); |
+ return dart.dcall(IsolateNatives.computeThisScript); |
}, |
set thisScript(_) {}, |
get workerIds() { |
@@ -1278,14 +1277,14 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return; |
if (dart.notNull(this[_receivePort][_isClosed])) |
return; |
- let msg = _clone(message); |
- if (dart.equals(isolate.controlPort, this[_receivePort])) { |
- isolate.handleControlMessage(msg); |
+ let msg = dart.dcall(_clone, message); |
+ if (dart.equals(dart.dload(isolate, 'controlPort'), this[_receivePort])) { |
+ dart.dsend(isolate, 'handleControlMessage', msg); |
return; |
} |
- exports._globalState.topEventLoop.enqueue(isolate, dart.fn((() => { |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, isolate, dart.fn((() => { |
if (!dart.notNull(this[_receivePort][_isClosed])) { |
- this[_receivePort][_add](msg); |
+ dart.dcall(this[_receivePort][_add], msg); |
} |
}).bind(this)), `receive ${message}`); |
} |
@@ -1308,9 +1307,9 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
super._BaseSendPort(isolateId); |
} |
send(message) { |
- let workerMessage = _serializeMessage(dart.map({command: 'message', port: this, msg: message})); |
+ let workerMessage = dart.dcall(_serializeMessage, dart.map({command: 'message', port: this, msg: message})); |
if (dart.notNull(exports._globalState.isWorker)) { |
- exports._globalState.mainManager.postMessage(workerMessage); |
+ dart.dcall(exports._globalState.mainManager.postMessage, workerMessage); |
} else { |
let manager = exports._globalState.managers.get(this[_workerId]); |
if (manager != null) { |
@@ -1340,7 +1339,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return x; |
})(); |
this[_isClosed] = false; |
- exports._globalState.currentContext.register(this[_id], this); |
+ dart.dcall(exports._globalState.currentContext.register, this[_id], this); |
} |
weak(handler) { |
this[_handler] = handler; |
@@ -1350,7 +1349,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return x; |
})(); |
this[_isClosed] = false; |
- exports._globalState.currentContext.registerWeak(this[_id], this); |
+ dart.dcall(exports._globalState.currentContext.registerWeak, this[_id], this); |
} |
_controlPort() { |
this[_handler] = null; |
@@ -1369,7 +1368,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return; |
this[_isClosed] = true; |
this[_handler] = null; |
- exports._globalState.currentContext.unregister(this[_id]); |
+ dart.dcall(exports._globalState.currentContext.unregister, this[_id]); |
} |
[_add](dataEvent) { |
if (dart.notNull(this[_isClosed])) |
@@ -1416,11 +1415,11 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
let onError = opts && 'onError' in opts ? opts.onError : null; |
let onDone = opts && 'onDone' in opts ? opts.onDone : null; |
let cancelOnError = opts && 'cancelOnError' in opts ? opts.cancelOnError : null; |
- return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError}); |
+ return dart.dcall(this[_controller].stream.listen, onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError}); |
} |
close() { |
- this[_rawPort].close(); |
- this[_controller].close(); |
+ dart.dcall(this[_rawPort].close); |
+ dart.dcall(this[_controller].close); |
} |
get sendPort() { |
return this[_rawPort].sendPort; |
@@ -1448,24 +1447,24 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_once] = true; |
this[_inEventLoop] = false; |
this[_handle] = null; |
- if (milliseconds == 0 && (!dart.notNull(hasTimer()) || dart.notNull(exports._globalState.isWorker))) { |
+ if (milliseconds == 0 && (!dart.notNull(dart.dcall(hasTimer)) || dart.notNull(exports._globalState.isWorker))) { |
let internalCallback = (function() { |
this[_handle] = null; |
callback(); |
}).bind(this); |
dart.fn(internalCallback, dart.void, []); |
this[_handle] = 1; |
- exports._globalState.topEventLoop.enqueue(exports._globalState.currentContext, internalCallback, 'timer'); |
+ dart.dcall(exports._globalState.topEventLoop.enqueue, exports._globalState.currentContext, internalCallback, 'timer'); |
this[_inEventLoop] = true; |
- } else if (dart.notNull(hasTimer())) { |
+ } else if (dart.notNull(dart.dcall(hasTimer))) { |
let internalCallback = (function() { |
this[_handle] = null; |
- leaveJsAsync(); |
+ dart.dcall(leaveJsAsync); |
callback(); |
}).bind(this); |
dart.fn(internalCallback, dart.void, []); |
- enterJsAsync(); |
- this[_handle] = self.setTimeout(internalCallback, milliseconds); |
+ dart.dcall(enterJsAsync); |
+ this[_handle] = dart.as(self.setTimeout(internalCallback, milliseconds), core.int); |
} else { |
dart.assert(dart.notNull(milliseconds) > 0); |
dart.throw(new core.UnsupportedError("Timer greater than 0.")); |
@@ -1475,23 +1474,23 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
this[_once] = false; |
this[_inEventLoop] = false; |
this[_handle] = null; |
- if (dart.notNull(hasTimer())) { |
- enterJsAsync(); |
- this[_handle] = self.setInterval(dart.fn((() => { |
+ if (dart.notNull(dart.dcall(hasTimer))) { |
+ dart.dcall(enterJsAsync); |
+ this[_handle] = dart.as(self.setInterval(dart.fn((() => { |
callback(this); |
- }).bind(this)), milliseconds); |
+ }).bind(this)), milliseconds), core.int); |
} else { |
dart.throw(new core.UnsupportedError("Periodic timer.")); |
} |
} |
cancel() { |
- if (dart.notNull(hasTimer())) { |
+ if (dart.notNull(dart.dcall(hasTimer))) { |
if (dart.notNull(this[_inEventLoop])) { |
dart.throw(new core.UnsupportedError("Timer in event loop cannot be canceled.")); |
} |
if (this[_handle] == null) |
return; |
- leaveJsAsync(); |
+ dart.dcall(leaveJsAsync); |
if (dart.notNull(this[_once])) { |
self.clearTimeout(this[_handle]); |
} else { |
@@ -1521,7 +1520,7 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
dart.fn(hasTimer, core.bool, []); |
class CapabilityImpl extends core.Object { |
CapabilityImpl() { |
- this._internal(_js_helper.random64()); |
+ this._internal(dart.dcall(_js_helper.random64)); |
} |
_internal(id) { |
this[_id] = id; |
@@ -1538,10 +1537,10 @@ dart_library.library('dart/_isolate_helper', null, /* Imports */[ |
return hash; |
} |
['=='](other) { |
- if (dart.notNull(core.identical(other, this))) |
+ if (dart.notNull(dart.dcall(core.identical, other, this))) |
return true; |
if (dart.is(other, CapabilityImpl)) { |
- return core.identical(this[_id], other[_id]); |
+ return dart.dcall(core.identical, this[_id], other[_id]); |
} |
return false; |
} |