/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/es-abstract/2020/TestIntegrityLevel.js
41 строка
1 KB
1lostsun
initial commit
05 май 2025, 11:35
05 май 2025, 11:35
fe8f535
Код
Авторство
О чём код?
'use strict'; var $gOPD = require('gopd'); var $TypeError = require('es-errors/type'); var every = require('../helpers/every'); var OwnPropertyKeys = require('own-keys'); var IsDataDescriptor = require('./IsDataDescriptor'); var IsExtensible = require('./IsExtensible'); var ToPropertyDescriptor = require('./ToPropertyDescriptor'); var isObject = require('../helpers/isObject'); // https://262.ecma-international.org/6.0/#sec-testintegritylevel module.exports = function TestIntegrityLevel(O, level) { if (!isObject(O)) { throw new $TypeError('Assertion failed: Type(O) is not Object'); } if (level !== 'sealed' && level !== 'frozen') { throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); } var status = IsExtensible(O); if (status || !$gOPD) { return false; } var theKeys = OwnPropertyKeys(O); return theKeys.length === 0 || every(theKeys, function (k) { var currentDesc = $gOPD(O, k); if (typeof currentDesc !== 'undefined') { if (currentDesc.configurable) { return false; } if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { return false; } } return true; }); };