anchor.diff:    checkNegateRange(_0_length, -lengthValue, 0);
     checkNegateRange(_0_instruction, -instructionValue, 0);
   }
  +
  +bits32(value) => value & 0xFFFFFFFF;
   
   testAnd() {
     checkAndRange(
  
positive.code:   } else {
      Value low, up;
      if (arg1 is num) {
        low = new IntValue(arg1);
      } else if (arg1 == null) {
        low = new NegateValue(range.upper);
      } else {
        low = arg1;
      }
      if (arg2 is num) {
        up = new IntValue(arg2);
      } else if (arg2 == null) {
        up = new NegateValue(range.lower);
      } else {
        up = arg2;
      }
      Expect.equals(new Range(low, up), -range);
    }
  }
  
  
negative.code: 
  import "../../../lib/compiler/implementation/ssa/ssa.dart";
  import "../../../lib/compiler/implementation/dart2jslib.dart";
  import "../../../lib/compiler/implementation/js_backend/js_backend.dart";
  
  ValueRangeInfo info = new ValueRangeInfo(const JavaScriptConstantSystem());
  
  Value instructionValue = info.newInstructionValue(new HReturn(null));
  Value lengthValue = info.newLengthValue(new HReturn(null));
  
  Range createSingleRange(Value value) => info.newRange(value, value);
  Range createSingleIntRange(int value) => createSingleRange(info.newIntValue(value));
  Range createSingleInstructionRange() => createSingleRange(instructionValue);
  Range createSingleLengthRange() => createSingleRange(lengthValue);
  Range createIntRange(int lower, int upper) {
    return info.newRange(info.newIntValue(lower), info.newIntValue(upper));
  }
  Range createLengthRange(int lower) {
    return info.newRange(info.newIntValue(lower), lengthValue);
  }
  Range createInstructionRange(int lower) {
    return info.newRange(info.newIntValue(lower), instructionValue);
  }
  
  Range instruction = createSingleInstructionRange();
  