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

Unified Diff: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart

Issue 1026353002: Revert "dart2js: remove first argument from lazy function." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
index 64b6425429ab146416fc34bac4f1794dffee8abf..e05d1df1d8847e3dc77fcabd367e338640a928f4 100644
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
@@ -875,8 +875,9 @@ class OldEmitter implements Emitter {
// lazyInitializer(prototype, 'name', fieldName, getterName, initial);
// The name is used for error reporting. The 'initial' must be a
// closure that constructs the initial value.
- return js('#(#,#,#,#)',
+ return js('#(#,#,#,#,#)',
[js(lazyInitializerName),
+ js(isolateProperties),
js.string(element.name),
js.string(namer.globalPropertyName(element)),
js.string(namer.lazyInitializerName(element)),
@@ -1023,28 +1024,28 @@ class OldEmitter implements Emitter {
#finishedClasses = Object.create(null);
if (#needsLazyInitializer) {
- $lazyInitializerName = function (staticName, fieldName,
+ $lazyInitializerName = function (prototype, staticName, fieldName,
getterName, lazyValue) {
if (!#lazies) #lazies = Object.create(null);
#lazies[fieldName] = getterName;
var sentinelUndefined = {};
var sentinelInProgress = {};
- $isolateProperties[fieldName] = sentinelUndefined;
+ prototype[fieldName] = sentinelUndefined;
- $isolateProperties[getterName] = function () {
- var result = this[fieldName];
+ prototype[getterName] = function () {
+ var result = $isolate[fieldName];
try {
if (result === sentinelUndefined) {
- this[fieldName] = sentinelInProgress;
+ $isolate[fieldName] = sentinelInProgress;
try {
- result = this[fieldName] = lazyValue();
+ result = $isolate[fieldName] = lazyValue();
} finally {
// Use try-finally, not try-catch/throw as it destroys the
// stack trace.
if (result === sentinelUndefined)
- this[fieldName] = null;
+ $isolate[fieldName] = null;
}
} else {
if (result === sentinelInProgress)
@@ -1053,7 +1054,7 @@ class OldEmitter implements Emitter {
return result;
} finally {
- this[getterName] = function() { return this[fieldName]; };
+ $isolate[getterName] = function() { return this[fieldName]; };
}
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698