Index: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart b/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
index cbf357967722e8e41378613afdb0387d586d5d79..1bd903e589e1d552a4c6fc579dabed317ff298da 100644 |
--- a/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
+++ b/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
@@ -2246,7 +2246,6 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { |
assert(invariant(input, !type.isMalformed, |
message: 'Attempt to check malformed type $type')); |
Element element = type.element; |
- |
if (element == backend.jsArrayClass) { |
checkArray(input, negative ? '!==': '==='); |
return; |
@@ -2549,15 +2548,18 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { |
} |
world.registerIsCheck(type, work.resolutionTree); |
+ CheckedModeHelper helper; |
FunctionElement helperElement; |
if (node.isBooleanConversionCheck) { |
- helperElement = |
- compiler.findHelper(const SourceString('boolConversionCheck')); |
+ helper = |
+ const CheckedModeHelper(const SourceString('boolConversionCheck')); |
} else { |
- helperElement = backend.getCheckedModeHelper(type, |
- typeCast: node.isCastTypeCheck); |
+ helper = |
+ backend.getCheckedModeHelper(type, typeCast: node.isCastTypeCheck); |
} |
- world.registerStaticUse(helperElement); |
+ |
+ push(helper.generateCall(this, node)); |
+ /*world.registerStaticUse(helper.getElement(compiler)); |
List<js.Expression> arguments = <js.Expression>[]; |
use(node.checkedInput); |
arguments.add(pop()); |
@@ -2573,7 +2575,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { |
// 2 arguments implies that the method is either [propertyTypeCheck], |
// [propertyTypeCast] or [assertObjectIsSubtype]. |
assert(!type.isMalformed); |
- String additionalArgument = backend.namer.operatorIs(type.element); |
+ String additionalArgument = backend.namer.operatorIsType(type); |
arguments.add(js.string(additionalArgument)); |
} else if (parameterCount == 3) { |
// 3 arguments implies that the method is [malformedTypeCheck]. |
@@ -2595,7 +2597,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor { |
// No additional arguments needed. |
} |
String helperName = backend.namer.isolateAccess(helperElement); |
- push(new js.Call(new js.VariableUse(helperName), arguments)); |
+ push(new js.Call(new js.VariableUse(helperName), arguments));*/ |
} |
} |