| Index: lib/runtime/dart/_isolate_helper.js
|
| diff --git a/lib/runtime/dart/_isolate_helper.js b/lib/runtime/dart/_isolate_helper.js
|
| index 87931301b9d023e3f2c978c0affa99a2c71a0a70..42def362a17278371162e84266977b4680917502 100644
|
| --- a/lib/runtime/dart/_isolate_helper.js
|
| +++ b/lib/runtime/dart/_isolate_helper.js
|
| @@ -37,7 +37,7 @@ var async = dart.import(async);
|
| this[_serializeSendPorts] = dart.as(serializeSendPorts, core.bool);
|
| }
|
| serialize(x) {
|
| - if (this.isPrimitive(x))
|
| + if (dart.notNull(this.isPrimitive(x)))
|
| return this.serializePrimitive(x);
|
| let serializationId = this.serializedObjectIds.get(x);
|
| if (serializationId != null)
|
| @@ -78,7 +78,7 @@ var async = dart.import(async);
|
| return ["ref", serializationId];
|
| }
|
| isPrimitive(x) {
|
| - return dart.notNull(x == null) || typeof x == 'string' || dart.is(x, core.num) || typeof x == 'boolean';
|
| + return x == null || typeof x == 'string' || dart.is(x, core.num) || typeof x == 'boolean';
|
| }
|
| serializePrimitive(primitive) {
|
| return primitive;
|
| @@ -134,13 +134,13 @@ var async = dart.import(async);
|
| return ['js-object', keys, values];
|
| }
|
| serializeWorkerSendPort(x) {
|
| - if (this[_serializeSendPorts]) {
|
| + if (dart.notNull(this[_serializeSendPorts])) {
|
| return ['sendport', x[_workerId], x[_isolateId], x[_receivePortId]];
|
| }
|
| return ['raw sendport', x];
|
| }
|
| serializeJsSendPort(x) {
|
| - if (this[_serializeSendPorts]) {
|
| + if (dart.notNull(this[_serializeSendPorts])) {
|
| let workerId = exports._globalState.currentManagerId;
|
| return ['sendport', workerId, x[_isolateId], x[_receivePort][_id]];
|
| }
|
| @@ -194,7 +194,7 @@ var async = dart.import(async);
|
| this[_adjustSendPorts] = dart.as(adjustSendPorts, core.bool);
|
| }
|
| deserialize(x) {
|
| - if (this.isPrimitive(x))
|
| + if (dart.notNull(this.isPrimitive(x)))
|
| return this.deserializePrimitive(x);
|
| if (!dart.is(x, _interceptors.JSArray))
|
| throw new core.ArgumentError(`Bad serialized message: ${x}`);
|
| @@ -258,7 +258,7 @@ var async = dart.import(async);
|
| }
|
| }
|
| isPrimitive(x) {
|
| - return dart.notNull(x == null) || typeof x == 'string' || dart.is(x, core.num) || typeof x == 'boolean';
|
| + return x == null || typeof x == 'string' || dart.is(x, core.num) || typeof x == 'boolean';
|
| }
|
| deserializePrimitive(x) {
|
| return x;
|
| @@ -435,7 +435,7 @@ var async = dart.import(async);
|
| throw new core.ArgumentError(`Arguments to main must be a List: ${args}`);
|
| }
|
| exports._globalState = new _Manager(dart.as(entry, core.Function));
|
| - if (exports._globalState.isWorker)
|
| + if (dart.notNull(exports._globalState.isWorker))
|
| return;
|
| let rootContext = new _IsolateContext();
|
| exports._globalState.rootContext = rootContext;
|
| @@ -486,7 +486,7 @@ var async = dart.import(async);
|
| this.topEventLoop = new _EventLoop();
|
| this.isolates = core.Map$(core.int, _IsolateContext).new();
|
| this.managers = core.Map$(core.int, core.Object).new();
|
| - if (this.isWorker) {
|
| + if (dart.notNull(this.isWorker)) {
|
| this.mainManager = new _MainManagerStub();
|
| this[_nativeInitWorkerMessageHandler]();
|
| }
|
| @@ -576,8 +576,8 @@ var async = dart.import(async);
|
| if (!dart.notNull(this.isPaused))
|
| return;
|
| this.pauseTokens.remove(resume);
|
| - if (this.pauseTokens.isEmpty) {
|
| - while (this.delayedEvents[dartx.isNotEmpty]) {
|
| + if (dart.notNull(this.pauseTokens.isEmpty)) {
|
| + while (dart.notNull(this.delayedEvents[dartx.isNotEmpty])) {
|
| let event = this.delayedEvents[dartx.removeLast]();
|
| exports._globalState.topEventLoop.prequeue(event);
|
| }
|
| @@ -589,7 +589,7 @@ var async = dart.import(async);
|
| if (this.doneHandlers == null) {
|
| this.doneHandlers = [];
|
| }
|
| - if (dart.dsend(this.doneHandlers, 'contains', responsePort))
|
| + if (dart.notNull(dart.as(dart.dsend(this.doneHandlers, 'contains', responsePort), core.bool)))
|
| return;
|
| dart.dsend(this.doneHandlers, 'add', responsePort);
|
| }
|
| @@ -646,7 +646,7 @@ var async = dart.import(async);
|
| this.errorPorts.remove(port);
|
| }
|
| handleUncaughtError(error, stackTrace) {
|
| - if (this.errorPorts.isEmpty) {
|
| + if (dart.notNull(this.errorPorts.isEmpty)) {
|
| if (dart.notNull(this.errorsAreFatal) && dart.notNull(core.identical(this, exports._globalState.rootContext))) {
|
| return;
|
| }
|
| @@ -676,9 +676,9 @@ var async = dart.import(async);
|
| } catch (e) {
|
| let s = dart.stackTrace(e);
|
| this.handleUncaughtError(e, s);
|
| - if (this.errorsAreFatal) {
|
| + if (dart.notNull(this.errorsAreFatal)) {
|
| this.kill();
|
| - if (core.identical(this, exports._globalState.rootContext)) {
|
| + if (dart.notNull(core.identical(this, exports._globalState.rootContext))) {
|
| throw e;
|
| }
|
| }
|
| @@ -689,7 +689,7 @@ var async = dart.import(async);
|
| if (old != null)
|
| old[_setGlobals]();
|
| if (this[_scheduledControlEvents] != null) {
|
| - while (dart.dload(this[_scheduledControlEvents], 'isNotEmpty')) {
|
| + while (dart.notNull(dart.as(dart.dload(this[_scheduledControlEvents], 'isNotEmpty'), core.bool))) {
|
| dart.dcall(dart.dsend(this[_scheduledControlEvents], 'removeFirst'));
|
| }
|
| }
|
| @@ -753,7 +753,7 @@ var async = dart.import(async);
|
| return this.ports.get(portId);
|
| }
|
| [_addRegistration](portId, port) {
|
| - if (this.ports.containsKey(portId)) {
|
| + if (dart.notNull(this.ports.containsKey(portId))) {
|
| throw core.Exception.new("Registry: ports must be registered only once.");
|
| }
|
| this.ports.set(portId, port);
|
| @@ -836,12 +836,12 @@ var async = dart.import(async);
|
| this.events.addFirst(event);
|
| }
|
| dequeue() {
|
| - if (this.events.isEmpty)
|
| + if (dart.notNull(this.events.isEmpty))
|
| return null;
|
| return this.events.removeFirst();
|
| }
|
| checkOpenReceivePortsFromCommandLine() {
|
| - 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)) {
|
| + 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)) {
|
| throw core.Exception.new("Program exited with open ReceivePorts.");
|
| }
|
| }
|
| @@ -865,7 +865,7 @@ var async = dart.import(async);
|
| dart.fn(next);
|
| next();
|
| } else {
|
| - while (this.runIteration()) {
|
| + while (dart.notNull(this.runIteration())) {
|
| }
|
| }
|
| }
|
| @@ -902,7 +902,7 @@ var async = dart.import(async);
|
| this.message = message;
|
| }
|
| process() {
|
| - if (this.isolate.isPaused) {
|
| + if (dart.notNull(this.isolate.isPaused)) {
|
| this.isolate.delayedEvents[dartx.add](this);
|
| return;
|
| }
|
| @@ -943,11 +943,11 @@ var async = dart.import(async);
|
| if (currentScript != null) {
|
| return String(currentScript.src);
|
| }
|
| - if (_js_helper.Primitives.isD8)
|
| + if (dart.notNull(_js_helper.Primitives.isD8))
|
| return IsolateNatives.computeThisScriptD8();
|
| - if (_js_helper.Primitives.isJsshell)
|
| + if (dart.notNull(_js_helper.Primitives.isJsshell))
|
| return IsolateNatives.computeThisScriptJsshell();
|
| - if (exports._globalState.isWorker)
|
| + if (dart.notNull(exports._globalState.isWorker))
|
| return IsolateNatives.computeThisScriptFromTrace();
|
| return null;
|
| }
|
| @@ -1035,7 +1035,7 @@ var async = dart.import(async);
|
| }
|
| case 'print':
|
| {
|
| - if (exports._globalState.isWorker) {
|
| + if (dart.notNull(exports._globalState.isWorker)) {
|
| exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'print', msg: msg})));
|
| } else {
|
| core.print(dart.dindex(msg, 'msg'));
|
| @@ -1057,7 +1057,7 @@ var async = dart.import(async);
|
| }, core.Object, [core.String])});
|
| }
|
| static _log(msg) {
|
| - if (exports._globalState.isWorker) {
|
| + if (dart.notNull(exports._globalState.isWorker)) {
|
| exports._globalState.mainManager.postMessage(_serializeMessage(dart.map({command: 'log', msg: msg})));
|
| } else {
|
| try {
|
| @@ -1123,7 +1123,7 @@ var async = dart.import(async);
|
| static _startWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError) {
|
| if (args != null)
|
| args = core.List$(core.String).from(args);
|
| - if (exports._globalState.isWorker) {
|
| + 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})));
|
| } else {
|
| IsolateNatives._spawnWorker(functionName, uri, args, message, isSpawnUri, startPaused, replyPort, onError);
|
| @@ -1162,7 +1162,7 @@ var async = dart.import(async);
|
| }
|
| };
|
| dart.fn(runStartFunction, dart.void, []);
|
| - if (startPaused) {
|
| + if (dart.notNull(startPaused)) {
|
| context.addPause(context.pauseCapability, context.pauseCapability);
|
| exports._globalState.topEventLoop.enqueue(context, runStartFunction, 'start isolate');
|
| } else {
|
| @@ -1246,7 +1246,7 @@ var async = dart.import(async);
|
| this[_isolateId] = isolateId;
|
| }
|
| [_checkReplyTo](replyTo) {
|
| - if (dart.notNull(replyTo != null) && !dart.is(replyTo, _NativeJsSendPort) && !dart.is(replyTo, _WorkerSendPort)) {
|
| + if (replyTo != null && !dart.is(replyTo, _NativeJsSendPort) && !dart.is(replyTo, _WorkerSendPort)) {
|
| throw core.Exception.new("SendPort.send: Illegal replyTo port type");
|
| }
|
| }
|
| @@ -1267,7 +1267,7 @@ var async = dart.import(async);
|
| let isolate = exports._globalState.isolates.get(this[_isolateId]);
|
| if (isolate == null)
|
| return;
|
| - if (this[_receivePort][_isClosed])
|
| + if (dart.notNull(this[_receivePort][_isClosed]))
|
| return;
|
| let msg = _clone(message);
|
| if (dart.equals(isolate.controlPort, this[_receivePort])) {
|
| @@ -1281,7 +1281,7 @@ var async = dart.import(async);
|
| }), `receive ${message}`);
|
| }
|
| ['=='](other) {
|
| - return dart.is(other, _NativeJsSendPort) && dart.notNull(dart.equals(this[_receivePort], dart.dload(other, _receivePort)));
|
| + return dart.is(other, _NativeJsSendPort) && dart.equals(this[_receivePort], dart.dload(other, _receivePort));
|
| }
|
| get hashCode() {
|
| return this[_receivePort][_id];
|
| @@ -1300,7 +1300,7 @@ var async = dart.import(async);
|
| }
|
| send(message) {
|
| let workerMessage = _serializeMessage(dart.map({command: 'message', port: this, msg: message}));
|
| - if (exports._globalState.isWorker) {
|
| + if (dart.notNull(exports._globalState.isWorker)) {
|
| exports._globalState.mainManager.postMessage(workerMessage);
|
| } else {
|
| let manager = exports._globalState.managers.get(this[_workerId]);
|
| @@ -1356,14 +1356,14 @@ var async = dart.import(async);
|
| this[_handler] = null;
|
| }
|
| close() {
|
| - if (this[_isClosed])
|
| + if (dart.notNull(this[_isClosed]))
|
| return;
|
| this[_isClosed] = true;
|
| this[_handler] = null;
|
| exports._globalState.currentContext.unregister(this[_id]);
|
| }
|
| [_add](dataEvent) {
|
| - if (this[_isClosed])
|
| + if (dart.notNull(this[_isClosed]))
|
| return;
|
| dart.dcall(this[_handler], dataEvent);
|
| }
|
| @@ -1448,7 +1448,7 @@ var async = dart.import(async);
|
| this[_handle] = 1;
|
| exports._globalState.topEventLoop.enqueue(exports._globalState.currentContext, internalCallback, 'timer');
|
| this[_inEventLoop] = true;
|
| - } else if (hasTimer()) {
|
| + } else if (dart.notNull(hasTimer())) {
|
| let internalCallback = () => {
|
| this[_handle] = null;
|
| leaveJsAsync();
|
| @@ -1466,7 +1466,7 @@ var async = dart.import(async);
|
| this[_once] = false;
|
| this[_inEventLoop] = false;
|
| this[_handle] = null;
|
| - if (hasTimer()) {
|
| + if (dart.notNull(hasTimer())) {
|
| enterJsAsync();
|
| this[_handle] = self.setInterval(_js_helper.convertDartClosureToJS(dart.fn(() => {
|
| callback(this);
|
| @@ -1476,14 +1476,14 @@ var async = dart.import(async);
|
| }
|
| }
|
| cancel() {
|
| - if (hasTimer()) {
|
| - if (this[_inEventLoop]) {
|
| + if (dart.notNull(hasTimer())) {
|
| + if (dart.notNull(this[_inEventLoop])) {
|
| throw new core.UnsupportedError("Timer in event loop cannot be canceled.");
|
| }
|
| if (this[_handle] == null)
|
| return;
|
| leaveJsAsync();
|
| - if (this[_once]) {
|
| + if (dart.notNull(this[_once])) {
|
| self.clearTimeout(this[_handle]);
|
| } else {
|
| self.clearInterval(this[_handle]);
|
| @@ -1529,7 +1529,7 @@ var async = dart.import(async);
|
| return hash;
|
| }
|
| ['=='](other) {
|
| - if (core.identical(other, this))
|
| + if (dart.notNull(core.identical(other, this)))
|
| return true;
|
| if (dart.is(other, CapabilityImpl)) {
|
| return core.identical(this[_id], other[_id]);
|
|
|