anchor.diff:      } else if (selector.isIndex() || selector.isIndexSet()) {
         // For an index operation, this code generates:
         //
  -      // [: if (receiver.constructor == Array || typeof receiver == "string") {
  +      //    if (receiver.constructor == Array || typeof receiver == "string") {
         //      if (a0 >>> 0 === a0 && a0 < receiver.length) {
         //        return receiver[a0];
         //      }
         //    }
  -      // :]
         //
         // For an index set operation, this code generates:
         //
  -      // [: if (receiver.constructor == Array && !receiver.immutable$list) {
  +      //    if (receiver.constructor == Array && !receiver.immutable$list) {
         //      if (a0 >>> 0 === a0 && a0 < receiver.length) {
         //        return receiver[a0] = a1;
         //      }
         //    }
  -      // :]
         bool containsArray = classes.contains(backend.jsArrayClass);
         bool containsString = classes.contains(backend.jsStringClass);
         // The index set operator requires a check on its set value in
  
positive.code:       if (selector.argumentCount == 1) {
          // The following operators do not map to a JavaScript
          // operator.
          if (name != '~/' && name != '<<' && name != '%' && name != '>>') {
            jsAst.Expression result = js('receiver').binary(name, js('a0'));
            if (name == '&' || name == '|' || name == '^') {
              result = tripleShiftZero(result);
            }
            // Unfolds to:
            // [: if (typeof receiver == "number" && typeof a0 == "number")
            //      return receiver op a0;
            // :].
            return js.if_(
                isNumber('receiver').binary('&&', isNumber('a0')),
                js.return_(result));
          }
        } else if (name == 'unary-') {
          // operator~ does not map to a JavaScript operator.
          // Unfolds to:
          // [: if (typeof receiver == "number") return -receiver:].
          return js.if_(isNumber('receiver'),
                        js.return_(js('-receiver')));
        } else {
  
negative.code:       String name = selector.name.stringValue;
        if (name == '==') {
          // Unfolds to:
          //    if (receiver == null) return a0 == null;
          //    if (typeof receiver != 'object') {
          //      return a0 != null && receiver === a0;
          //    }
          List<jsAst.Statement> body = <jsAst.Statement>[];
          body.add(js.if_('receiver == null', js.return_(js('a0 == null'))));
          body.add(js.if_(
  