⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
invoice
/
node_modules
/
es-abstract
/
2015
/
View File Name :
SetIntegrityLevel.js
'use strict'; var GetIntrinsic = require('get-intrinsic'); var $SyntaxError = GetIntrinsic('%SyntaxError%'); var $TypeError = GetIntrinsic('%TypeError%'); var $preventExtensions = GetIntrinsic('%Object.preventExtensions%', true); var $gOPD = require('gopd'); var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); var forEach = require('../helpers/forEach'); var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); var IsAccessorDescriptor = require('./IsAccessorDescriptor'); var ToPropertyDescriptor = require('./ToPropertyDescriptor'); var Type = require('./Type'); // https://262.ecma-international.org/6.0/#sec-setintegritylevel module.exports = function SetIntegrityLevel(O, level) { if (Type(O) !== 'Object') { 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"`'); } if (!$preventExtensions) { throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); } var status = $preventExtensions(O); if (!status) { return false; } if (!$gOPN) { throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); } var theKeys = $gOPN(O); if (level === 'sealed') { forEach(theKeys, function (k) { DefinePropertyOrThrow(O, k, { configurable: false }); }); } else if (level === 'frozen') { forEach(theKeys, function (k) { var currentDesc = $gOPD(O, k); if (typeof currentDesc !== 'undefined') { var desc; if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { desc = { configurable: false }; } else { desc = { configurable: false, writable: false }; } DefinePropertyOrThrow(O, k, desc); } }); } return true; };