Files
flying-hero 96f6318101 📦 添加虚拟环境和启动脚本
新增:
- backend/venv/ - Python 虚拟环境
- backend/start.sh - 启动脚本(使用虚拟环境)
- backend/requirements.txt - 依赖列表
- .gitignore - 忽略虚拟环境和缓存文件

说明:
- 每个项目使用独立虚拟环境
- 避免依赖冲突
- 启动脚本自动创建和激活虚拟环境
2026-04-04 18:29:02 +08:00

35 lines
1.1 KiB
JavaScript

'use strict';
var $TypeError = require('es-errors/type');
var CompletionRecord = require('es-abstract/2025/CompletionRecord');
var IteratorClose = require('es-abstract/2025/IteratorClose');
var ThrowCompletion = require('es-abstract/2025/ThrowCompletion');
var IsArray = require('es-abstract/helpers/IsArray');
var every = require('es-abstract/helpers/every');
var isIteratorRecord = require('es-abstract/helpers/records/iterator-record');
// https://tc39.es/proposal-joint-iteration/#sec-closeall
module.exports = function IteratorCloseAll(iters, completion) {
if (!IsArray(iters) || !every(iters, isIteratorRecord)) {
throw new $TypeError('Assertion failed: `iters` must be a List of IteratorRecords');
}
if (!(completion instanceof CompletionRecord)) {
throw new $TypeError('Assertion failed: `completion` must be a Completion Record');
}
for (var i = iters.length - 1; i >= 0; i -= 1) { // step 1
try {
IteratorClose(iters[i], completion); // step 1.a
} catch (e) {
// eslint-disable-next-line no-param-reassign
completion = ThrowCompletion(e); // step 1.a
}
}
return completion['?'](); // step 2
};