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

Side by Side Diff: pkg/compiler/lib/src/apiimpl.dart

Issue 2675023002: Temporarily allow to import dart:io in client apps. (Closed)
Patch Set: cl comments Created 3 years, 10 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/resolved_uri_translator.dart » ('j') | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 leg_apiimpl; 5 library leg_apiimpl;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:package_config/packages.dart'; 9 import 'package:package_config/packages.dart';
10 import 'package:package_config/packages_file.dart' as pkgs; 10 import 'package:package_config/packages_file.dart' as pkgs;
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 resolutionInput, sourceFile.slowText()); 215 resolutionInput, sourceFile.slowText());
216 }); 216 });
217 }); 217 });
218 } 218 }
219 if (resolvedUriTranslator.isNotSet) { 219 if (resolvedUriTranslator.isNotSet) {
220 future = future.then((_) { 220 future = future.then((_) {
221 return platform_configuration 221 return platform_configuration
222 .load(options.platformConfigUri, provider) 222 .load(options.platformConfigUri, provider)
223 .then((Map<String, Uri> mapping) { 223 .then((Map<String, Uri> mapping) {
224 resolvedUriTranslator.resolvedUriTranslator = 224 resolvedUriTranslator.resolvedUriTranslator =
225 new ResolvedUriTranslator(mapping, reporter); 225 new ResolvedUriTranslator(
226 mapping, reporter, options.platformConfigUri);
226 }); 227 });
227 }); 228 });
228 } 229 }
229 // TODO(johnniwinther): This does not apply anymore. 230 // TODO(johnniwinther): This does not apply anymore.
230 // The incremental compiler sets up the sdk before run. 231 // The incremental compiler sets up the sdk before run.
231 // Therefore this will be called a second time. 232 // Therefore this will be called a second time.
232 return future; 233 return future;
233 } 234 }
234 235
235 Future<bool> run(Uri uri) { 236 Future<bool> run(Uri uri) {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 Uri libraryUri = compiler.resolvedUriTranslator.sdkLibraries[libraryName]; 386 Uri libraryUri = compiler.resolvedUriTranslator.sdkLibraries[libraryName];
386 if (libraryUri != null && libraryUri.scheme != "unsupported") { 387 if (libraryUri != null && libraryUri.scheme != "unsupported") {
387 // Dart2js always "supports" importing 'dart:mirrors' but will abort 388 // Dart2js always "supports" importing 'dart:mirrors' but will abort
388 // the compilation at a later point if the backend doesn't support 389 // the compilation at a later point if the backend doesn't support
389 // mirrors. In this case 'mirrors' should not be in the environment. 390 // mirrors. In this case 'mirrors' should not be in the environment.
390 if (libraryName == 'mirrors') { 391 if (libraryName == 'mirrors') {
391 return compiler.backend.supportsReflection ? "true" : null; 392 return compiler.backend.supportsReflection ? "true" : null;
392 } 393 }
393 return "true"; 394 return "true";
394 } 395 }
396
397 // Note: we return null on `dart:io` here, even if we allow users to
398 // unconditionally import it.
399 //
400 // In the past it was invalid to import `dart:io` for client apps. We just
401 // made it valid to import it as a stopgap measure to support packages like
402 // `http`. This is temporary until we support config-imports in the
403 // language.
404 //
405 // Because it is meant to be temporary and because the returned `dart:io`
406 // implementation will throw on most APIs, we still preserve that
407 // when compiling client apps the `dart:io` library is technically not
408 // supported, and so `const bool.fromEnvironment(dart.library.io)` is false.
395 return null; 409 return null;
396 } 410 }
397 } 411 }
398 412
399 /// For every 'dart:' library, a corresponding environment variable is set 413 /// For every 'dart:' library, a corresponding environment variable is set
400 /// to "true". The environment variable's name is the concatenation of 414 /// to "true". The environment variable's name is the concatenation of
401 /// this prefix and the name (without the 'dart:'. 415 /// this prefix and the name (without the 'dart:'.
402 /// 416 ///
403 /// For example 'dart:html' has the environment variable 'dart.library.html' set 417 /// For example 'dart:html' has the environment variable 'dart.library.html' set
404 /// to "true". 418 /// to "true".
405 const String _dartLibraryEnvironmentPrefix = 'dart.library.'; 419 const String _dartLibraryEnvironmentPrefix = 'dart.library.';
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/resolved_uri_translator.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698