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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend_helpers.dart

Issue 2653203002: Use entities in CommonElements interface. (Closed)
Patch Set: 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
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 dart2js.js_backend.helpers; 5 library dart2js.js_backend.helpers;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/names.dart' show Identifiers, Uris; 8 import '../common/names.dart' show Identifiers, Uris;
9 import '../common/resolution.dart' show Resolution; 9 import '../common/resolution.dart' show Resolution;
10 import '../compiler.dart' show Compiler; 10 import '../compiler.dart' show Compiler;
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 _find(jsHelperLibrary, name); 210 _find(jsHelperLibrary, name);
211 Element _findAsyncHelper(String name) => _find(asyncLibrary, name); 211 Element _findAsyncHelper(String name) => _find(asyncLibrary, name);
212 Element _findInterceptor(String name) => _find(interceptorsLibrary, name); 212 Element _findInterceptor(String name) => _find(interceptorsLibrary, name);
213 Element _find(LibraryElement library, String name) { 213 Element _find(LibraryElement library, String name) {
214 Element element = library.implementation.findLocal(name); 214 Element element = library.implementation.findLocal(name);
215 assert(invariant(library, element != null, 215 assert(invariant(library, element != null,
216 message: "Element '$name' not found in '${library.canonicalUri}'.")); 216 message: "Element '$name' not found in '${library.canonicalUri}'."));
217 return element; 217 return element;
218 } 218 }
219 219
220 Element findCoreHelper(String name) => 220 Element findCoreHelper(String name) {
221 compiler.commonElements.coreLibrary.implementation.localLookup(name); 221 LibraryElement coreLibrary = compiler.commonElements.coreLibrary;
222 return coreLibrary.implementation.localLookup(name);
223 }
222 224
223 ConstructorElement _findConstructor(ClassElement cls, String name) { 225 ConstructorElement _findConstructor(ClassElement cls, String name) {
224 cls.ensureResolved(resolution); 226 cls.ensureResolved(resolution);
225 ConstructorElement constructor = cls.lookupConstructor(name); 227 ConstructorElement constructor = cls.lookupConstructor(name);
226 assert(invariant(cls, constructor != null, 228 assert(invariant(cls, constructor != null,
227 message: "Constructor '$name' not found in '${cls}'.")); 229 message: "Constructor '$name' not found in '${cls}'."));
228 return constructor; 230 return constructor;
229 } 231 }
230 232
231 void onLibraryCreated(LibraryElement library) { 233 void onLibraryCreated(LibraryElement library) {
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 assert(loadedLibraries.containsLibrary(DART_INTERCEPTORS)); 351 assert(loadedLibraries.containsLibrary(DART_INTERCEPTORS));
350 assert(loadedLibraries.containsLibrary(DART_JS_HELPER)); 352 assert(loadedLibraries.containsLibrary(DART_JS_HELPER));
351 353
352 if (jsInvocationMirrorClass != null) { 354 if (jsInvocationMirrorClass != null) {
353 jsInvocationMirrorClass.ensureResolved(resolution); 355 jsInvocationMirrorClass.ensureResolved(resolution);
354 invokeOnMethod = jsInvocationMirrorClass.lookupLocalMember(INVOKE_ON); 356 invokeOnMethod = jsInvocationMirrorClass.lookupLocalMember(INVOKE_ON);
355 } 357 }
356 358
357 // [LinkedHashMap] is reexported from dart:collection and can therefore not 359 // [LinkedHashMap] is reexported from dart:collection and can therefore not
358 // be loaded from dart:core in [onLibraryScanned]. 360 // be loaded from dart:core in [onLibraryScanned].
359 mapLiteralClass = compiler.commonElements.coreLibrary.find('LinkedHashMap'); 361 LibraryElement coreLibrary = compiler.commonElements.coreLibrary;
362 mapLiteralClass = coreLibrary.find('LinkedHashMap');
360 assert(invariant( 363 assert(invariant(
361 compiler.commonElements.coreLibrary, mapLiteralClass != null, 364 compiler.commonElements.coreLibrary, mapLiteralClass != null,
362 message: "Element 'LinkedHashMap' not found in 'dart:core'.")); 365 message: "Element 'LinkedHashMap' not found in 'dart:core'."));
363 366
364 // TODO(kasperl): Some tests do not define the special JSArray 367 // TODO(kasperl): Some tests do not define the special JSArray
365 // subclasses, so we check to see if they are defined before 368 // subclasses, so we check to see if they are defined before
366 // trying to resolve them. 369 // trying to resolve them.
367 if (jsFixedArrayClass != null) { 370 if (jsFixedArrayClass != null) {
368 jsFixedArrayClass.ensureResolved(resolution); 371 jsFixedArrayClass.ensureResolved(resolution);
369 } 372 }
(...skipping 18 matching lines...) Expand all
388 jsArrayClass.ensureResolved(resolution); 391 jsArrayClass.ensureResolved(resolution);
389 jsArrayTypedConstructor = compiler.lookupElementIn(jsArrayClass, 'typed'); 392 jsArrayTypedConstructor = compiler.lookupElementIn(jsArrayClass, 'typed');
390 jsArrayRemoveLast = compiler.lookupElementIn(jsArrayClass, 'removeLast'); 393 jsArrayRemoveLast = compiler.lookupElementIn(jsArrayClass, 'removeLast');
391 jsArrayAdd = compiler.lookupElementIn(jsArrayClass, 'add'); 394 jsArrayAdd = compiler.lookupElementIn(jsArrayClass, 'add');
392 395
393 jsStringClass.ensureResolved(resolution); 396 jsStringClass.ensureResolved(resolution);
394 jsStringSplit = compiler.lookupElementIn(jsStringClass, 'split'); 397 jsStringSplit = compiler.lookupElementIn(jsStringClass, 'split');
395 jsStringOperatorAdd = compiler.lookupElementIn(jsStringClass, '+'); 398 jsStringOperatorAdd = compiler.lookupElementIn(jsStringClass, '+');
396 jsStringToString = compiler.lookupElementIn(jsStringClass, 'toString'); 399 jsStringToString = compiler.lookupElementIn(jsStringClass, 'toString');
397 400
398 objectEquals = compiler.lookupElementIn(commonElements.objectClass, '=='); 401 ClassElement objectClass = commonElements.objectClass;
402 objectEquals = compiler.lookupElementIn(objectClass, '==');
399 } 403 }
400 404
401 ConstructorElement _mapLiteralConstructor; 405 ConstructorElement _mapLiteralConstructor;
402 ConstructorElement _mapLiteralConstructorEmpty; 406 ConstructorElement _mapLiteralConstructorEmpty;
403 Element _mapLiteralUntypedMaker; 407 Element _mapLiteralUntypedMaker;
404 Element _mapLiteralUntypedEmptyMaker; 408 Element _mapLiteralUntypedEmptyMaker;
405 409
406 ConstructorElement get mapLiteralConstructor { 410 ConstructorElement get mapLiteralConstructor {
407 _ensureMapLiteralHelpers(); 411 _ensureMapLiteralHelpers();
408 return _mapLiteralConstructor; 412 return _mapLiteralConstructor;
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 } 844 }
841 845
842 ClassElement get stackTraceClass { 846 ClassElement get stackTraceClass {
843 return _findHelper('_StackTrace'); 847 return _findHelper('_StackTrace');
844 } 848 }
845 849
846 MethodElement _objectNoSuchMethod; 850 MethodElement _objectNoSuchMethod;
847 851
848 MethodElement get objectNoSuchMethod { 852 MethodElement get objectNoSuchMethod {
849 if (_objectNoSuchMethod == null) { 853 if (_objectNoSuchMethod == null) {
850 _objectNoSuchMethod = commonElements.objectClass 854 ClassElement objectClass = commonElements.objectClass;
851 .lookupLocalMember(Identifiers.noSuchMethod_); 855 _objectNoSuchMethod =
856 objectClass.lookupLocalMember(Identifiers.noSuchMethod_);
852 } 857 }
853 return _objectNoSuchMethod; 858 return _objectNoSuchMethod;
854 } 859 }
855 860
856 ClassElement get constantMapClass => 861 ClassElement get constantMapClass =>
857 _findHelper(JavaScriptMapConstant.DART_CLASS); 862 _findHelper(JavaScriptMapConstant.DART_CLASS);
858 ClassElement get constantStringMapClass => 863 ClassElement get constantStringMapClass =>
859 _findHelper(JavaScriptMapConstant.DART_STRING_CLASS); 864 _findHelper(JavaScriptMapConstant.DART_STRING_CLASS);
860 ClassElement get constantProtoMapClass => 865 ClassElement get constantProtoMapClass =>
861 _findHelper(JavaScriptMapConstant.DART_PROTO_CLASS); 866 _findHelper(JavaScriptMapConstant.DART_PROTO_CLASS);
(...skipping 13 matching lines...) Expand all
875 } 880 }
876 881
877 MethodElement get toStringForNativeObject { 882 MethodElement get toStringForNativeObject {
878 return _findHelper('toStringForNativeObject'); 883 return _findHelper('toStringForNativeObject');
879 } 884 }
880 885
881 MethodElement get hashCodeForNativeObject { 886 MethodElement get hashCodeForNativeObject {
882 return _findHelper('hashCodeForNativeObject'); 887 return _findHelper('hashCodeForNativeObject');
883 } 888 }
884 } 889 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/compiler/lib/src/js_backend/backend_impact.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698