86bf98467ca767e511d6d79818debbc072e0fea99125ab283b99d9c33c5deb60f53be7e9c57d9255c4b11896b608c6fa7d67ef8cc50d816588efc824bf7351 573 B

12345678910111213141516171819
  1. 'use strict';
  2. var $TypeError = require('es-errors/type');
  3. var CompletionRecord = require('./CompletionRecord');
  4. var IteratorClose = require('./IteratorClose');
  5. // https://262.ecma-international.org/16.0/#sec-ifabruptcloseiterator
  6. module.exports = function IfAbruptCloseIterator(value, iteratorRecord) {
  7. if (!(value instanceof CompletionRecord)) {
  8. throw new $TypeError('Assertion failed: `value` must be a Completion Record'); // step 1
  9. }
  10. if (value.type() === 'throw') {
  11. return IteratorClose(iteratorRecord, value); // step 2
  12. }
  13. return value['!'](); // step
  14. };