| Index: pkg/compiler/lib/src/js_emitter/type_test_generator.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/type_test_emitter.dart b/pkg/compiler/lib/src/js_emitter/type_test_generator.dart
|
| similarity index 91%
|
| copy from pkg/compiler/lib/src/js_emitter/old_emitter/type_test_emitter.dart
|
| copy to pkg/compiler/lib/src/js_emitter/type_test_generator.dart
|
| index 2607581268d4937a88856faab15e5e47c7f0a7b7..f515ea3ea4fca75edf3fd88b01d1a733ff755abf 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/type_test_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/type_test_generator.dart
|
| @@ -1,18 +1,28 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// 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.
|
|
|
| part of dart2js.js_emitter;
|
|
|
| -class TypeTestEmitter extends CodeEmitterHelper {
|
| +class TypeTestGenerator {
|
| + final Compiler compiler;
|
| + final CodeEmitterTask emitterTask;
|
| + final Namer namer;
|
| +
|
| + TypeTestGenerator(this.compiler, this.emitterTask, this.namer);
|
| +
|
| + JavaScriptBackend get backend => compiler.backend;
|
| + OldEmitter get oldEmitter => emitterTask.oldEmitter;
|
| + TypeTestRegistry get typeTestRegistry => emitterTask.typeTestRegistry;
|
| +
|
| Set<ClassElement> get checkedClasses =>
|
| - emitter.typeTestRegistry.checkedClasses;
|
| + typeTestRegistry.checkedClasses;
|
|
|
| Iterable<ClassElement> get classesUsingTypeVariableTests =>
|
| - emitter.typeTestRegistry.classesUsingTypeVariableTests;
|
| + typeTestRegistry.classesUsingTypeVariableTests;
|
|
|
| Set<FunctionType> get checkedFunctionTypes =>
|
| - emitter.typeTestRegistry.checkedFunctionTypes;
|
| + typeTestRegistry.checkedFunctionTypes;
|
|
|
| void emitIsTests(ClassElement classElement, ClassBuilder builder) {
|
| assert(invariant(classElement, classElement.isDeclaration));
|
| @@ -44,7 +54,7 @@ class TypeTestEmitter extends CodeEmitterHelper {
|
| jsAst.Expression encoding = rti.getSignatureEncoding(type, thisAccess);
|
| String operatorSignature = namer.operatorSignature;
|
| if (!type.containsTypeVariables) {
|
| - builder.functionType = '${emitter.metadataEmitter.reifyType(type)}';
|
| + builder.functionType = '${oldEmitter.metadataEmitter.reifyType(type)}';
|
| } else {
|
| builder.addProperty(operatorSignature, encoding);
|
| }
|
| @@ -54,7 +64,8 @@ class TypeTestEmitter extends CodeEmitterHelper {
|
| if (cls.typeVariables.isEmpty) return;
|
| RuntimeTypes rti = backend.rti;
|
| jsAst.Expression expression;
|
| - bool needsNativeCheck = emitter.nativeEmitter.requiresNativeIsCheck(cls);
|
| + bool needsNativeCheck =
|
| + oldEmitter.nativeEmitter.requiresNativeIsCheck(cls);
|
| expression = rti.getSupertypeSubstitution(classElement, cls);
|
| if (expression == null && (emitNull || needsNativeCheck)) {
|
| expression = new jsAst.LiteralNull();
|
|
|