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

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

Issue 2568723007: Create Namer and Emitter on codegen start. (Closed)
Patch Set: Small fix. Created 4 years 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 96d991a3baf98ff1884d30260a8adf89aac84934..d4e36a0e8fc7731bb741e6efe3691f5b9252d69e 100644
--- a/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/class_stub_generator.dart
@@ -6,10 +6,14 @@ part of dart2js.js_emitter;
class ClassStubGenerator {
final Namer namer;
- final Compiler compiler;
final JavaScriptBackend backend;
+ final CodegenWorldBuilder codegenWorld;
+ final ClosedWorld closedWorld;
+ final bool enableMinification;
- ClassStubGenerator(this.compiler, this.namer, this.backend);
+ ClassStubGenerator(
+ this.namer, this.backend, this.codegenWorld, this.closedWorld,
+ {this.enableMinification});
jsAst.Expression generateClassConstructor(ClassElement classElement,
Iterable<jsAst.Name> fields, bool hasRtiField) {
@@ -93,7 +97,7 @@ class ClassStubGenerator {
for (Selector selector in selectors.keys) {
if (generatedSelectors.contains(selector)) continue;
if (!selector.appliesUnnamed(member)) continue;
- if (selectors[selector].applies(member, selector, compiler.closedWorld)) {
+ if (selectors[selector].applies(member, selector, closedWorld)) {
generatedSelectors.add(selector);
jsAst.Name invocationName = namer.invocationName(selector);
@@ -126,7 +130,7 @@ class ClassStubGenerator {
Map<jsAst.Name, Selector> jsNames = <jsAst.Name, Selector>{};
// Do not generate no such method handlers if there is no class.
- if (compiler.codegenWorld.directlyInstantiatedClasses.isEmpty) {
+ if (codegenWorld.directlyInstantiatedClasses.isEmpty) {
return jsNames;
}
@@ -134,16 +138,16 @@ class ClassStubGenerator {
String ignore, Map<Selector, SelectorConstraints> selectors) {
for (Selector selector in selectors.keys) {
SelectorConstraints maskSet = selectors[selector];
- if (maskSet.needsNoSuchMethodHandling(selector, compiler.closedWorld)) {
+ if (maskSet.needsNoSuchMethodHandling(selector, closedWorld)) {
jsAst.Name jsName = namer.invocationMirrorInternalName(selector);
jsNames[jsName] = selector;
}
}
}
- compiler.codegenWorld.forEachInvokedName(addNoSuchMethodHandlers);
- compiler.codegenWorld.forEachInvokedGetter(addNoSuchMethodHandlers);
- compiler.codegenWorld.forEachInvokedSetter(addNoSuchMethodHandlers);
+ codegenWorld.forEachInvokedName(addNoSuchMethodHandlers);
+ codegenWorld.forEachInvokedGetter(addNoSuchMethodHandlers);
+ codegenWorld.forEachInvokedSetter(addNoSuchMethodHandlers);
return jsNames;
}
@@ -175,8 +179,8 @@ class ClassStubGenerator {
'noSuchMethodName': namer.noSuchMethodName,
'createInvocationMirror': backend.emitter
.staticFunctionAccess(backend.helpers.createInvocationMirror),
- 'methodName': js.quoteName(
- compiler.options.enableMinification ? internalName : methodName),
+ 'methodName':
+ js.quoteName(enableMinification ? internalName : methodName),
'internalName': js.quoteName(internalName),
'type': js.number(type),
'arguments':
« 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