| Index: pkg/compiler/lib/src/ssa/codegen.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/codegen.dart b/pkg/compiler/lib/src/ssa/codegen.dart
|
| index 5cd48daf59a16f2166c19f568c28ee24c6327130..c53de9316ca87bd1f77a4122c7b5d8edcda14614 100644
|
| --- a/pkg/compiler/lib/src/ssa/codegen.dart
|
| +++ b/pkg/compiler/lib/src/ssa/codegen.dart
|
| @@ -2893,26 +2893,7 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| .getCheckedModeHelper(type, typeCast: node.isCastTypeCheck);
|
| }
|
|
|
| - if (helper == null) {
|
| - assert(type.isFunctionType);
|
| - assert(node.usesMethodOnType);
|
| -
|
| - String name = node.isCastTypeCheck ? '_asCheck' : '_assertCheck';
|
| - HInstruction reifiedType = node.inputs[0];
|
| - HInstruction checkedInput = node.inputs[1];
|
| - use(reifiedType);
|
| - js.Expression receiver = pop();
|
| - use(checkedInput);
|
| - Selector selector = new Selector.call(
|
| - new Name(name, helpers.jsHelperLibrary), CallStructure.ONE_ARG);
|
| - registry.registerDynamicUse(
|
| - new DynamicUse(selector, reifiedType.instructionType));
|
| - js.Name methodLiteral = backend.namer.invocationName(selector);
|
| - push(js.js('#.#(#)', [receiver, methodLiteral, pop()]));
|
| - } else {
|
| - assert(!node.usesMethodOnType);
|
| - push(helper.generateCall(this, node));
|
| - }
|
| + push(helper.generateCall(this, node));
|
| }
|
|
|
| void visitTypeKnown(HTypeKnown node) {
|
| @@ -2920,52 +2901,6 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| assert(false);
|
| }
|
|
|
| - void visitFunctionType(HFunctionType node) {
|
| - FunctionType type = node.dartType;
|
| - int inputCount = 0;
|
| - use(node.inputs[inputCount++]);
|
| - js.Expression returnType = pop();
|
| -
|
| - List<js.Expression> parameterTypes = <js.Expression>[];
|
| - for (var _ in type.parameterTypes) {
|
| - use(node.inputs[inputCount++]);
|
| - parameterTypes.add(pop());
|
| - }
|
| -
|
| - List<js.Expression> optionalParameterTypes = <js.Expression>[];
|
| - for (var _ in type.optionalParameterTypes) {
|
| - use(node.inputs[inputCount++]);
|
| - optionalParameterTypes.add(pop());
|
| - }
|
| -
|
| - List<js.Property> namedParameters = <js.Property>[];
|
| - for (var _ in type.namedParameters) {
|
| - use(node.inputs[inputCount++]);
|
| - js.Expression name = pop();
|
| - use(node.inputs[inputCount++]);
|
| - namedParameters.add(new js.Property(name, pop()));
|
| - }
|
| -
|
| - if (namedParameters.isEmpty) {
|
| - var arguments = [returnType];
|
| - if (!parameterTypes.isEmpty || !optionalParameterTypes.isEmpty) {
|
| - arguments.add(new js.ArrayInitializer(parameterTypes));
|
| - }
|
| - if (!optionalParameterTypes.isEmpty) {
|
| - arguments.add(new js.ArrayInitializer(optionalParameterTypes));
|
| - }
|
| - push(js.js('#(#)', [accessHelper(helpers.buildFunctionType), arguments]));
|
| - } else {
|
| - var arguments = [
|
| - returnType,
|
| - new js.ArrayInitializer(parameterTypes),
|
| - new js.ObjectInitializer(namedParameters)
|
| - ];
|
| - push(js.js(
|
| - '#(#)', [accessHelper(helpers.buildNamedFunctionType), arguments]));
|
| - }
|
| - }
|
| -
|
| void visitTypeInfoReadRaw(HTypeInfoReadRaw node) {
|
| use(node.inputs[0]);
|
| js.Expression receiver = pop();
|
| @@ -3048,76 +2983,6 @@ class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| });
|
| }
|
|
|
| - void visitReadTypeVariable(HReadTypeVariable node) {
|
| - TypeVariableEntity element = node.dartType.element;
|
| - FunctionEntity helperElement = helpers.convertRtiToRuntimeType;
|
| - registry.registerStaticUse(
|
| - new StaticUse.staticInvoke(helperElement, CallStructure.ONE_ARG));
|
| -
|
| - use(node.inputs[0]);
|
| - if (node.hasReceiver) {
|
| - if (backend.interceptorData.isInterceptorClass(element.typeDeclaration)) {
|
| - int index = element.index;
|
| - js.Expression receiver = pop();
|
| - js.Expression helper =
|
| - backend.emitter.staticFunctionAccess(helperElement);
|
| - js.Expression rtiFieldName = backend.namer.rtiFieldJsName;
|
| - push(js.js(r'#(#.# && #.#[#])', [
|
| - helper,
|
| - receiver,
|
| - rtiFieldName,
|
| - receiver,
|
| - rtiFieldName,
|
| - js.js.number(index)
|
| - ]));
|
| - } else {
|
| - backend.emitter.registerReadTypeVariable(element);
|
| - push(js.js(
|
| - '#.#()', [pop(), backend.namer.nameForReadTypeVariable(element)]));
|
| - }
|
| - } else {
|
| - push(js.js('#(#)',
|
| - [backend.emitter.staticFunctionAccess(helperElement), pop()]));
|
| - }
|
| - }
|
| -
|
| - void visitInterfaceType(HInterfaceType node) {
|
| - List<js.Expression> typeArguments = <js.Expression>[];
|
| - for (HInstruction type in node.inputs) {
|
| - use(type);
|
| - typeArguments.add(pop());
|
| - }
|
| - InterfaceType type = node.dartType;
|
| - ClassEntity cls = type.element;
|
| - var arguments = [backend.emitter.typeAccess(cls)];
|
| - if (!typeArguments.isEmpty) {
|
| - arguments.add(new js.ArrayInitializer(typeArguments));
|
| - }
|
| - push(js.js('#(#)', [
|
| - accessHelper(helpers.buildInterfaceType, arguments.length),
|
| - arguments
|
| - ]));
|
| - }
|
| -
|
| - void visitVoidType(HVoidType node) {
|
| - push(js.js('#()', accessHelper(helpers.getVoidRuntimeType)));
|
| - }
|
| -
|
| - void visitDynamicType(HDynamicType node) {
|
| - push(js.js('#()', accessHelper(helpers.getDynamicRuntimeType)));
|
| - }
|
| -
|
| - js.PropertyAccess accessHelper(FunctionEntity helper,
|
| - [int argumentCount = 0]) {
|
| - if (helper == null) {
|
| - // For mocked-up tests.
|
| - return js.js('(void 0).dummy');
|
| - }
|
| - registry.registerStaticUse(new StaticUse.staticInvoke(
|
| - helper, new CallStructure.unnamed(argumentCount)));
|
| - return backend.emitter.staticFunctionAccess(helper);
|
| - }
|
| -
|
| @override
|
| void visitRef(HRef node) {
|
| visit(node.value);
|
|
|