| Index: dart/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart b/dart/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| index 1169e1d61a9f7153184e5b6d1e76d619d8502c4f..6b10c17afffd1c8b9093c70485fbe5f992036f26 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/ssa/codegen.dart
|
| @@ -1524,7 +1524,8 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| methodName = 'split';
|
| // Split returns a List, so we make sure the backend knows the
|
| // list class is instantiated.
|
| - world.registerInstantiatedClass(compiler.listClass);
|
| + world.registerInstantiatedClass(
|
| + compiler.listClass, work.resolutionTree);
|
| } else if (target == backend.jsStringConcat) {
|
| push(new js.Binary('+', object, arguments[0]), node);
|
| return;
|
| @@ -1645,7 +1646,8 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| void registerGetter(HInvokeDynamic node) {
|
| Selector selector = getOptimizedSelectorFor(node, node.selector);
|
| world.registerDynamicGetter(selector.name, selector);
|
| - world.registerInstantiatedClass(compiler.functionClass);
|
| + world.registerInstantiatedClass(
|
| + compiler.functionClass, work.resolutionTree);
|
| registerInvoke(node, selector);
|
| }
|
|
|
| @@ -1773,7 +1775,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| assert(type == HType.UNKNOWN);
|
| return;
|
| }
|
| - world.registerInstantiatedClass(dartType.element);
|
| + world.registerInstantiatedClass(dartType.element, work.resolutionTree);
|
| }
|
|
|
| visitForeign(HForeign node) {
|
| @@ -1836,10 +1838,10 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| if (node.constant is ConstructedConstant ||
|
| node.constant is InterceptorConstant) {
|
| ConstantHandler handler = compiler.constantHandler;
|
| - handler.registerCompileTimeConstant(node.constant);
|
| + handler.registerCompileTimeConstant(node.constant, work.resolutionTree);
|
| }
|
| if (node.constant is! InterceptorConstant) {
|
| - world.registerInstantiatedClass(type.element);
|
| + world.registerInstantiatedClass(type.element, work.resolutionTree);
|
| }
|
| }
|
|
|
| @@ -2049,7 +2051,8 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| if (instr is !HInvokeStatic) {
|
| backend.registerNonCallStaticUse(node);
|
| if (node.element.isFunction()) {
|
| - world.registerInstantiatedClass(compiler.functionClass);
|
| + world.registerInstantiatedClass(
|
| + compiler.functionClass, work.resolutionTree);
|
| }
|
| } else if (instr.target != node) {
|
| backend.registerNonCallStaticUse(node);
|
| @@ -2060,7 +2063,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| ClassElement cls = element.getEnclosingClass();
|
| if (element.isGenerativeConstructor()
|
| || (element.isFactoryConstructor() && cls == compiler.listClass)) {
|
| - world.registerInstantiatedClass(cls);
|
| + world.registerInstantiatedClass(cls, work.resolutionTree);
|
| }
|
| push(new js.VariableUse(backend.namer.isolateAccess(node.element)));
|
| }
|
| @@ -2116,7 +2119,8 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| }
|
|
|
| void visitLiteralList(HLiteralList node) {
|
| - world.registerInstantiatedClass(compiler.listClass);
|
| + world.registerInstantiatedClass(
|
| + compiler.listClass, work.resolutionTree);
|
| generateArrayLiteral(node);
|
| }
|
|
|
| @@ -2250,7 +2254,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| void checkType(HInstruction input, DartType type, {bool negative: false}) {
|
| assert(invariant(input, !type.isMalformed,
|
| message: 'Attempt to check malformed type $type'));
|
| - world.registerIsCheck(type);
|
| + world.registerIsCheck(type, work.resolutionTree);
|
| Element element = type.element;
|
| use(input);
|
| js.PropertyAccess field =
|
| @@ -2312,7 +2316,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
|
|
| void visitIs(HIs node) {
|
| DartType type = node.typeExpression;
|
| - world.registerIsCheck(type);
|
| + world.registerIsCheck(type, work.resolutionTree);
|
| Element element = type.element;
|
| if (identical(element.kind, ElementKind.TYPE_VARIABLE)) {
|
| compiler.unimplemented("visitIs for type variables",
|
| @@ -2385,7 +2389,7 @@ abstract class SsaCodeGenerator implements HVisitor, HBlockInformationVisitor {
|
| if (node.isChecked) {
|
| DartType type = node.instructionType.computeType(compiler);
|
| Element element = type.element;
|
| - world.registerIsCheck(type);
|
| + world.registerIsCheck(type, work.resolutionTree);
|
|
|
| if (node.isArgumentTypeCheck) {
|
| if (element == backend.jsIntClass) {
|
|
|