anchor.diff:        js.Expression arrayTest = pop();
         checkType(input, indexingBehavior, negative: true);
         js.Expression notIndexing = new js.Binary('&&', arrayTest, pop());
  -      js.Binary test = new js.Binary('||', objectTest, notIndexing);
  -      js.Statement then = bailout(node, 'Not an array');
  -      pushStatement(new js.If.noElse(test, then), node);
  +      test = new js.Binary('||', objectTest, notIndexing);
  +      message = 'Not an array';
       } else if (node.isIndexablePrimitive()) {
         // if (input is !String
         //     && (input is !Object
  
positive.code:       checkArray(input, '!==');
        js.Expression arrayTest = pop();
        checkFixedArray(input);
        js.Binary test = new js.Binary('||', objectTest, arrayTest);
        test = new js.Binary('||', test, pop());
        js.Statement then = bailout(node, 'Not an extendable array');
        pushStatement(new js.If.noElse(test, then), node);
      } else if (node.isMutableArray()) {
        // if (input is !Object
        //     || ((input is !Array || input.isImmutable)
  
negative.code:       js.Binary notArrayOrImmutable = new js.Binary('||', arrayTest, pop());
        checkType(input, indexingBehavior, negative: true);
        js.Binary notIndexing = new js.Binary('&&', notArrayOrImmutable, pop());
        test = new js.Binary('||', objectTest, notIndexing);
        message = 'Not a mutable array';
      } else if (node.isReadableArray()) {
        // if (input is !Object
        //     || (input is !Array && input is !JsIndexingBehavior)) bailout
  