function GetIterator(obj, method) {
  if (IS_UNDEFINED(method)) {
    method = obj[iteratorSymbol];
  }
  if (!IS_CALLABLE(method)) {
    throw MakeTypeError(kNotIterable, obj);
  }
  var iterator = %_Call(method, obj);
  if (!IS_RECEIVER(iterator)) {
    throw MakeTypeError(kNotAnIterator, iterator);
  }
  return iterator;
}
function GetIterator(obj, method) {
  if (IS_UNDEFINED(method)) {
    method = obj[iteratorSymbol];
  }
  if (!IS_CALLABLE(method)) {
    throw MakeTypeError(kNotIterable, obj);
  }
  var iterator = %_Call(method, obj);
  if (!IS_RECEIVER(iterator)) {
    throw MakeTypeError(kNotAnIterator, iterator);
  }
  return iterator;
}
function GetIterator ( obj , method ) { if ( IS_UNDEFINED ( method ) ) { method = obj [ iteratorSymbol ] ; } if ( ! IS_CALLABLE ( method ) ) { throw MakeTypeError ( kNotIterable , obj ) ; } var iterator = % _Call ( method , obj ) ; if ( ! IS_RECEIVER ( iterator ) ) { throw MakeTypeError ( kNotAnIterator , iterator ) ; } return iterator ; }
---------------------------------------------------------------------------- Iterator related spec functions. ES6 7.4.1 GetIterator(obj, method)
---------------------------------------------------------------------------- Iterator related spec functions . ES6 7 . 4 . 1 GetIterator ( obj method )