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

Unified Diff: dart/pkg/dart2js_incremental/lib/library_updater.dart

Issue 764353002: Follow up to CL 764533002. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r42279 and CL 760383003. Created 6 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 | « dart/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/pkg/dart2js_incremental/lib/library_updater.dart
diff --git a/dart/pkg/dart2js_incremental/lib/library_updater.dart b/dart/pkg/dart2js_incremental/lib/library_updater.dart
index 18321507666bf52c6506c0e88653ff0b6fdda21a..9bb2c30930755325fab9ec75dc1d42c9b25bff6d 100644
--- a/dart/pkg/dart2js_incremental/lib/library_updater.dart
+++ b/dart/pkg/dart2js_incremental/lib/library_updater.dart
@@ -618,7 +618,7 @@ class LibraryUpdater extends JsFeatures {
if (!newClasses.isEmpty) {
// Ask the emitter to compute "needs" (only) if new classes were
// instantiated.
- _ensureNeedsComputed();
+ _ensureAllNeededEntitiesComputed();
newClasses = new Set.from(emitter.neededClasses);
newClasses.removeAll(_emittedClasses);
} else {
@@ -645,8 +645,7 @@ class LibraryUpdater extends JsFeatures {
jsAst.Node superAccess = emitter.classAccess(superclass);
inherits.add(
js.statement(
- r'self.$dart_unsafe_eval.inheritFrom(#, #)',
- [classAccess, superAccess]));
+ r'#.inheritFrom(#, #)', [helper, classAccess, superAccess]));
}
}
@@ -663,8 +662,9 @@ class LibraryUpdater extends JsFeatures {
jsAst.Node classAccess = emitter.classAccess(cls);
updates.add(
js.statement(
- r'# = self.$dart_unsafe_eval.schemaChange(#, #, #)',
- [classAccess, invokeDefineClass(cls), classAccess, superAccess]));
+ r'# = #.schemaChange(#, #, #)',
+ [classAccess, helper,
+ invokeDefineClass(cls), classAccess, superAccess]));
}
for (RemovalUpdate update in removals) {
@@ -683,7 +683,7 @@ class LibraryUpdater extends JsFeatures {
newConstants.removeAll(_compiledConstants);
if (!newConstants.isEmpty) {
- _ensureNeedsComputed();
+ _ensureAllNeededEntitiesComputed();
List<ConstantValue> constants =
emitter.outputConstantLists[compiler.deferredLoadTask.mainOutputUnit];
if (constants != null) {
@@ -698,11 +698,11 @@ class LibraryUpdater extends JsFeatures {
}
updates.add(js.statement(r'''
-if (self.$dart_unsafe_eval.pendingStubs) {
- self.$dart_unsafe_eval.pendingStubs.map(function(e) { return e(); });
- self.$dart_unsafe_eval.pendingStubs = void 0;
+if (#helper.pendingStubs) {
+ #helper.pendingStubs.map(function(e) { return e(); });
+ #helper.pendingStubs = void 0;
}
-'''));
+''', {'helper': helper}));
if (updates.length == 1) {
return prettyPrintJs(updates.single);
@@ -718,10 +718,12 @@ if (self.$dart_unsafe_eval.pendingStubs) {
r'''
(new Function(
"$collectedClasses", "$desc",
- self.$dart_unsafe_eval.defineClass(#, #) +"\n;return " + #))({#: #})''',
- [js.string(name), js.stringArray(computeFields(cls)),
- js.string(name),
- js.string(name), descriptor]);
+ #helper.defineClass(#name, #computeFields) +"\n;return " + #name))(
+ {#name: #descriptor})''',
+ {'helper': helper,
+ 'name': js.string(name),
+ 'computeFields': js.stringArray(computeFields(cls)),
+ 'descriptor': descriptor});
}
jsAst.Node computeMethodUpdateJs(Element element) {
@@ -732,7 +734,7 @@ if (self.$dart_unsafe_eval.pendingStubs) {
ClassBuilder builder = new ClassBuilder(element, namer);
containerBuilder.addMemberMethodFromInfo(info, builder);
jsAst.Node partialDescriptor =
- builder.toObjectInitializer(omitClassDescriptor: true);
+ builder.toObjectInitializer(emitClassDescriptor: false);
String name = info.name;
jsAst.Node function = info.code;
@@ -752,8 +754,8 @@ if (self.$dart_unsafe_eval.pendingStubs) {
emitter.generateEmbeddedGlobalAccess(embeddedNames.GLOBAL_FUNCTIONS);
return js.statement(
- r'self.$dart_unsafe_eval.addMethod(#, #, #, #, #)',
- [partialDescriptor, js.string(name), holder,
+ r'#.addMethod(#, #, #, #, #)',
+ [helper, partialDescriptor, js.string(name), holder,
new jsAst.LiteralBool(isStatic), globalFunctionsAccess]);
}
@@ -801,7 +803,7 @@ if (self.$dart_unsafe_eval.pendingStubs) {
return new EmitterHelper(compiler).computeFields(cls);
}
- void _ensureNeedsComputed() {
+ void _ensureAllNeededEntitiesComputed() {
if (_hasComputedNeeds) return;
emitter.computeAllNeededEntities();
_hasComputedNeeds = true;
@@ -1258,6 +1260,8 @@ abstract class JsFeatures {
ContainerBuilder get containerBuilder => emitter.oldEmitter.containerBuilder;
EnqueueTask get enqueuer => compiler.enqueuer;
+
+ jsAst.Expression get helper => namer.accessIncrementalHelper;
}
class EmitterHelper extends JsFeatures {
« no previous file with comments | « dart/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698