新增: - backend/venv/ - Python 虚拟环境 - backend/start.sh - 启动脚本(使用虚拟环境) - backend/requirements.txt - 依赖列表 - .gitignore - 忽略虚拟环境和缓存文件 说明: - 每个项目使用独立虚拟环境 - 避免依赖冲突 - 启动脚本自动创建和激活虚拟环境
40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
'use strict';
|
|
var $ = require('../internals/export');
|
|
var FREEZING = require('../internals/freezing');
|
|
var NATIVE_RAW_JSON = require('../internals/native-raw-json');
|
|
var getBuiltIn = require('../internals/get-built-in');
|
|
var uncurryThis = require('../internals/function-uncurry-this');
|
|
var toString = require('../internals/to-string');
|
|
var createProperty = require('../internals/create-property');
|
|
var setInternalState = require('../internals/internal-state').set;
|
|
|
|
var $SyntaxError = SyntaxError;
|
|
var parse = getBuiltIn('JSON', 'parse');
|
|
var create = getBuiltIn('Object', 'create');
|
|
var freeze = getBuiltIn('Object', 'freeze');
|
|
var at = uncurryThis(''.charAt);
|
|
|
|
var ERROR_MESSAGE = 'Unacceptable as raw JSON';
|
|
|
|
var isWhitespace = function (it) {
|
|
return it === ' ' || it === '\t' || it === '\n' || it === '\r';
|
|
};
|
|
|
|
// `JSON.rawJSON` method
|
|
// https://tc39.es/proposal-json-parse-with-source/#sec-json.rawjson
|
|
// https://github.com/tc39/proposal-json-parse-with-source
|
|
$({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {
|
|
rawJSON: function rawJSON(text) {
|
|
var jsonString = toString(text);
|
|
if (jsonString === '' || isWhitespace(at(jsonString, 0)) || isWhitespace(at(jsonString, jsonString.length - 1))) {
|
|
throw new $SyntaxError(ERROR_MESSAGE);
|
|
}
|
|
var parsed = parse(jsonString);
|
|
if (typeof parsed == 'object' && parsed !== null) throw new $SyntaxError(ERROR_MESSAGE);
|
|
var obj = create(null);
|
|
setInternalState(obj, { type: 'RawJSON' });
|
|
createProperty(obj, 'rawJSON', jsonString);
|
|
return FREEZING ? freeze(obj) : obj;
|
|
}
|
|
});
|