| Index: runtime/bin/builtin.dart
|
| ===================================================================
|
| --- runtime/bin/builtin.dart (revision 38794)
|
| +++ runtime/bin/builtin.dart (working copy)
|
| @@ -108,7 +108,7 @@
|
| }
|
|
|
|
|
| -void _httpGet(Uri uri, loadCallback(List<int> data)) {
|
| +void _httpGet(Uri uri, String libraryUri, loadCallback(List<int> data)) {
|
| var httpClient = new HttpClient();
|
| try {
|
| httpClient.getUrl(uri)
|
| @@ -125,7 +125,7 @@
|
| if (response.statusCode != 200) {
|
| var msg = 'Failure getting $uri: '
|
| '${response.statusCode} ${response.reasonPhrase}';
|
| - _asyncLoadError(uri.toString(), msg);
|
| + _asyncLoadError(uri.toString(), libraryUri, msg);
|
| }
|
|
|
| List<int> data = builder.takeBytes();
|
| @@ -133,14 +133,14 @@
|
| loadCallback(data);
|
| },
|
| onError: (error) {
|
| - _asyncLoadError(uri.toString(), error);
|
| + _asyncLoadError(uri.toString(), libraryUri, error);
|
| });
|
| })
|
| .catchError((error) {
|
| - _asyncLoadError(uri.toString(), error);
|
| + _asyncLoadError(uri.toString(), libraryUri, error);
|
| });
|
| } catch (error) {
|
| - _asyncLoadError(uri.toString(), error);
|
| + _asyncLoadError(uri.toString(), libraryUri, error);
|
| }
|
| // TODO(floitsch): remove this line. It's just here to push an event on the
|
| // event loop so that we invoke the scheduled microtasks. Also remove the
|
| @@ -329,12 +329,17 @@
|
| }
|
|
|
|
|
| -void _asyncLoadErrorCallback(uri, error) native "Builtin_AsyncLoadError";
|
| +void _asyncLoadErrorCallback(uri, libraryUri, error)
|
| + native "Builtin_AsyncLoadError";
|
|
|
| -void _asyncLoadError(uri, error) {
|
| +void _asyncLoadError(uri, libraryUri, error) {
|
| assert(_numOutstandingLoadRequests > 0);
|
| + _logResolution("_asyncLoadError($uri), error: $error");
|
| _numOutstandingLoadRequests--;
|
| - _asyncLoadErrorCallback(uri, error);
|
| + _asyncLoadErrorCallback(uri, libraryUri, error);
|
| + if (_numOutstandingLoadRequests == 0) {
|
| + _signalDoneLoading();
|
| + }
|
| }
|
|
|
|
|
| @@ -347,7 +352,7 @@
|
| _logResolution("_loadDataAsync($uri), "
|
| "${_numOutstandingLoadRequests} requests outstanding");
|
| if (sourceUri.scheme == 'http') {
|
| - _httpGet(sourceUri, (data) {
|
| + _httpGet(sourceUri, null, (data) {
|
| _loadScript(uri, data);
|
| });
|
| } else {
|
| @@ -356,7 +361,7 @@
|
| _loadScript(uri, data);
|
| },
|
| onError: (e) {
|
| - _asyncLoadError(uri, e);
|
| + _asyncLoadError(uri, null, e);
|
| });
|
| }
|
| }
|
| @@ -388,7 +393,7 @@
|
| _logResolution("_loadLibrarySource($uri), "
|
| "${_numOutstandingLoadRequests} requests outstanding");
|
| if (sourceUri.scheme == 'http') {
|
| - _httpGet(sourceUri, (data) {
|
| + _httpGet(sourceUri, libraryUri, (data) {
|
| var text = UTF8.decode(data);
|
| _loadLibrarySource(tag, uri, libraryUri, text);
|
| });
|
| @@ -398,7 +403,7 @@
|
| _loadLibrarySource(tag, uri, libraryUri, text);
|
| },
|
| onError: (e) {
|
| - _asyncLoadError(uri, e);
|
| + _asyncLoadError(uri, libraryUri, e);
|
| });
|
| }
|
| }
|
|
|