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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/compiler.dart

Issue 11365196: Move JSSyntaxRegExp to core as a private member. This removes the last refrences to dart:coreimpl. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix two pending TODO's. Created 8 years, 1 month 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
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 part of dart2js; 5 part of dart2js;
6 6
7 /** 7 /**
8 * If true, print a warning for each method that was resolved, but not 8 * If true, print a warning for each method that was resolved, but not
9 * compiled. 9 * compiled.
10 */ 10 */
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 final bool enableUserAssertions; 103 final bool enableUserAssertions;
104 final bool enableConcreteTypeInference; 104 final bool enableConcreteTypeInference;
105 105
106 bool disableInlining = false; 106 bool disableInlining = false;
107 107
108 final Tracer tracer; 108 final Tracer tracer;
109 109
110 CompilerTask measuredTask; 110 CompilerTask measuredTask;
111 Element _currentElement; 111 Element _currentElement;
112 LibraryElement coreLibrary; 112 LibraryElement coreLibrary;
113 LibraryElement coreImplLibrary;
114 LibraryElement isolateLibrary; 113 LibraryElement isolateLibrary;
115 LibraryElement jsHelperLibrary; 114 LibraryElement jsHelperLibrary;
116 LibraryElement interceptorsLibrary; 115 LibraryElement interceptorsLibrary;
117 LibraryElement mainApp; 116 LibraryElement mainApp;
118 117
119 ClassElement objectClass; 118 ClassElement objectClass;
120 ClassElement closureClass; 119 ClassElement closureClass;
121 ClassElement dynamicClass; 120 ClassElement dynamicClass;
122 ClassElement boolClass; 121 ClassElement boolClass;
123 ClassElement numClass; 122 ClassElement numClass;
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 368
370 bool hasIsolateSupport() => isolateLibrary != null; 369 bool hasIsolateSupport() => isolateLibrary != null;
371 370
372 /** 371 /**
373 * This method is called before [library] import and export scopes have been 372 * This method is called before [library] import and export scopes have been
374 * set up. 373 * set up.
375 */ 374 */
376 void onLibraryScanned(LibraryElement library, Uri uri) { 375 void onLibraryScanned(LibraryElement library, Uri uri) {
377 if (dynamicClass != null) { 376 if (dynamicClass != null) {
378 // When loading the built-in libraries, dynamicClass is null. We 377 // When loading the built-in libraries, dynamicClass is null. We
379 // take advantage of this as core and coreimpl import js_helper 378 // take advantage of this as core imports js_helper and sees [dynamic]
380 // and see Dynamic this way. 379 // this way.
381 withCurrentElement(dynamicClass, () { 380 withCurrentElement(dynamicClass, () {
382 library.addToScope(dynamicClass, this); 381 library.addToScope(dynamicClass, this);
383 }); 382 });
384 } 383 }
385 } 384 }
386 385
387 LibraryElement scanBuiltinLibrary(String filename); 386 LibraryElement scanBuiltinLibrary(String filename);
388 387
389 void initializeSpecialClasses() { 388 void initializeSpecialClasses() {
390 bool coreLibValid = true; 389 bool coreLibValid = true;
(...skipping 20 matching lines...) Expand all
411 closureClass = lookupSpecialClass(const SourceString('Closure')); 410 closureClass = lookupSpecialClass(const SourceString('Closure'));
412 dynamicClass = lookupSpecialClass(const SourceString('Dynamic_')); 411 dynamicClass = lookupSpecialClass(const SourceString('Dynamic_'));
413 nullClass = lookupSpecialClass(const SourceString('Null')); 412 nullClass = lookupSpecialClass(const SourceString('Null'));
414 types = new Types(this, dynamicClass); 413 types = new Types(this, dynamicClass);
415 if (!coreLibValid) { 414 if (!coreLibValid) {
416 cancel('core library does not contain required classes'); 415 cancel('core library does not contain required classes');
417 } 416 }
418 } 417 }
419 418
420 void scanBuiltinLibraries() { 419 void scanBuiltinLibraries() {
421 loadCoreImplLibrary();
422 jsHelperLibrary = scanBuiltinLibrary('_js_helper'); 420 jsHelperLibrary = scanBuiltinLibrary('_js_helper');
423 interceptorsLibrary = scanBuiltinLibrary('_interceptors'); 421 interceptorsLibrary = scanBuiltinLibrary('_interceptors');
424 422
425 // The core and coreimpl libraries were loaded and patched before 423 // The core library was loaded and patched before jsHelperLibrary was
426 // jsHelperLibrary was initialized, so it wasn't imported into those 424 // initialized, so it wasn't imported into those two libraries during
427 // two libraries during patching. 425 // patching.
428 importHelperLibrary(coreLibrary); 426 importHelperLibrary(coreLibrary);
429 importHelperLibrary(coreImplLibrary);
430 importHelperLibrary(interceptorsLibrary); 427 importHelperLibrary(interceptorsLibrary);
431 428
432 addForeignFunctions(jsHelperLibrary); 429 addForeignFunctions(jsHelperLibrary);
433 addForeignFunctions(interceptorsLibrary); 430 addForeignFunctions(interceptorsLibrary);
434 431
435 assertMethod = jsHelperLibrary.find(const SourceString('assertHelper')); 432 assertMethod = jsHelperLibrary.find(const SourceString('assertHelper'));
436 identicalFunction = coreLibrary.find(const SourceString('identical')); 433 identicalFunction = coreLibrary.find(const SourceString('identical'));
437 434
438 initializeSpecialClasses(); 435 initializeSpecialClasses();
439 436
440 functionClass.ensureResolved(this); 437 functionClass.ensureResolved(this);
441 functionApplyMethod = 438 functionApplyMethod =
442 functionClass.lookupLocalMember(const SourceString('apply')); 439 functionClass.lookupLocalMember(const SourceString('apply'));
443 jsInvocationMirrorClass.ensureResolved(this); 440 jsInvocationMirrorClass.ensureResolved(this);
444 invokeOnMethod = jsInvocationMirrorClass.lookupLocalMember( 441 invokeOnMethod = jsInvocationMirrorClass.lookupLocalMember(
445 const SourceString('invokeOn')); 442 const SourceString('invokeOn'));
446 } 443 }
447 444
448 void loadCoreImplLibrary() {
449 Uri coreImplUri = new Uri.fromComponents(scheme: 'dart', path: 'coreimpl');
450 coreImplLibrary = libraryLoader.loadLibrary(coreImplUri, null, coreImplUri);
451 }
452
453 void importHelperLibrary(LibraryElement library) { 445 void importHelperLibrary(LibraryElement library) {
454 if (jsHelperLibrary != null) { 446 if (jsHelperLibrary != null) {
455 libraryLoader.importLibrary(library, jsHelperLibrary, null); 447 libraryLoader.importLibrary(library, jsHelperLibrary, null);
456 } 448 }
457 } 449 }
458 450
459 /** 451 /**
460 * Get an [Uri] pointing to a patch for the dart: library with 452 * Get an [Uri] pointing to a patch for the dart: library with
461 * the given path. Returns null if there is no patch. 453 * the given path. Returns null if there is no patch.
462 */ 454 */
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 // TODO(johnniwinther): Use [spannable] and [message] to provide better 902 // TODO(johnniwinther): Use [spannable] and [message] to provide better
911 // information on assertion errors. 903 // information on assertion errors.
912 if (condition is Function){ 904 if (condition is Function){
913 condition = condition(); 905 condition = condition();
914 } 906 }
915 if (spannable == null || !condition) { 907 if (spannable == null || !condition) {
916 throw new SpannableAssertionFailure(spannable, message); 908 throw new SpannableAssertionFailure(spannable, message);
917 } 909 }
918 return true; 910 return true;
919 } 911 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698