anchor.diff:  
         } // else something wrong
       }
  +	_has_init = true;
       //print("arg_str=${arg_str}");
       //print("decimal=${_decimal}, exp=${_exponent}, digits=${_digits}");
     }
   
     String asString() {
       String ret = '';
  +		
  +		if (!_has_init) {
  +			return ret;
  +		}
  +		
  +		if (_output != null) {
  +			return _output;
  +		}
   
       if (options['add_space'] && options['sign'] == '' && _arg >= 0) {
         options['sign'] = ' ';
  
positive.code: 
      return ret;
    }
  }
negative.code:     if (extra_zeroes > 0) {
        _digits.addAll(Formatter.get_padding(extra_zeroes, '0').split(''));
      }
  		
  		_round(offset + precision, offset);
  		
      //print ("(${offset}, ${precision})${_digits}");
      List<String> trailing_digits =  _digits.sublist(offset, offset + precision);
     // print ("trailing_digits=${trailing_digits}");
      String _exp_str = _exponent.abs().toString();
  		
  		
      if (_exponent < 10 && _exponent > -10) {
        _exp_str = "0${_exp_str}";
      }
  