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

Side by Side Diff: sdk/lib/_internal/pub/lib/src/barback/transformer_isolate.dart

Issue 433163006: Update pubs detection of Isolate spawn errors, as the exception text was slightly changed. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library pub.transformer_isolate; 5 library pub.transformer_isolate;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 import 'dart:isolate'; 9 import 'dart:isolate';
10 10
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 .then((_) => port.first) 76 .then((_) => port.first)
77 .then((sendPort) { 77 .then((sendPort) {
78 return new TransformerIsolate._(sendPort, environment.mode, idsToUrls); 78 return new TransformerIsolate._(sendPort, environment.mode, idsToUrls);
79 }).catchError((error, stackTrace) { 79 }).catchError((error, stackTrace) {
80 if (error is! CrossIsolateException) throw error; 80 if (error is! CrossIsolateException) throw error;
81 if (error.type != 'IsolateSpawnException') throw error; 81 if (error.type != 'IsolateSpawnException') throw error;
82 82
83 // TODO(nweiz): don't parse this as a string once issues 12617 and 12689 83 // TODO(nweiz): don't parse this as a string once issues 12617 and 12689
84 // are fixed. 84 // are fixed.
85 var firstErrorLine = error.message.split('\n')[1]; 85 var firstErrorLine = error.message.split('\n')[1];
86 var missingTransformer = idsToUrls.keys.firstWhere((id) => 86 var missingTransformer = idsToUrls.keys.firstWhere(
87 firstErrorLine.startsWith("Failure getting ${idsToUrls[id]}:"), 87 (id) => firstErrorLine.startsWith(
88 "Uncaught Error: Failure getting ${idsToUrls[id]}:"),
88 orElse: () => throw error); 89 orElse: () => throw error);
89 var packageUri = idToPackageUri(idsToAssetIds[missingTransformer]); 90 var packageUri = idToPackageUri(idsToAssetIds[missingTransformer]);
90 91
91 // If there was an IsolateSpawnException and the import that actually 92 // If there was an IsolateSpawnException and the import that actually
92 // failed was the one we were loading transformers from, throw an 93 // failed was the one we were loading transformers from, throw an
93 // application exception with a more user-friendly message. 94 // application exception with a more user-friendly message.
94 fail('Transformer library "$packageUri" not found.', 95 fail('Transformer library "$packageUri" not found.',
95 error, stackTrace); 96 error, stackTrace);
96 }); 97 });
97 }); 98 });
(...skipping 26 matching lines...) Expand all
124 /// An error thrown when a transformer fails to load. 125 /// An error thrown when a transformer fails to load.
125 class TransformerLoadError extends SourceSpanException 126 class TransformerLoadError extends SourceSpanException
126 implements WrappedException { 127 implements WrappedException {
127 final CrossIsolateException innerError; 128 final CrossIsolateException innerError;
128 Chain get innerChain => innerError.stackTrace; 129 Chain get innerChain => innerError.stackTrace;
129 130
130 TransformerLoadError(CrossIsolateException error, SourceSpan span) 131 TransformerLoadError(CrossIsolateException error, SourceSpan span)
131 : innerError = error, 132 : innerError = error,
132 super("Error loading transformer: ${error.message}", span); 133 super("Error loading transformer: ${error.message}", span);
133 } 134 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698