anchor.diff:            // Then run the [SsaCheckInserter] because the type propagator also
             // propagated types non-speculatively. For example, it might have
             // propagated the type array for a call to the List constructor.
  -          new SsaCheckInserter(backend, types, context.boundsChecked)];
  +          new SsaCheckInserter(backend, work, types, context.boundsChecked)];
         runPhases(graph, phases);
         return !work.guards.isEmpty;
       });
  
positive.code:           new SsaConstantFolder(constantSystem, backend, work, types),
            new SsaTypeConversionInserter(compiler),
            new SsaTypePropagator(compiler, types),
            new SsaCheckInserter(backend, types, context.boundsChecked),
            new SsaConstantFolder(constantSystem, backend, work, types),
            new SsaRedundantPhiEliminator(),
            new SsaDeadPhiEliminator(),
  
negative.code:   final HTypeMap types;
    final ConstantSystem constantSystem;
    final Set<HInstruction> boundsChecked;
    final WorkItem work;
    final String name = "SsaCheckInserter";
    HGraph graph;
    Element lengthInterceptor;
    Selector lengthSelector;
  
    SsaCheckInserter(JavaScriptBackend backend,
                     this.work,
                     this.types,
                     this.boundsChecked)
        : constantSystem = backend.constantSystem {
      SourceString lengthString = const SourceString('length');
      lengthSelector =
          new Selector.getter(lengthString, work.element.getLibrary());
      lengthInterceptor =
          backend.builder.interceptors.getStaticInterceptor(lengthSelector);
    }
  