docs: function _Array_forEach(array, block, context) {
    if (array == null) array = global;
    var length = array.length || 0, i; // preserve length
    if (typeof array == "string") {
      for (i = 0; i < length; i++) {
        block.call(context, array.charAt(i), i, array);
      }
    } else { // Cater for sparse arrays.
      for (i = 0; i < length; i++) {    
      /*@cc_on @*/
      /*@if (@_jscript_version < 5.2)
        if ($Legacy.has(array, i))
      @else @*/
        if (i in array)
      /*@end @*/
          block.call(context, array[i], i, array);
      }
    }
  }