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

Unified Diff: pkg/compiler/lib/src/js_emitter/class_stub_generator.dart

Issue 2642063003: Use entities in class_stub_generator. (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer.dart ('k') | pkg/compiler/lib/src/js_emitter/code_emitter_task.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
diff --git a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
index f932f48a6e3c27c5e890c1b4a53f2c89a66a098c..06d08dfbec303bc2442ba22a77c6b3dc9bb48de6 100644
--- a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
@@ -4,19 +4,12 @@
library dart2js.js_emitter.class_stub_generator;
-import '../common.dart';
import '../common/names.dart' show Identifiers;
import '../compiler.dart' show Compiler;
-import '../elements/elements.dart'
- show
- ClassElement,
- Element;
+import '../elements/entities.dart';
import '../js/js.dart' as jsAst;
import '../js/js.dart' show js;
-import '../js_backend/js_backend.dart'
- show
- JavaScriptBackend,
- Namer;
+import '../js_backend/js_backend.dart' show JavaScriptBackend, Namer;
Siggi Cherem (dart-lang) 2017/01/19 16:44:42 I see that you are fixing format here after the ot
import '../universe/selector.dart' show Selector;
import '../universe/world_builder.dart'
show CodegenWorldBuilder, SelectorConstraints;
@@ -35,8 +28,8 @@ class ClassStubGenerator {
this.namer, this.backend, this.worldBuilder, this.closedWorld,
{this.enableMinification});
- jsAst.Expression generateClassConstructor(ClassElement classElement,
- Iterable<jsAst.Name> fields, bool hasRtiField) {
+ jsAst.Expression generateClassConstructor(
+ ClassEntity classElement, Iterable<jsAst.Name> fields, bool hasRtiField) {
// TODO(sra): Implement placeholders in VariableDeclaration position:
//
// String constructorName = namer.getNameOfClass(classElement);
@@ -60,15 +53,15 @@ class ClassStubGenerator {
]);
}
- jsAst.Expression generateGetter(Element member, jsAst.Name fieldName) {
- ClassElement cls = member.enclosingClass;
+ jsAst.Expression generateGetter(MemberEntity member, jsAst.Name fieldName) {
+ ClassEntity cls = member.enclosingClass;
String receiver = backend.isInterceptorClass(cls) ? 'receiver' : 'this';
List<String> args = backend.isInterceptedMethod(member) ? ['receiver'] : [];
return js('function(#) { return #.# }', [args, receiver, fieldName]);
}
- jsAst.Expression generateSetter(Element member, jsAst.Name fieldName) {
- ClassElement cls = member.enclosingClass;
+ jsAst.Expression generateSetter(MemberEntity member, jsAst.Name fieldName) {
+ ClassEntity cls = member.enclosingClass;
String receiver = backend.isInterceptorClass(cls) ? 'receiver' : 'this';
List<String> args = backend.isInterceptedMethod(member) ? ['receiver'] : [];
// TODO(floitsch): remove 'return'?
@@ -82,9 +75,7 @@ class ClassStubGenerator {
* Invariant: [member] must be a declaration element.
*/
Map<jsAst.Name, jsAst.Expression> generateCallStubsForGetter(
- Element member, Map<Selector, SelectorConstraints> selectors) {
- assert(invariant(member, member.isDeclaration));
-
+ MemberEntity member, Map<Selector, SelectorConstraints> selectors) {
// If the method is intercepted, the stub gets the
// receiver explicitely and we need to pass it to the getter call.
bool isInterceptedMethod = backend.isInterceptedMethod(member);
@@ -237,7 +228,7 @@ List<jsAst.Statement> buildTearOffCode(JavaScriptBackend backend) {
Namer namer = backend.namer;
Compiler compiler = backend.compiler;
- Element closureFromTearOff = backend.helpers.closureFromTearOff;
+ FunctionEntity closureFromTearOff = backend.helpers.closureFromTearOff;
jsAst.Expression tearOffAccessExpression;
jsAst.Expression tearOffGlobalObjectString;
jsAst.Expression tearOffGlobalObject;
@@ -245,9 +236,9 @@ List<jsAst.Statement> buildTearOffCode(JavaScriptBackend backend) {
tearOffAccessExpression =
backend.emitter.staticFunctionAccess(closureFromTearOff);
tearOffGlobalObject =
- js.stringPart(namer.globalObjectFor(closureFromTearOff));
+ js.stringPart(namer.globalObjectForMethod(closureFromTearOff));
tearOffGlobalObjectString =
- js.string(namer.globalObjectFor(closureFromTearOff));
+ js.string(namer.globalObjectForMethod(closureFromTearOff));
} else {
// Default values for mocked-up test libraries.
tearOffAccessExpression =
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer.dart ('k') | pkg/compiler/lib/src/js_emitter/code_emitter_task.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698