Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/node_modules/es-abstract/2019/ |
Upload File : |
'use strict'; var GetIntrinsic = require('../GetIntrinsic'); var $RangeError = GetIntrinsic('%RangeError%'); var $TypeError = GetIntrinsic('%TypeError%'); var assign = require('object.assign'); var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); var IsArray = require('./IsArray'); var IsAccessorDescriptor = require('./IsAccessorDescriptor'); var IsDataDescriptor = require('./IsDataDescriptor'); var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); var ToNumber = require('./ToNumber'); var ToString = require('./ToString'); var ToUint32 = require('./ToUint32'); var Type = require('./Type'); // https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength // eslint-disable-next-line max-statements, max-lines-per-function module.exports = function ArraySetLength(A, Desc) { if (!IsArray(A)) { throw new $TypeError('Assertion failed: A must be an Array'); } if (!isPropertyDescriptor({ Type: Type, IsDataDescriptor: IsDataDescriptor, IsAccessorDescriptor: IsAccessorDescriptor }, Desc)) { throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); } if (!('[[Value]]' in Desc)) { return OrdinaryDefineOwnProperty(A, 'length', Desc); } var newLenDesc = assign({}, Desc); var newLen = ToUint32(Desc['[[Value]]']); var numberLen = ToNumber(Desc['[[Value]]']); if (newLen !== numberLen) { throw new $RangeError('Invalid array length'); } newLenDesc['[[Value]]'] = newLen; var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); if (!IsDataDescriptor(oldLenDesc)) { throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); } var oldLen = oldLenDesc['[[Value]]']; if (newLen >= oldLen) { return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); } if (!oldLenDesc['[[Writable]]']) { return false; } var newWritable; if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { newWritable = true; } else { newWritable = false; newLenDesc['[[Writable]]'] = true; } var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); if (!succeeded) { return false; } while (newLen < oldLen) { oldLen -= 1; // eslint-disable-next-line no-param-reassign var deleteSucceeded = delete A[ToString(oldLen)]; if (!deleteSucceeded) { newLenDesc['[[Value]]'] = oldLen + 1; if (!newWritable) { newLenDesc['[[Writable]]'] = false; OrdinaryDefineOwnProperty(A, 'length', newLenDesc); return false; } } } if (!newWritable) { return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); } return true; };