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

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

Issue 1153003003: fixes #40, extension methods for primitive types (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 var isolate = dart.defineLibrary(isolate, {}); 1 var isolate = dart.defineLibrary(isolate, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 var _isolate_helper = dart.lazyImport(_isolate_helper); 3 var _isolate_helper = dart.lazyImport(_isolate_helper);
4 var async = dart.import(async); 4 var async = dart.import(async);
5 (function(exports, core, _isolate_helper, async) { 5 (function(exports, core, _isolate_helper, async) {
6 'use strict'; 6 'use strict';
7 class Capability extends core.Object { 7 class Capability extends core.Object {
8 static new() { 8 static new() {
9 return new _isolate_helper.CapabilityImpl(); 9 return new _isolate_helper.CapabilityImpl();
10 } 10 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 } 46 }
47 47
48 } 48 }
49 static spawnUri(uri, args, message, opts) { 49 static spawnUri(uri, args, message, opts) {
50 let paused = opts && 'paused' in opts ? opts.paused : false; 50 let paused = opts && 'paused' in opts ? opts.paused : false;
51 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null; 51 let packageRoot = opts && 'packageRoot' in opts ? opts.packageRoot : null;
52 if (packageRoot != null) 52 if (packageRoot != null)
53 throw new core.UnimplementedError("packageRoot"); 53 throw new core.UnimplementedError("packageRoot");
54 try { 54 try {
55 if (dart.is(args, core.List)) { 55 if (dart.is(args, core.List)) {
56 for (let i = 0; dart.notNull(i) < dart.notNull(args[core.$length]); i = dart.notNull(i) + 1) { 56 for (let i = 0; dart.notNull(i) < dart.notNull(args.length); i = dart. notNull(i) + 1) {
57 if (!(typeof args[core.$get](i) == 'string')) { 57 if (!(typeof args[dartx.get](i) == 'string')) {
58 throw new core.ArgumentError(`Args must be a list of Strings ${arg s}`); 58 throw new core.ArgumentError(`Args must be a list of Strings ${arg s}`);
59 } 59 }
60 } 60 }
61 } else if (args != null) { 61 } else if (args != null) {
62 throw new core.ArgumentError(`Args must be a list of Strings ${args}`) ; 62 throw new core.ArgumentError(`Args must be a list of Strings ${args}`) ;
63 } 63 }
64 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag e, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort ), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapabili ty: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])), async. Future$(Isolate)); 64 return dart.as(_isolate_helper.IsolateNatives.spawnUri(uri, args, messag e, paused).then(dart.fn(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort ), {pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapabili ty: dart.as(dart.dindex(msg, 3), Capability)}), Isolate, [core.Object])), async. Future$(Isolate));
65 } catch (e) { 65 } catch (e) {
66 let st = dart.stackTrace(e); 66 let st = dart.stackTrace(e);
67 return async.Future$(Isolate).error(e, st); 67 return async.Future$(Isolate).error(e, st);
68 } 68 }
69 69
70 } 70 }
71 pause(resumeCapability) { 71 pause(resumeCapability) {
72 if (resumeCapability === void 0) 72 if (resumeCapability === void 0)
73 resumeCapability = null; 73 resumeCapability = null;
74 if (resumeCapability == null) 74 if (resumeCapability == null)
75 resumeCapability = Capability.new(); 75 resumeCapability = Capability.new();
76 this[_pause](resumeCapability); 76 this[_pause](resumeCapability);
77 return resumeCapability; 77 return resumeCapability;
78 } 78 }
79 [_pause](resumeCapability) { 79 [_pause](resumeCapability) {
80 let message = core.List.new(3); 80 let message = core.List.new(3);
81 message[core.$set](0, "pause"); 81 message[dartx.set](0, "pause");
82 message[core.$set](1, this.pauseCapability); 82 message[dartx.set](1, this.pauseCapability);
83 message[core.$set](2, resumeCapability); 83 message[dartx.set](2, resumeCapability);
84 this.controlPort.send(message); 84 this.controlPort.send(message);
85 } 85 }
86 resume(resumeCapability) { 86 resume(resumeCapability) {
87 let message = core.List.new(2); 87 let message = core.List.new(2);
88 message[core.$set](0, "resume"); 88 message[dartx.set](0, "resume");
89 message[core.$set](1, resumeCapability); 89 message[dartx.set](1, resumeCapability);
90 this.controlPort.send(message); 90 this.controlPort.send(message);
91 } 91 }
92 addOnExitListener(responsePort) { 92 addOnExitListener(responsePort) {
93 let message = core.List.new(2); 93 let message = core.List.new(2);
94 message[core.$set](0, "add-ondone"); 94 message[dartx.set](0, "add-ondone");
95 message[core.$set](1, responsePort); 95 message[dartx.set](1, responsePort);
96 this.controlPort.send(message); 96 this.controlPort.send(message);
97 } 97 }
98 removeOnExitListener(responsePort) { 98 removeOnExitListener(responsePort) {
99 let message = core.List.new(2); 99 let message = core.List.new(2);
100 message[core.$set](0, "remove-ondone"); 100 message[dartx.set](0, "remove-ondone");
101 message[core.$set](1, responsePort); 101 message[dartx.set](1, responsePort);
102 this.controlPort.send(message); 102 this.controlPort.send(message);
103 } 103 }
104 setErrorsFatal(errorsAreFatal) { 104 setErrorsFatal(errorsAreFatal) {
105 let message = core.List.new(3); 105 let message = core.List.new(3);
106 message[core.$set](0, "set-errors-fatal"); 106 message[dartx.set](0, "set-errors-fatal");
107 message[core.$set](1, this.terminateCapability); 107 message[dartx.set](1, this.terminateCapability);
108 message[core.$set](2, errorsAreFatal); 108 message[dartx.set](2, errorsAreFatal);
109 this.controlPort.send(message); 109 this.controlPort.send(message);
110 } 110 }
111 kill(priority) { 111 kill(priority) {
112 if (priority === void 0) 112 if (priority === void 0)
113 priority = Isolate.BEFORE_NEXT_EVENT; 113 priority = Isolate.BEFORE_NEXT_EVENT;
114 this.controlPort.send(["kill", this.terminateCapability, priority]); 114 this.controlPort.send(["kill", this.terminateCapability, priority]);
115 } 115 }
116 ping(responsePort, pingType) { 116 ping(responsePort, pingType) {
117 if (pingType === void 0) 117 if (pingType === void 0)
118 pingType = Isolate.IMMEDIATE; 118 pingType = Isolate.IMMEDIATE;
119 let message = core.List.new(3); 119 let message = core.List.new(3);
120 message[core.$set](0, "ping"); 120 message[dartx.set](0, "ping");
121 message[core.$set](1, responsePort); 121 message[dartx.set](1, responsePort);
122 message[core.$set](2, pingType); 122 message[dartx.set](2, pingType);
123 this.controlPort.send(message); 123 this.controlPort.send(message);
124 } 124 }
125 addErrorListener(port) { 125 addErrorListener(port) {
126 let message = core.List.new(2); 126 let message = core.List.new(2);
127 message[core.$set](0, "getErrors"); 127 message[dartx.set](0, "getErrors");
128 message[core.$set](1, port); 128 message[dartx.set](1, port);
129 this.controlPort.send(message); 129 this.controlPort.send(message);
130 } 130 }
131 removeErrorListener(port) { 131 removeErrorListener(port) {
132 let message = core.List.new(2); 132 let message = core.List.new(2);
133 message[core.$set](0, "stopErrors"); 133 message[dartx.set](0, "stopErrors");
134 message[core.$set](1, port); 134 message[dartx.set](1, port);
135 this.controlPort.send(message); 135 this.controlPort.send(message);
136 } 136 }
137 get errors() { 137 get errors() {
138 let controller = null; 138 let controller = null;
139 let port = null; 139 let port = null;
140 let handleError = message => { 140 let handleError = message => {
141 let errorDescription = dart.as(dart.dindex(message, 0), core.String); 141 let errorDescription = dart.as(dart.dindex(message, 0), core.String);
142 let stackDescription = dart.as(dart.dindex(message, 1), core.String); 142 let stackDescription = dart.as(dart.dindex(message, 1), core.String);
143 let error = new RemoteError(errorDescription, stackDescription); 143 let error = new RemoteError(errorDescription, stackDescription);
144 controller.addError(error, error.stackTrace); 144 controller.addError(error, error.stackTrace);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 dart.setSignature(RawReceivePort, { 210 dart.setSignature(RawReceivePort, {
211 constructors: () => ({new: [RawReceivePort, [], [dart.functionType(dart.void , [dart.bottom])]]}) 211 constructors: () => ({new: [RawReceivePort, [], [dart.functionType(dart.void , [dart.bottom])]]})
212 }); 212 });
213 class _IsolateUnhandledException extends core.Object { 213 class _IsolateUnhandledException extends core.Object {
214 _IsolateUnhandledException(message, source, stackTrace) { 214 _IsolateUnhandledException(message, source, stackTrace) {
215 this.message = message; 215 this.message = message;
216 this.source = source; 216 this.source = source;
217 this.stackTrace = stackTrace; 217 this.stackTrace = stackTrace;
218 } 218 }
219 toString() { 219 toString() {
220 return 'IsolateUnhandledException: exception while handling message: ' + ` ${this.message} \n ` + `${dart.toString(this.source).replaceAll("\n", "\n ")}\ n` + 'original stack trace:\n ' + `${dart.toString(this.stackTrace).replaceAll( "\n", "\n ")}`; 220 return 'IsolateUnhandledException: exception while handling message: ' + ` ${this.message} \n ` + `${dart.toString(this.source)[dartx.replaceAll]("\n", "\ n ")}\n` + 'original stack trace:\n ' + `${dart.toString(this.stackTrace)[dart x.replaceAll]("\n", "\n ")}`;
221 } 221 }
222 } 222 }
223 _IsolateUnhandledException[dart.implements] = () => [core.Exception]; 223 _IsolateUnhandledException[dart.implements] = () => [core.Exception];
224 dart.setSignature(_IsolateUnhandledException, { 224 dart.setSignature(_IsolateUnhandledException, {
225 constructors: () => ({_IsolateUnhandledException: [_IsolateUnhandledExceptio n, [core.Object, core.Object, core.StackTrace]]}) 225 constructors: () => ({_IsolateUnhandledException: [_IsolateUnhandledExceptio n, [core.Object, core.Object, core.StackTrace]]})
226 }); 226 });
227 let _description = Symbol('_description'); 227 let _description = Symbol('_description');
228 class RemoteError extends core.Object { 228 class RemoteError extends core.Object {
229 RemoteError(description, stackDescription) { 229 RemoteError(description, stackDescription) {
230 this[_description] = description; 230 this[_description] = description;
(...skipping 22 matching lines...) Expand all
253 }); 253 });
254 // Exports: 254 // Exports:
255 exports.Capability = Capability; 255 exports.Capability = Capability;
256 exports.IsolateSpawnException = IsolateSpawnException; 256 exports.IsolateSpawnException = IsolateSpawnException;
257 exports.Isolate = Isolate; 257 exports.Isolate = Isolate;
258 exports.SendPort = SendPort; 258 exports.SendPort = SendPort;
259 exports.ReceivePort = ReceivePort; 259 exports.ReceivePort = ReceivePort;
260 exports.RawReceivePort = RawReceivePort; 260 exports.RawReceivePort = RawReceivePort;
261 exports.RemoteError = RemoteError; 261 exports.RemoteError = RemoteError;
262 })(isolate, core, _isolate_helper, async); 262 })(isolate, core, _isolate_helper, async);
OLDNEW
« no previous file with comments | « lib/runtime/dart/core.js ('k') | lib/runtime/dart/math.js » ('j') | lib/runtime/dart_runtime.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698