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

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

Issue 1225293002: dart2js: add skeleton of startup-emitter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Reupload Created 5 years, 5 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
Index: pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
similarity index 82%
copy from pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart
copy to pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
index e8b7a5d974beb9b34f5a93a25f7cbaa2d5ea1d99..99cb746cfc85ec87b51549b0d1ff3669a00e0646 100644
--- a/pkg/compiler/lib/src/js_emitter/lazy_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/startup_emitter/emitter.dart
@@ -1,8 +1,8 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library dart2js.js_emitter.lazy_emitter;
+library dart2js.js_emitter.startup_emitter;
import 'package:js_runtime/shared/embedded_names.dart' show
JsBuiltin,
@@ -17,8 +17,8 @@ import '../../elements/elements.dart' show FieldElement;
import '../../js/js.dart' as js;
import '../../js_backend/js_backend.dart' show
- JavaScriptBackend,
- Namer;
+JavaScriptBackend,
+Namer;
import '../js_emitter.dart' show
NativeEmitter;
@@ -47,13 +47,11 @@ class Emitter implements emitterTask.Emitter {
return _emitter.emitProgram(program);
}
- // TODO(floitsch): copied from full emitter. Adjust or share.
@override
bool isConstantInlinedOrAlreadyEmitted(ConstantValue constant) {
return _emitter.isConstantInlinedOrAlreadyEmitted(constant);
}
- // TODO(floitsch): copied from full emitter. Adjust or share.
@override
int compareConstants(ConstantValue a, ConstantValue b) {
return _emitter.compareConstants(a, b);
@@ -85,7 +83,7 @@ class Emitter implements emitterTask.Emitter {
@override
js.Expression isolateLazyInitializerAccess(FieldElement element) {
return js.js('#.#', [namer.globalObjectFor(element),
- namer.lazyInitializerName(element)]);
+ namer.lazyInitializerName(element)]);
}
@override
@@ -118,16 +116,12 @@ class Emitter implements emitterTask.Emitter {
@override
js.Expression interceptorClassAccess(ClassElement element) {
- // Some interceptors are eagerly constructed. However, native interceptors
- // aren't.
- return js.js('#.ensureResolved()', _globalPropertyAccess(element));
+ return _globalPropertyAccess(element);
}
@override
js.Expression typeAccess(Element element) {
- // TODO(floitsch): minify 'ensureResolved'.
- // TODO(floitsch): don't emit `ensureResolved` for eager classes.
- return js.js('#.ensureResolved()', _globalPropertyAccess(element));
+ return _globalPropertyAccess(element);
}
@override
@@ -154,11 +148,11 @@ class Emitter implements emitterTask.Emitter {
case JsBuiltin.createFunctionTypeRti:
return _backend.rti.representationGenerator
- .templateForCreateFunctionType;
+ .templateForCreateFunctionType;
case JsBuiltin.isSubtype:
- // TODO(floitsch): move this closer to where is-check properties are
- // built.
+ // TODO(floitsch): move this closer to where is-check properties are
+ // built.
String isPrefix = namer.operatorIsPrefix;
return js.js.expressionTemplateFor("('$isPrefix' + #) in #.prototype");
@@ -166,14 +160,18 @@ class Emitter implements emitterTask.Emitter {
return js.js.expressionTemplateFor('#.$typeNameProperty === #');
case JsBuiltin.getMetadata:
- return _emitter.templateForReadMetadata;
+ String metadataAccess =
+ _emitter.generateEmbeddedGlobalAccessString(METADATA);
+ return js.js.expressionTemplateFor("$metadataAccess[#]");
case JsBuiltin.getType:
- return _emitter.templateForReadType;
+ String typesAccess =
+ _emitter.generateEmbeddedGlobalAccessString(TYPES);
+ return js.js.expressionTemplateFor("$typesAccess[#]");
default:
_compiler.internalError(NO_LOCATION_SPANNABLE,
- "Unhandled Builtin: $builtin");
+ "Unhandled Builtin: $builtin");
return null;
}
}
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/js_emitter.dart ('k') | pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698