| Server IP : 159.203.156.69 / Your IP : 216.73.216.37 Web Server : nginx/1.24.0 System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/tanviranik.com/node_modules/es-iterator-helpers/aos/ |
Upload File : |
'use strict';
var $TypeError = require('es-errors/type');
var CompletionRecord = require('es-abstract/2025/CompletionRecord');
var CreateIteratorResultObject = require('es-abstract/2025/CreateIteratorResultObject');
var GeneratorValidate = require('es-abstract/2025/GeneratorValidate');
var SLOT = require('internal-slot');
// https://tc39.es/ecma262/#sec-generatorresumeabrupt
module.exports = function GeneratorResumeAbrupt(generator, abruptCompletion, generatorBrand) {
if (
!(abruptCompletion instanceof CompletionRecord)
|| (abruptCompletion.type() !== 'return' && abruptCompletion.type() !== 'throw')
) {
throw new $TypeError('Assertion failed: abruptCompletion must be a `return` or `throw` Completion Record');
}
var state = GeneratorValidate(generator, generatorBrand); // step 1
if (state === 'SUSPENDED-START') { // step 2
SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); // step 2.a
SLOT.set(generator, '[[GeneratorContext]]', null); // step 2.b
state = 'COMPLETED'; // step 2.c
}
var value = abruptCompletion.value();
if (state === 'COMPLETED') { // step 3
if (abruptCompletion.type() === 'return') { // step 3.a
return CreateIteratorResultObject(value, true); // step 3.a.i
}
return abruptCompletion['?'](); // step 3.b - throw
}
if (state !== 'SUSPENDED-YIELD') {
throw new $TypeError('Assertion failed: generator state is unexpected: ' + state); // step 4
}
var genContext = SLOT.get(generator, '[[GeneratorContext]]'); // step 5
SLOT.set(generator, '[[GeneratorState]]', 'EXECUTING'); // step 8
if (abruptCompletion.type() === 'return') {
// due to representing `GeneratorContext` as a function, we can't safely re-invoke it, so we can't support sending it a return completion
SLOT.get(generator, '[[CloseIfAbrupt]]')(abruptCompletion);
SLOT.set(generator, '[[GeneratorState]]', 'COMPLETED'); // step 10
return CreateIteratorResultObject(value, true);
}
var result = genContext(value); // steps 6-7, 9-11
return result; // step 12
};