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

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

Issue 1220333003: dart2js: Rename emitters. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: 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/new_emitter/emitter.dart
diff --git a/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart
deleted file mode 100644
index b431c6d65645fb692371ce6d6c027c549ec0c726..0000000000000000000000000000000000000000
--- a/pkg/compiler/lib/src/js_emitter/new_emitter/emitter.dart
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright (c) 2014, 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.new_js_emitter.emitter;
-
-import 'package:js_runtime/shared/embedded_names.dart' show
- JsBuiltin,
- METADATA,
- TYPES;
-
-import '../program_builder.dart' show ProgramBuilder;
-import '../model.dart';
-import 'model_emitter.dart';
-import '../../common.dart';
-import '../../elements/elements.dart' show FieldElement;
-import '../../js/js.dart' as js;
-
-import '../../js_backend/js_backend.dart' show
- JavaScriptBackend,
- Namer;
-
-import '../js_emitter.dart' show
- NativeEmitter;
-
-import '../js_emitter.dart' as emitterTask show
- Emitter;
-
-import '../../util/util.dart' show
- NO_LOCATION_SPANNABLE;
-
-class Emitter implements emitterTask.Emitter {
- final Compiler _compiler;
- final Namer namer;
- final ModelEmitter _emitter;
-
- JavaScriptBackend get _backend => _compiler.backend;
-
- Emitter(Compiler compiler, Namer namer, NativeEmitter nativeEmitter)
- : this._compiler = compiler,
- this.namer = namer,
- _emitter = new ModelEmitter(compiler, namer, nativeEmitter);
-
- @override
- int emitProgram(ProgramBuilder programBuilder) {
- Program program = programBuilder.buildProgram();
- return _emitter.emitProgram(program);
- }
-
- // TODO(floitsch): copied from OldEmitter. Adjust or share.
- @override
- bool isConstantInlinedOrAlreadyEmitted(ConstantValue constant) {
- return _emitter.isConstantInlinedOrAlreadyEmitted(constant);
- }
-
- // TODO(floitsch): copied from OldEmitter. Adjust or share.
- @override
- int compareConstants(ConstantValue a, ConstantValue b) {
- return _emitter.compareConstants(a, b);
- }
-
- @override
- js.Expression constantReference(ConstantValue value) {
- return _emitter.generateConstantReference(value);
- }
-
- @override
- js.Expression generateEmbeddedGlobalAccess(String global) {
- return _emitter.generateEmbeddedGlobalAccess(global);
- }
-
- @override
- // TODO(herhut): Use a single shared function.
- js.Expression generateFunctionThatReturnsNull() {
- return js.js('function() {}');
- }
-
- js.PropertyAccess _globalPropertyAccess(Element element) {
- js.Name name = namer.globalPropertyName(element);
- js.PropertyAccess pa = new js.PropertyAccess(
- new js.VariableUse(namer.globalObjectFor(element)), name);
- return pa;
- }
-
- @override
- js.Expression isolateLazyInitializerAccess(FieldElement element) {
- return js.js('#.#', [namer.globalObjectFor(element),
- namer.lazyInitializerName(element)]);
- }
-
- @override
- js.Expression isolateStaticClosureAccess(FunctionElement element) {
- return _emitter.generateStaticClosureAccess(element);
- }
-
- @override
- js.PropertyAccess staticFieldAccess(FieldElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
- js.PropertyAccess staticFunctionAccess(FunctionElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
- js.PropertyAccess constructorAccess(ClassElement element) {
- return _globalPropertyAccess(element);
- }
-
- @override
- js.PropertyAccess prototypeAccess(ClassElement element,
- bool hasBeenInstantiated) {
- js.Expression constructor =
- hasBeenInstantiated ? constructorAccess(element) : typeAccess(element);
- return js.js('#.prototype', constructor);
- }
-
- @override
- js.Expression interceptorClassAccess(ClassElement element) {
- // Some interceptors are eagerly constructed. However, native interceptors
- // aren't.
- return js.js('#.ensureResolved()', _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));
- }
-
- @override
- js.Template templateForBuiltin(JsBuiltin builtin) {
- String typeNameProperty = ModelEmitter.typeNameProperty;
-
- switch (builtin) {
- case JsBuiltin.dartObjectConstructor:
- return js.js.expressionTemplateYielding(
- typeAccess(_compiler.objectClass));
-
- case JsBuiltin.isCheckPropertyToJsConstructorName:
- int isPrefixLength = namer.operatorIsPrefix.length;
- return js.js.expressionTemplateFor('#.substring($isPrefixLength)');
-
- case JsBuiltin.isFunctionType:
- return _backend.rti.representationGenerator.templateForIsFunctionType;
-
- case JsBuiltin.rawRtiToJsConstructorName:
- return js.js.expressionTemplateFor("#.$typeNameProperty");
-
- case JsBuiltin.rawRuntimeType:
- return js.js.expressionTemplateFor("#.constructor");
-
- case JsBuiltin.createFunctionTypeRti:
- return _backend.rti.representationGenerator
- .templateForCreateFunctionType;
-
- case JsBuiltin.isSubtype:
- // TODO(floitsch): move this closer to where is-check properties are
- // built.
- String isPrefix = namer.operatorIsPrefix;
- return js.js.expressionTemplateFor("('$isPrefix' + #) in #.prototype");
-
- case JsBuiltin.isGivenTypeRti:
- return js.js.expressionTemplateFor('#.$typeNameProperty === #');
-
- case JsBuiltin.getMetadata:
- return _emitter.templateForReadMetadata;
-
- case JsBuiltin.getType:
- return _emitter.templateForReadType;
-
- default:
- _compiler.internalError(NO_LOCATION_SPANNABLE,
- "Unhandled Builtin: $builtin");
- return null;
- }
- }
-
- @override
- void invalidateCaches() {
- }
-}

Powered by Google App Engine
This is Rietveld 408576698